Postscreen Zimbra Mail Server
Postscreen Zimbra Mail Server, Postscreen merupakan antispam tambahan pada zimbra yang berfungsi untuk pencegahan spambot yang dapat menyebabkan mail server menjadi overload proses. Kita bisa melakukan whitelist IP Publik untuk mem bypass proses filter pada postscreen.
Bagaimana cara kerjanya
Skenario Tanpa Postscreen
Pada skenario tanpa postscreen, di mana spambot dan zombie email dapat terkoneksi langsung ke dalam smtp zimbra. Dalam skenario ini, menunggu spambot dan zombie email menyelesaikan koneksi terhadap smtp dan ini membut smtp menjadi timeout. Dampaknya menyebabkan email yang lain tidak bisa di proses pada smtp.
Mar 01 19:29:54 zimbrauk postfix/smtpd[24266]: timeout after RCPT from mail.example.com[60.60.60.70]
Skenario Dengan Postscreen
Pada skenario dengan postscreen, dimana spambot dan zombie terkoneksi dahulu pada postscreen. Pada postscreen dilakukan scanning, apabila koneksi merupakan dari spambot dan zombie maka koneksi akan di tolak dan apabila koneksi tersebut dari IP yang sudah di whitelist sebelumnya atau dari IP yang bukan dari spambot dan zombie, maka email akan di teruskan ke antispam dan antivirus lokal zimbra.
Alur Kerja Postscreen
Alur kerja pada postscreen dapat dilihat pada gambar berikut
Zimbra attributes untuk Postscreen
Berikut ini table yang berisi atribut baru untuk postscreen dan link ke original postfix yang menjelaskan lengkap tentang atribut yang tersedia.
Mohon diperhatikan perbedaan antara ignore, enforce dan drop untuk atribut tertentu:
- ignore (default) – Mengabaikan semua koneksi yang masuk ke dalam postscreen. ini biasanya digunakan untuk menguji dan mengumpulkan statistik tanpa memblokir email.
- enforce – Izinkan semua koneksi pada postscreen. Tolak email dengan balasan 550 SMTP dan akan tercatat di log. helo/sender/recipient information.
- drop – Drop/tolak semua koneksi dengan balasan 521 SMTP.
Name | Description | Type | Optional in | Default value | Options |
---|---|---|---|---|---|
zimbraMtaPostscreenAccessList | Value for postconf postscreen_access_list. Single valued, commas,separated list. | string | server,globalConfig | permit_mynetworks | |
zimbraMtaPostscreenBareNewlineAction | Value for postconf postscreen_bare_newline_action. | enum | server,globalConfig | ignore | ignore,enforce,drop |
zimbraMtaPostscreenBareNewlineEnable | Value for postconf postscreen_bare_newline_enable. | enum | server,globalConfig | no | yes,no |
zimbraMtaPostscreenBareNewlineTTL | Value for postconf postscreen_bare_newline_ttl. | string | server,globalConfig | 30d | |
zimbraMtaPostscreenBlacklistAction | Value for postconf postscreen_blacklist_action. | enum | server,globalConfig | ignore | ignore,enforce,drop |
zimbraMtaPostscreenCacheCleanupInterval | Value for postconf postscreen_cache_cleanup_interval. | string | server,globalConfig | 12h | |
zimbraMtaPostscreenCacheRetentionTime | Value for postconf postscreen_cache_retention_time. | string | server,globalConfig | 7d | |
zimbraMtaPostscreenCommandCountLimit | Value for postconf postscreen_command_count_limit. | integer | server,globalConfig | 20 | |
zimbraMtaPostscreenDnsblAction | Value for postconf postscreen_dnsbl_action. | enum | server,globalConfig | ignore | ignore,enforce,drop |
zimbraMtaPostscreenDnsblSites | Value for postconf postscreen_dnsbl_sites. Multi valued, one DNSBL,value pair per attribute value. | string | server,globalConfig | ||
zimbraMtaPostscreenDnsblThreshold | Value for postconf postscreen_dnsbl_threshold. | integer | server,globalConfig | 1 | |
zimbraMtaPostscreenDnsblTTL | Value for postconf postscreen_dnsbl_ttl. | string | server,globalConfig | 1h | |
zimbraMtaPostscreenDnsblWhitelistThreshold | Value for postconf postscreen_dnsbl_whitelist_threshold. | integer | server,globalConfig | 0 | |
zimbraMtaPostscreenGreetAction | Value for postconf postscreen_greet_action. | enum | server,globalConfig | ignore | ignore,enforce,drop |
zimbraMtaPostscreenGreetTTL | Value for postconf postscreen_greet_ttl. | string | server,globalConfig | 1d | |
zimbraMtaPostscreenNonSmtpCommandAction | Value for postconf postscreen_non_smtp_command_action. | enum | server,globalConfig | drop | ignore,enforce,drop |
zimbraMtaPostscreenNonSmtpCommandEnable | Value for postconf postscreen_non_smtp_command_enable. | enum | server,globalConfig | no | yes,no |
zimbraMtaPostscreenNonSmtpCommandTTL | Value for postconf postscreen_non_smtp_command_ttl. | string | server,globalConfig | 30d | |
zimbraMtaPostscreenPipeliningAction | Value for postconf postscreen_pipelining_action. | enum | server,globalConfig | enforce | ignore,enforce,drop |
zimbraMtaPostscreenPipeliningEnable | Value for postconf postscreen_pipelining_enable. | enum | server,globalConfig | no | yes,no |
zimbraMtaPostscreenPipeliningTTL | Value for postconf postscreen_pipelining_ttl. | string | server,globalConfig | 30d | |
zimbraMtaPostscreenWatchdogTimeout | Value for postconf postscreen_watchdog_timeout. | string | server,globalConfig | 10s | |
zimbraMtaPostscreenWhitelistInterfaces | Value for postconf postscreen_whitelist_interfaces. Single valued,,comma separated list. | string | server,globalConfig | static:all | |
zimbraMtaPostscreenDnsblMinTTL | Value for postconf postscreen_dnsbl_min_ttl. | tbd | server,globalConfig | tbd | 60s |
zimbraMtaPostscreenDnsblMaxTTL | Value for postconf postscreen_dnsbl_max_ttl. | tbd | server,globalConfig | tbd | tbd |
zimbraMtaPostscreenUpstreamProxyProtocol | Value for postconf postscreen_upstream_proxy_protocol. Single valued, commas,separated list. | enum | server,globalConfig |
Bagaimana Meng-aktifkan Postscreen
Pada zimbra 8.7 ke atas Postscreen sudah aktif secara otomatis dalam kondisi default
Untuk mengecek konfigurasi postscreen yang ada saat ini
zmprov gacf | grep zimbraMtaPostscreen
Postscreen bisa di konfigurasi menggunakan perintah berikut:
zmprov mcf zimbraMtaPostscreenAccessList permit_mynetworks zmprov mcf zimbraMtaPostscreenBareNewlineAction ignore zmprov mcf zimbraMtaPostscreenBareNewlineEnable no zmprov mcf zimbraMtaPostscreenBareNewlineTTL 30d zmprov mcf zimbraMtaPostscreenBlacklistAction ignore zmprov mcf zimbraMtaPostscreenCacheCleanupInterval 12h zmprov mcf zimbraMtaPostscreenCacheRetentionTime 7d zmprov mcf zimbraMtaPostscreenCommandCountLimit 20 zmprov mcf zimbraMtaPostscreenDnsblAction enforce zmprov mcf zimbraMtaPostscreenDnsblSites 'b.barracudacentral.org=127.0.0.2*7' zimbraMtaPostscreenDnsblSites 'dnsbl.inps.de=127.0.0.2*7' zimbraMtaPostscreenDnsblSites 'zen.spamhaus.org=127.0.0.[10;11]*8' zimbraMtaPostscreenDnsblSites 'zen.spamhaus.org=127.0.0.[4..7]*6' zimbraMtaPostscreenDnsblSites 'zen.spamhaus.org=127.0.0.3*4' zimbraMtaPostscreenDnsblSites 'zen.spamhaus.org=127.0.0.2*3' zimbraMtaPostscreenDnsblSites 'list.dnswl.org=127.0.[0..255].0*-2' zimbraMtaPostscreenDnsblSites 'list.dnswl.org=127.0.[0..255].1*-3' zimbraMtaPostscreenDnsblSites 'list.dnswl.org=127.0.[0..255].2*-4' zimbraMtaPostscreenDnsblSites 'list.dnswl.org=127.0.[0..255].3*-5' zimbraMtaPostscreenDnsblSites 'bl.mailspike.net=127.0.0.2*5' zimbraMtaPostscreenDnsblSites 'bl.mailspike.net=127.0.0.[10;11;12]*4' zimbraMtaPostscreenDnsblSites 'wl.mailspike.net=127.0.0.[18;19;20]*-2' zimbraMtaPostscreenDnsblSites 'dnsbl.sorbs.net=127.0.0.10*8' zimbraMtaPostscreenDnsblSites 'dnsbl.sorbs.net=127.0.0.5*6' zimbraMtaPostscreenDnsblSites 'dnsbl.sorbs.net=127.0.0.7*3' zimbraMtaPostscreenDnsblSites 'dnsbl.sorbs.net=127.0.0.8*2' zimbraMtaPostscreenDnsblSites 'dnsbl.sorbs.net=127.0.0.6*2' zimbraMtaPostscreenDnsblSites 'dnsbl.sorbs.net=127.0.0.9*2' zmprov mcf zimbraMtaPostscreenDnsblTTL 5m zmprov mcf zimbraMtaPostscreenDnsblThreshold 8 zmprov mcf zimbraMtaPostscreenDnsblTimeout 10s zmprov mcf zimbraMtaPostscreenDnsblWhitelistThreshold 0 zmprov mcf zimbraMtaPostscreenGreetAction enforce zmprov mcf zimbraMtaPostscreenGreetTTL 1d zmprov mcf zimbraMtaPostscreenNonSmtpCommandAction drop zmprov mcf zimbraMtaPostscreenNonSmtpCommandEnable no zmprov mcf zimbraMtaPostscreenNonSmtpCommandTTL 30d zmprov mcf zimbraMtaPostscreenPipeliningAction enforce zmprov mcf zimbraMtaPostscreenPipeliningEnable no zmprov mcf zimbraMtaPostscreenPipeliningTTL 30d zmprov mcf zimbraMtaPostscreenWatchdogTimeout 10s zmprov mcf zimbraMtaPostscreenWhitelistInterfaces static:all
Value diatas merupakan default. Anda bisa mengatur value menggunakan perintah diatas sesuai security yang akan diterapkan.
Testing Postscreen
Sebelumnya DNSBLs sudah diaktifkan terlebih dahulu. Berikut merupakan contoh apabila mendapatkan error 550 dari postscreen
Mar 1 02:03:26 edge01 postfix/postscreen[23154]: DNSBL rank 28 for [112.90.37.251]:20438 Mar 1 02:03:26 edge01 postfix/postscreen[23154]: CONNECT from [10.210.0.161]:58010 to [10.210.0.174]:25 Mar 1 02:03:26 edge01 postfix/postscreen[23154]: WHITELISTED [10.210.0.161]:58010 Mar 1 02:03:27 edge01 postfix/postscreen[23154]: NOQUEUE: reject: RCPT from [112.90.37.251]:20438: 550 5.7.1 Service unavailable; client [112.90.37.251] blocked using zen.spamhaus.org; from=<hfxdgdsggfvfg@gmail.com>, to=<support@zimbra.com>, proto=ESMTP, helo=<gmail.com> Mar 1 02:03:27 edge01 postfix/postscreen[23154]: DISCONNECT [112.90.37.251]:20438
Whitelist dan Blacklist IP Address Menggunakan Postscreen
Ketika perusahaan A tetap ingin mengirim email, namun perusahaan A tersebut IP Publik ter blacklist dnsbl dan mau di whitelist pada zimbra. atau ingin memblacklist ip publik yang tidak terdeteksi postscreen dan mau di blacklist bisa mengikuti langkah-langkah berikut.
1. Buat file postscreen_wblist pada direktori /opt/zimbra/conf/postfix/ bila belum ada folder postfix bisa dibuatkan dulu direktori tersebut.
su - zimbra cd /opt/zimbra/conf/ mkdir postfix cd postfix nano postscreen_wblist
Masukkan pada postscreen_wblist ip yang mau di blacklist (reject) atau di whitelist (permit) menggunakan CIDR
# Rules are evaluated in the order as specified. # Blacklist 60.70.80.* except 60.70.80.91. 60.70.80.91/32 permit 60.70.80.0/24 reject 70.70.70.0/24 reject
save file tersebut
2. Set postscreen sebagai berikut
su - zimbra zmprov mcf zimbraMtaPostscreenAccessList "permit_mynetworks, cidr:/opt/zimbra/conf/postfix/postscreen_wblist" zmprov mcf zimbraMtaPostscreenBlacklistAction enforce
Untuk mengecek default setting zimbraMtaPostscreenAccessList dan zimbraMtaPostscreenBlacklistAction bisa menggunakan perintah berikut
su - zimbra zmprov gacf | grep zimbraMtaPostscreenAccessList zmprov gacf | grep zimbraMtaPostscreenBlacklistAction
Selesai
sumber: https://wiki.zimbra.com/wiki/Zimbra_Collaboration_Postscreen
Berikut layanan yang ada di saadwebid terkait zimbra
Layanan Jasa Maintenance Zimbra
Layanan Jasa Migrasi Zimbra Mail Server
VPS/Cloud Zimbra
SSL Zimbra Mail Server
SMTP Relay