Tulisan ini adalah lanjutan tulisan sebelumnya. Saat kita deploy HAProxy sebagai front-end dari Zimbra server, saat kita akses ke webmail, SSLnya berfungsi. Browser juga memvalidasi SSL-nya. Namun akses Zimbra Admin bisa saja masih untrusted/insecure.
Hal ini bisa terjadi karena port conflict antara HAProxy dengan Jetty (service-nya Zimbra). Kita akan coba pindahkan port internal Zimbra agar HAProxy dapat menggunakan port 7071 (agar pengguna tidak perlu akses ke port lain yang belum familiar).
Peringatan: Tahapan ini membutuhkan restart pada Zimbra.
Geser Port Internal Zimbra ke 9071
- Masuk ke
user: zimbra, lalu ubah backend port ke9071.su - zimbra zmprov ms $(zmhostname) zimbraAdminPort 9071 - Mulai ulang Zimbra agar konfigurasi aktif.
zmcontrol restart - Keluar dari
user : zimbra, cek bahwa port 7071 sudah kosong/tidak digunakan lagi oleh Zimbra.ss -tulpn | grep 7071*pastikan hasilnya sudah kosong*
Konfigurasi Zimbra Admin pada HAProxy
File konfigurasinya terletak di /etc/haproxy/haproxy.cfg. Sesuaikan pada bagian/blok listen zimbra-admin. Dapat menggunakan isian berikut (untuk blok terkait):
listen zimbra-admin
bind *:7071 name webssl ssl crt /opt/zimbra/ssl/zimbra/commercial/ssl.pem
mode http
acl is_root path -i /
http-request redirect location /zimbraAdmin/ if is_root
http-response replace-header Location (.*):19071(.*) \1:7071\2
http-request set-header X-Forwarded-Port %[dst_port]
http-request set-header X-Forwarded-Proto https if { ssl_fc }
# Pengaturan Header Keamanan Tambahan
http-response set-header Strict-Transport-Security "max-age=16000000; includeSubDomains; preload;"
http-response set-header X-XSS-Protection "1; mode=block"
http-response set-header X-Content-Type-Options "nosniff"
http-response set-header X-Robots-Tag "noindex"
http-response set-header Referrer-Policy "no-referrer"
option tcplog
option tcp-check
log global
option forwardfor
balance roundrobin
cookie SERVER insert indirect nocache
# Arahkan backend ke IP server lokal port 19071 (Zimbra Admin Proxy)
server lokal1 192.168.1.100:19071 cookie lokal1 ssl verify none
sesuaikan juga alamat IP-nya
Terapkan Perubahan
- Validasi HAProxy (untuk cek typo atau kesalahan konfigurasi):
haproxy -c -f /etc/haproxy/haproxy.cfg - Restart HAProxy:
systemctl restart haproxy - Cek port 7071. Pastikan sudah digunakan HAProxy:
ss -tulpn | grep 7071 - Validasi juga lewat web browser dan kunjungi halaman Zimbra Admin menggunakan port 7071.
Penutup
Dengan memindahkan port internal Jetty Zimbra ke 9071 dan melewatkan koneksi ke Zimbra Admin Proxy (19071), HAProxy kini dapat menggunakan port 7071 .
Pengguna tetap dapat mengakses Zimbra Admin Console di port biasa tanpa perlu mematikan fitur SSL Komersial maupun mengubah akses URL yang biasa digunakan.
Tulisan kali ini sampai di sini dulu ya. Sampai jumpa. Bye.