Skip to main content

Improving Anti-Spam on Zimbra Mail Server

·7 mins
Table of Contents

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 root atau zimbra
  • 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_hostname

Memblokir 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 TRUE
Sesuaikan daftar ekstensi yang diblokir dengan kebutuhan operasional organisasi untuk menghindari gangguan terhadap proses bisnis yang sah.

Menerapkan 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=true

Selain pembaruan otomatis, lakukan pembaruan manual apabila diperlukan.

sa-update -v --refreshmirrors -D

Restart service untuk menerapkan perubahan.

zmamavisdctl restart
zmmtactl restart

Mengatur 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 2

Level 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 restart

Mengaktifkan 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=true

Dengan 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 sales@domain.com        # Blokir seluruh email dari alamat ini
whitelist_from bill@yahoo.net          # Izinkan seluruh email dari alamat ini
blacklist_from *@spamdomain.net        # Blokir seluruh email dari domain ini

Restart service agar konfigurasi diterapkan.

zmmtactl restart
zmamavisdctl restart

Membuat 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.5

Keterangan:

  • body digunakan untuk memeriksa isi (body) email.
  • LOCAL_RULE adalah nama rule yang didefinisikan administrator.
  • score 0.5 menambahkan 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/i

Menggabungkan 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.0

Pada 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.123

Memberikan 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.75

Rule 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.0

Karena 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.0

Optimasi 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 = 3

Konfigurasi dapat diterapkan menggunakan perintah berikut:

postconf -e 'smtpd_soft_error_limit = 2'
postconf -e 'smtpd_hard_error_limit = 3'

Keterangan:

  • smtpd_soft_error_limit menentukan jumlah kesalahan yang masih ditoleransi sebelum server mulai memberikan respons yang lebih ketat.
  • smtpd_hard_error_limit menentukan batas maksimum kesalahan sebelum koneksi diputus.

Restart Postfix
#

Setelah perubahan diterapkan, lakukan restart layanan Postfix.

/opt/zimbra/postfix/sbin/postfix restart

Atau melalui kontrol layanan Zimbra:

zmmtactl restart

Menolak 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 restart

Zimbra Collaboration Suite (ZCS) Versi Sebelum 8.x
#

Edit file konfigurasi berikut:

/opt/zimbra/conf/zmmta.cf

Tambahkan atau ubah parameter berikut:

POSTCONF smtpd_reject_unlisted_recipient yes

Setelah perubahan dilakukan, regenerasi konfigurasi Postfix dan restart layanan MTA apabila diperlukan.

Perubahan pada file 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/fstab
tmpfs /opt/zimbra/data/amavisd/tmp tmpfs \
defaults,noexec,nodev,nosuid,size=1024m,mode=750,uid=zimbra,gid=zimbra 0 0

Terapkan perubahan tanpa melakukan reboot:

mount -a

Pastikan mount berhasil:

df -h /opt/zimbra/data/amavisd/tmp

Kemudian restart layanan Amavis:

zmamavisdctl restart

Related