Jika rekan-rekan melakukan integrasi Zimbra dengan Proxmox Mail Gateway (PMG) sebagai antispam anvirus email scanner, ada satu keterbatasan, yaitu email internal (sesama akun lokal) secara default tidak dapat dilakukan scanning oleh PMG. Hal ini biasanya menjadi bottleneck untuk beberapa klien yang tetap ingin pengiriman email sesama internal dilakukan scanning oleh PMG.
Secara teknis, Zimbra akan langsung mengirimkan email yang tujuannya sesama akun lokal via Local SMTP/Local Mail Transport Protocol (LMTP) pada port TCP 7025 (kecuali service antispam antivirus internal Zimbra aktif). Akibatnya, jika ada akun yang compromised (terkena hack), akun tersebut bisa mengirimkan email spam ke akun sesama lokal tanpa terdeteksi oleh sistem.
Kali ini saya akan membahas bagaimana cara untuk melakukan integrasi Zimbra dengan PMG, yaitu memaksa email sesama lokal ke PMG terlebih dahulu, lalu dikembalikan ke Zimbra menggunakan transport maps dynamic yang kita pasang pada konfigurasu postfix PMG. Dengan demikian semua email ke external maupun sesama lokal akan dilakukan scanning terlebih dahulu oleh PMG.
Mengapa Penting Melakukan Integrasi Ini?
-
Email Internal/Lokal Scanning: Menutup celah keamanan agar email internal atau sesama lokal tetap melewati PMG
-
Centralized Management: Proses konfigurasi & monitoring cukup dilakukan melalui dashboard PMG. Jauh lebih mudah daripada inspect langsung ke rawlog Zimbra. Dengan cara ini, konfigurasi whitelist & blacklist juga cukup dilakukan di dashboard PMG saja, tidak perlu lagi melakukan kerja 2x untuk whitelist & blacklist di PMG lalu mengulanginya di internal ASAV (Antispam/Antivirus) Zimbra
-
Menghindari Double Scanning: Menghilangkan proses double scanning (Zimbra + PMG) yang berpotensi pada tindakan false positive karena konfigurasi whitelist & blacklist tidak sama antara ASAV Zimbra & PMG
-
Menghemat Resource: Kita bisa mematikan service antivirusantispam internal Zimbra penggunaan resource server bisa berkurang dari proses service tersebut
Memahami Perubahan Flow Email
Flow email default (Email lokal tanpa scanning PMG):
akun1@aktiva.co.id -> Postfix Zimbra -> Port LMTP 7025 -> Mailbox akun2@aktiva.co.id
Flow email yang diharapkan (Email lokal dilakukan scanning PMG):
- akun1@aktiva.co.id -> Postfix Zimbra -> Internal Port 26 -> PMG -> Port LMTP 7025 -> Mailbox akun2@aktiva.co.id
- akun1@aktiva.co.id -> Postfix Zimbra -> Internal Port 26 -> PMG -> Port LMTP 7025 -> Mailbox akun3@aktiva.co.id
- akun1@aktiva.co.id -> Postfix Zimbra -> Internal Port 26 -> PMG -> Port LMTP 7025 -> Mailbox akun4@aktiva.co.id
Kapan Harus Pakai Transport Maps Dynamic? (Zimbra Single Server vs Zimbra Multi Server)
Mungkin rekan-rekan bertanya-tanya, kenapa kita harus repot-repot memasang konfigurasi transport maps dynamic di postfix PMG?
-
Zimbra Single Server: Jika Zimbra yang digunakan adalah single server, kita cukup menggunakan fitur Transport standar di GUI PMG. Cukup arahkan domain ke IP Zimbra dengan protokol LMTP port 7025:
- Zimbra Multi Server: Jika Zimbra yang digunakan adalah multi server dengan LDAP, MTA, Proxy dan beberapa server mailbox, maka transport langsung ke port TCP LMTP 7025 tidak akan berfungsi, karena PMG tidak tahu user1 berada di server mailbox mana, user2 berada di server mailbox mana, dan seterusnya. Jika seperti ini, PMG harus menggunakan transport maps dynamic dari LDAP Zimbra. Berikut contoh konfigurasi transport maps dynamic di Zimbra, yang nanti akan kita adaptasikan di PMG:
-
[zimbra@mail ~]$ postconf canonical_maps transport_maps virtual_alias_domains virtual_alias_maps virtual_mailbox_domains virtual_mailbox_maps canonical_maps = proxy:ldap:/opt/zimbra/conf/ldap-canonical.cf transport_maps = lmdb:/opt/zimbra/common/conf/transportfile,proxy:ldap:/opt/zimbra/conf/ldap-transport.cf virtual_alias_domains = proxy:ldap:/opt/zimbra/conf/ldap-vad.cf virtual_alias_maps = proxy:ldap:/opt/zimbra/conf/ldap-vam.cf virtual_mailbox_domains = proxy:ldap:/opt/zimbra/conf/ldap-vmd.cf virtual_mailbox_maps = proxy:ldap:/opt/zimbra/conf/ldap-vmm.cf
Secara teknis, PMG akan melakukan query ke LDAP Zimbra untuk melihat atribut zimbraMailTransport akun email tujuan. Hasilnya, PMG bisa mengantarkan email langsung ke server mailbox yang tepat (contoh: lmtp:mailbox2.aktiva.co.id:7025), bahkan meskipun akun tersebut berpindah-pindah server mailbox.
Langkah Integrasi:
- Persiapan Credential Postfix LDAP Zimbra
Dapatkan credential LDAP postfix dari Zimbra agar lebih aman. Jalankan di SSH server Zimbra: -
[root@mail ~]# su - zimbra -c 'zmlocalconfig -s ldap_postfix_password' ldap_postfix_password = password123
- Install Postfix LDAP di PMG
Secara default, postfix di PMG belum memiliki kemampuan untuk melakukan query sehingga kita perlu melakukan instalasi modul LDAP untuk postfix:root@asav:~# apt update && apt install postfix-ldap -y
- Membuat Direktori Template PMG
Supaya konfigurasi PMG bisa sinkron dengan server member cluster PMG, kita perlu membuat direktori yang berisi file template PMG dari direktori template yang sudah ada di/var/lib/pmg/templates/ke/etc/pmg/templates/:root@asav:~# mkdir -p /etc/pmg/templates root@asav:~# rsync -avhHP /var/lib/pmg/templates/ /etc/pmg/templates/
- Membuat File Konfigurasi LDAP (.cf)
Supaya file konfigurasi LDAP bisa sinkron ke semua member cluster PMG, kita bisa meletakkan file ini di/etc/pmg/templates/agar otomatis sinkron ke seluruh node member. Buat 5 file LDAP query berikut dengan password LDAP yang sudah didapatkan dari Zimbra:/etc/pmg/templates/ldap-canonical.cf. https://colamen.id/pmg/ldap-canonical.cf/etc/pmg/templates/ldap-transport.cf. https://colamen.id/pmg/ldap-transport.cf/etc/pmg/templates/ldap-vad.cf. https://colamen.id/pmg/ldap-vad.cf/etc/pmg/templates/ldap-vam.cf. https://colamen.id/pmg/ldap-vam.cf/etc/pmg/templates/ldap-vmm.cf. https://colamen.id/pmg/ldap-vmm.cf
- Modifikasi Template main.cf.in di PMG
Agar penyesuaian tidak hilang saat ada update atau patch sistem PMG, maka kita harus menyesuaikan file template konfigurasi postfix/etc/pmg/templates/main.cf.in:- Menyesuaikan baris
transport_mapsmenjadi sebagai berikut:transport_maps = ldap:/etc/pmg/templates/ldap-transport.cf,hash:/etc/pmg/transport
- Menambahkan 4 baris berikut pada bagian paling bawah:
canonical_maps=ldap:/etc/pmg/templates/ldap-canonical.cf virtual_alias_domains=ldap:/etc/pmg/templates/ldap-vad.cf virtual_alias_maps=ldap:/etc/pmg/templates/ldap-vam.cf virtual_mailbox_maps=ldap:/etc/pmg/templates/ldap-vmm.cf
- Save file
main.cf.in
- Menyesuaikan baris
- Sync Perubahan Konfigurasi & Restart Service Postfix
Supaya perubahan bisa aktif dan ter-sinkronisasi ke all member cluster, jalankan perintah berikut:root@asav:~# pmgconfig sync --restart
- Disable & Stop Service Antispam Antivirus Internal Zimbra
Matikan service antivirus dan antispam di semua server MTA Zimbra karena nantinya tidak kita gunakan:# for i in $(su - zimbra -c 'zmprov -l gas mta'); do ssh root@$i "su - zimbra -c 'zmprov ms $i -zimbraServiceEnabled antivirus -zimbraServiceEnabled antispam -zimbraServiceEnabled amavis'"; done # for i in $(su - zimbra -c 'zmprov -l gas mta'); do ssh root@$i "su - zimbra -c 'zmcontrol restart'"; done
- Menyesuaikan SMTP Transport Lokal Zimbra
Terakhir adalah mengarahkan SMTP transport lokal di semua server mailbox Zimbra supaya mengarah ke PMG:# for i in $(su - zimbra -c 'zmprov -l gas mailbox'); do ssh root@$i "su - zimbra -c 'zmprov ms $i zimbraSmtpHostname ip-pmg zimbraSmtpPort 26'"; done # for i in $(su - zimbra -c 'zmprov -l gas mailbox'); do ssh root@$i "su - zimbra -c 'zmcontrol restart'"; done
Selanjutnya rekan-rekan bisa melakukan testing pengiriman email sesama akun lokal dan pastikan log emailnya muncul pada menuTracking Centerdashboard PMG:
Sekarang, Zimbra hanya berperan sebagai server penyimpanan email, sementara seluruh policy keamanan, filter, hingga blacklist/whitelist ditangani oleh Proxmox Mail Gateway.
Catatan: Apabila rekan-rekan melakukan upgrade ataupun patching PMG, maka kemungkinan konfigurasi yang sudah kita sesuaikan akan kembali ke default. Saran saya, sebelum melakukan upgrade atau patching, baiknya melakukan backup semua file yang ada pada direktori /etc/pmg/templates/.
Namun apabila rekan-rekan ragu untuk melakukannya, Excellent juga menyediakan layanan implementasi & maintenance Proxmox Mail Gateway dan sudah mencakup konfigurasi improvement tersebut. Bagi rekan-rekan yang berminat untuk jasa layanan tersebut bisa langsung kontak & tanya-tanya ke email sales@excellent.co.id.