Untuk meningkatkan efektivitas sistem anti-spam pada Zimbra, Anda dapat menerapkan beberapa konfigurasi lanjutan yang berfokus pada validasi pengirim, pemblokiran lampiran berbahaya, dan autentikasi domain.
Prasyarat #
Sebelum melakukan perubahan, pastikan hal-hal berikut telah tersedia:
- Akses SSH ke server sebagai pengguna
rootatauzimbra - Hak akses untuk mengelola DNS domain (SPF, DKIM, dan DMARC)
- Backup konfigurasi Zimbra yang aktif sebagai langkah mitigasi apabila diperlukan proses rollback
Menerapkan Validasi DNS pada Postfix #
Konfigurasi berikut akan menolak email dari pengirim yang tidak memenuhi standar DNS dasar, seperti alamat pengirim yang tidak valid atau domain yang tidak dapat diverifikasi.
zmprov mcf +zimbraMtaRestriction reject_non_fqdn_sender
zmprov mcf +zimbraMtaRestriction reject_unknown_sender_domain
zmprov mcf +zimbraMtaRestriction reject_unknown_reverse_client_hostname
zmprov mcf +zimbraMtaRestriction reject_invalid_helo_hostnameMemblokir Lampiran Berbahaya #
Untuk mengurangi risiko malware dan ransomware, blokir ekstensi file yang umum digunakan sebagai media distribusi kode berbahaya. Selain itu, aktifkan notifikasi kepada administrator dan penerima ketika lampiran diblokir.
zmprov mcf +zimbraMtaBlockedExtension asd
zmprov mcf +zimbraMtaBlockedExtension bat
zmprov mcf +zimbraMtaBlockedExtension cab
zmprov mcf +zimbraMtaBlockedExtension chm
zmprov mcf +zimbraMtaBlockedExtension cmd
zmprov mcf +zimbraMtaBlockedExtension com
zmprov mcf +zimbraMtaBlockedExtension cpl
zmprov mcf +zimbraMtaBlockedExtension cpgz
zmprov mcf +zimbraMtaBlockedExtension dll
zmprov mcf +zimbraMtaBlockedExtension do
zmprov mcf +zimbraMtaBlockedExtension exe
zmprov mcf +zimbraMtaBlockedExtension hlp
zmprov mcf +zimbraMtaBlockedExtension hta
zmprov mcf +zimbraMtaBlockedExtension js
zmprov mcf +zimbraMtaBlockedExtension jse
zmprov mcf +zimbraMtaBlockedExtension lnk
zmprov mcf +zimbraMtaBlockedExtension ocx
zmprov mcf +zimbraMtaBlockedExtension pif
zmprov mcf +zimbraMtaBlockedExtension reg
zmprov mcf +zimbraMtaBlockedExtension scr
zmprov mcf +zimbraMtaBlockedExtension shb
zmprov mcf +zimbraMtaBlockedExtension shm
zmprov mcf +zimbraMtaBlockedExtension shs
zmprov mcf +zimbraMtaBlockedExtension vbe
zmprov mcf +zimbraMtaBlockedExtension vbs
zmprov mcf +zimbraMtaBlockedExtension vbx
zmprov mcf +zimbraMtaBlockedExtension vxd
zmprov mcf +zimbraMtaBlockedExtension wsf
zmprov mcf +zimbraMtaBlockedExtension wsh
zmprov mcf +zimbraMtaBlockedExtension xl
zmprov mcf zimbraMtaBlockedExtensionWarnAdmin TRUE
zmprov mcf zimbraMtaBlockedExtensionWarnRecipient TRUEMenerapkan Autentikasi Domain #
Pastikan seluruh domain yang digunakan untuk mengirim email telah menerapkan mekanisme autentikasi berikut:
SPF (Sender Policy Framework) #
Publikasikan record SPF yang hanya mengizinkan server email resmi untuk mengirim email atas nama domain Anda.
Rekomendasi:
- Gunakan
~all(SoftFail) pada tahap awal implementasi. - Setelah validasi selesai dan tidak ditemukan masalah, pertimbangkan penggunaan
-all(HardFail) untuk kebijakan yang lebih ketat.
DKIM (DomainKeys Identified Mail) #
Aktifkan dan publikasikan DKIM untuk seluruh domain pengirim agar setiap email keluar ditandatangani secara kriptografis.
DMARC (Domain-based Message Authentication, Reporting and Conformance) #
Tambahkan record DMARC untuk menentukan tindakan terhadap email yang gagal verifikasi SPF dan/atau DKIM.
Rekomendasi:
- Tahap monitoring:
p=none - Tahap penegakan bertahap:
p=quarantine - Tahap produksi penuh:
p=reject
Implementasi SPF, DKIM, dan DMARC secara bersamaan akan meningkatkan reputasi domain, mengurangi spoofing, serta membantu meningkatkan tingkat keberhasilan pengiriman email yang sah.
Menambahkan Daftar RBL (Realtime Blackhole List) #
RBL digunakan untuk memverifikasi reputasi alamat IP pengirim berdasarkan berbagai basis data blacklist publik. Dengan menambahkan beberapa RBL tepercaya, server dapat menolak koneksi dari sumber spam yang telah diketahui sebelum email diproses lebih lanjut.
zmprov mcf zimbraMtaRestriction "reject_rbl_client cbl.abuseat.org" \
zimbraMtaRestriction "reject_rbl_client bl.spamcop.net" \
zimbraMtaRestriction "reject_rbl_client sbl.spamhaus.org" \
zimbraMtaRestriction "reject_rbl_client zen.spamhaus.org" \
zimbraMtaRestriction "reject_rbl_client psbl.surriel.com" \
zimbraMtaRestriction "reject_rbl_client b.barracudacentral.org" \
zimbraMtaRestriction "reject_rhsbl_client dbl.spamhaus.org"Mengaktifkan Pembaruan Rule SpamAssassin Otomatis #
Agar kemampuan deteksi spam tetap optimal, aktifkan pembaruan rule SpamAssassin secara otomatis.
zmlocalconfig -e antispam_enable_rule_updates=true
zmlocalconfig -e antispam_enable_restarts=trueSelain pembaruan otomatis, lakukan pembaruan manual apabila diperlukan.
sa-update -v --refreshmirrors -DRestart service untuk menerapkan perubahan.
zmamavisdctl restart
zmmtactl restartMengatur Ambang Batas (Threshold) Spam #
Sesuaikan nilai threshold SpamAssassin untuk menentukan tindakan terhadap email yang terindikasi spam.
zmprov mcf zimbraSpamKillPercent 75
zmprov mcf zimbraSpamTagPercent 19
zmprov mcf zimbraSpamSubjectTag "** CAUTION! SUSPICIOUS EMAIL ** "Keterangan:
zimbraSpamKillPercent 75: Email akan ditolak atau dihapus apabila skor spam melebihi 75%.zimbraSpamTagPercent 19: Email akan ditandai sebagai spam apabila skor melebihi 19%.zimbraSpamSubjectTag: Menambahkan label pada subjek email yang terdeteksi sebagai spam.
Meningkatkan Level Logging Amavis #
Untuk membantu proses monitoring dan troubleshooting, tingkatkan level logging Amavis ke level 2.
zmprov mcf zimbraAmavisLogLevel 2Level log yang lebih tinggi akan memberikan informasi tambahan mengenai proses pemindaian spam dan antivirus. Namun, perlu diperhatikan bahwa peningkatan level logging dapat menambah ukuran file log dan penggunaan disk.
Menambahkan Rule KAM.cf (Kevin A. McGrail) #
KAM.cf merupakan kumpulan rule tambahan untuk SpamAssassin yang dikembangkan oleh Kevin A. McGrail. Rule ini dapat meningkatkan kemampuan deteksi spam, phishing, dan berbagai pola penyalahgunaan email yang mungkin belum tercakup dalam rule bawaan.
Unduh file rule KAM.cf dan simpan ke direktori rule lokal SpamAssassin.
cd /opt/zimbra/data/spamassassin/localrules
wget -N https://www.pccc.com/downloads/SpamAssassin/contrib/KAM.cf \
-O sakam.cf
zmamavisdctl restartMengaktifkan Kompilasi Rule SpamAssassin #
Aktifkan kompilasi rule otomatis untuk meningkatkan performa pemrosesan email dan mempercepat proses pemberian skor (scoring) oleh SpamAssassin.
zmlocalconfig -e antispam_enable_rule_compilation=trueDengan fitur ini, SpamAssassin akan mengompilasi rule yang tersedia sehingga proses evaluasi email menjadi lebih efisien, terutama pada server dengan volume email yang tinggi.
Mengelola Blacklist dan Whitelist #
SpamAssassin memungkinkan administrator membuat daftar alamat atau domain yang selalu diblokir (blacklist) maupun selalu dipercaya (whitelist).
Buat file konfigurasi baru pada direktori berikut:
/opt/zimbra/data/spamassassin/localrules/Tambahkan rule sesuai kebutuhan menggunakan format berikut:
blacklist_from [email protected] # Blokir seluruh email dari alamat ini
whitelist_from [email protected] # Izinkan seluruh email dari alamat ini
blacklist_from *@spamdomain.net # Blokir seluruh email dari domain iniRestart service agar konfigurasi diterapkan.
zmmtactl restart
zmamavisdctl restartMembuat Custom Rule SpamAssassin #
SpamAssassin mengevaluasi setiap email berdasarkan sejumlah rule dan memberikan skor untuk setiap indikasi spam yang ditemukan. Apabila total skor melebihi ambang batas yang ditentukan (default: 5.0), email akan ditandai sebagai spam.
Contoh Rule Sederhana #
Rule berikut akan mencari kata sale pada isi email dan menambahkan skor apabila ditemukan.
body LOCAL_RULE /sale/
score LOCAL_RULE 0.5Keterangan:
bodydigunakan untuk memeriksa isi (body) email.LOCAL_RULEadalah nama rule yang didefinisikan administrator.score 0.5menambahkan skor sebesar 0,5 apabila pola ditemukan.
Contoh Rule Menggunakan Regular Expression #
Mendeteksi empat huruf kapital yang muncul secara berurutan.
body LOCAL_4CAPS /[A-Z]{4}/Memeriksa header Reply-To yang mengandung domain localhost.
header LOCAL_LOCALHOST Reply-To =~ /@localhost/iMenggabungkan Beberapa Rule dengan Meta Rule #
Meta rule memungkinkan administrator menambahkan skor hanya jika beberapa kondisi terpenuhi secara bersamaan.
body LOCAL_FOUR_CAPS /[A-Z]{4}/
body LOCAL_MONEY /\d{1,3}\.\d{2}\b/
meta LOCAL_STOCK (LOCAL_MONEY && LOCAL_FOUR_CAPS)
score LOCAL_STOCK 1.0Pada contoh di atas, skor +1 akan ditambahkan apabila:
- Email mengandung empat huruf kapital berurutan.
- Email juga mengandung pola angka yang menyerupai nilai mata uang.
Pendekatan ini membantu mengurangi false positive karena skor hanya diberikan ketika beberapa indikator muncul secara bersamaan.
Mendeteksi Relay atau Sumber Spam Tertentu #
Contoh berikut memeriksa pola alamat IP pada header Received.
header LOCAL_RULE_RELAY Received =~ /\[25\.\d{1,3}\.\d{1,3}\.\d{1,3}\]/
describe LOCAL_RULE_RELAY Kemungkinan relay mencurigakan
score LOCAL_RULE_RELAY 4.123Memberikan Penalti pada Email Tanpa Autentikasi #
Tambahkan skor pada email yang tidak memiliki autentikasi domain yang memadai.
score DKIM_UNSIGNED 1.75
score DMARC_MISSING 2.0
score SPF_NONE 1.75Rule ini akan meningkatkan skor spam apabila:
- Tidak terdapat tanda tangan DKIM.
- Domain tidak memiliki kebijakan DMARC.
- SPF tidak dikonfigurasi.
Mendeteksi Kampanye Phishing yang Menargetkan Pengguna Zimbra #
Contoh berikut mendeteksi subjek email yang menyerupai kampanye phishing umum.
header MCE_ZIMBRA_PHISH_DEACTIVATION Subject =~ /Zimbra Final Email Deactivation Notice/i
score MCE_ZIMBRA_PHISH_DEACTIVATION 25.0Karena skor yang diberikan sangat tinggi, email yang cocok dengan pola tersebut hampir pasti akan dikategorikan sebagai spam atau phishing.
Memblokir TLD yang Tidak Diizinkan #
Administrator dapat membatasi domain pengirim berdasarkan Top-Level Domain (TLD).
header MCE_FROM_TLD From !~ /@[a-z0-9\-\.]+\.(com|org|net|edu|gov|id)$/i
score MCE_FROM_TLD 3.0Optimasi Postfix #
Untuk membatasi koneksi yang menghasilkan banyak kesalahan SMTP, tambahkan parameter berikut pada konfigurasi Postfix main.cf.
smtpd_soft_error_limit = 2
smtpd_hard_error_limit = 3Konfigurasi dapat diterapkan menggunakan perintah berikut:
postconf -e 'smtpd_soft_error_limit = 2'
postconf -e 'smtpd_hard_error_limit = 3'Keterangan:
smtpd_soft_error_limitmenentukan jumlah kesalahan yang masih ditoleransi sebelum server mulai memberikan respons yang lebih ketat.smtpd_hard_error_limitmenentukan batas maksimum kesalahan sebelum koneksi diputus.
Restart Postfix #
Setelah perubahan diterapkan, lakukan restart layanan Postfix.
/opt/zimbra/postfix/sbin/postfix restartAtau melalui kontrol layanan Zimbra:
zmmtactl restartMenolak Email ke Alamat Penerima yang Tidak Valid #
Secara default, server email dapat menerima email yang ditujukan ke alamat penerima yang tidak ada, tergantung pada konfigurasi Postfix dan Zimbra. Untuk mengurangi backscatter spam dan beban pemrosesan yang tidak diperlukan, aktifkan penolakan terhadap alamat penerima yang tidak valid pada tahap SMTP.
Zimbra Collaboration Suite (ZCS) 8.x dan Versi Lebih Baru #
Aktifkan validasi penerima menggunakan konfigurasi berikut:
zmlocalconfig -e postfix_smtpd_reject_unlisted_recipient=yes
zmmtactl restartZimbra Collaboration Suite (ZCS) Versi Sebelum 8.x #
Edit file konfigurasi berikut:
/opt/zimbra/conf/zmmta.cfTambahkan atau ubah parameter berikut:
POSTCONF smtpd_reject_unlisted_recipient yesSetelah perubahan dilakukan, regenerasi konfigurasi Postfix dan restart layanan MTA apabila diperlukan.
zmmta.cf tidak bersifat permanen dan dapat tertimpa saat proses upgrade atau regenerasi konfigurasi Zimbra. Dokumentasikan perubahan yang dilakukan agar dapat diterapkan kembali setelah pembaruan sistem.
Memindahkan Direktori Sementara Amavis ke RAM Disk #
Amavis menggunakan direktori sementara (temporary directory) untuk memproses email dan lampiran yang masuk. Memindahkan direktori ini ke RAM disk (tmpfs) dapat meningkatkan performa pemindaian, terutama pada server dengan volume email yang tinggi dan kapasitas memori yang memadai.
Tambahkan entri berikut ke file:
/etc/fstabtmpfs /opt/zimbra/data/amavisd/tmp tmpfs \
defaults,noexec,nodev,nosuid,size=1024m,mode=750,uid=zimbra,gid=zimbra 0 0Terapkan perubahan tanpa melakukan reboot:
mount -aPastikan mount berhasil:
df -h /opt/zimbra/data/amavisd/tmpKemudian restart layanan Amavis:
zmamavisdctl restart