Konfigurasi Akses Zimbra Admin 7071 via HAProxy

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 ke 9071.
      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.

By Zaidan

Leave a Reply

Your email address will not be published. Required fields are marked *