
Spamassassin From field must match with Return-Path mungkin adalah kalimat yang tepat untuk menjelaskan arti judul artikel ini dalam bahasa inggris.
Spam memang merupakan momok yang sangat menyebalkan sekaligus menjadi tantangan untuk sysadmin yang mengelola banyak domain dengan ratusan atau ribuan akun email.
Sebagai pengguna mail server ZIMBRA artikel berikut mengenai cara-cara memerangi spam seperti Improving Anti-SPAM System dan Anti-spam Strategies pastinya sudah tuntas di baca dan di implementasikan kedalam system kita masing-masing, tapi yang namanya spam tetap saja bisa menerobos ke dalam system dengan berbagai macam teknik yang bisa mereka gunakan.
Sebagai informasi versi zimbra yang saya pakai adalah Zimbra 8.8.12 berjalan di atas OS centos 7 64bit.
Berikut salah satu contoh spam yang sering masuk kedalam system saya, sengaja domain dan ip address mereka tidak saya hidden sebagai pembelajaran kepada para spammer kalau cara mereka berbisnis merugikan orang lain.

Terlihat di contoh email spam image di atas terlihat bahwa Return-Path dan From tidak sesuai.
Return-Path: <[email protected]om>
From: “Guard My Gutter Promotion” <[email protected]>
Dan berusaha masking seolah-oleh dari dalam domain internal.
Kali ini saya akan melakukan teknik pre-check email headers untuk mencocokan Return-path address dengan From address jika kedua variable diatas tidak match maka spamassassin akan memberikan score tinggi dan email tersebut akan ditandai sebagai spam email.
Untuk bisa melakukan proses check header kita akan menambahkan satu buah plugin ke dalam spamassasin.
Plugin bisa di download di FromNotReplyTo, sebenarnya plugin ini untuk mengecek kecocokan antar FROM dengan REPLY-TO hanya sedikit saya modifikasi menjadi FROM dengan RETURN-PATH.
Sebagai root buat berkas baru di /opt/zimbra/common/lib/perl5/Mail/SpamAssassin/Plugin/ dengan nama FromNotReturnPath.pm
package Mail::SpamAssassin::Plugin::FromNotReturnPath; use strict; use Mail::SpamAssassin; use Mail::SpamAssassin::Plugin; our @ISA = qw(Mail::SpamAssassin::Plugin); sub new { my ($class, $mailsa) = @_; $class = ref($class) || $class; my $self = $class->SUPER::new( $mailsa ); bless ($self, $class); $self->register_eval_rule ( 'check_for_from_not_return_path' ); return $self; } # Often spam uses different From: and Return-Path: # while most legitimate e-mails does not. sub check_for_from_not_return_path { my ($self, $msg) = @_; my $from = $msg->get( 'From:addr' ); my $returnpath = $msg->get( 'Return-Path:addr' ); #Mail::SpamAssassin::Plugin::dbg( "FromNotReturnPath: Comparing '$from'/'$returnpath" ); if ( $from ne '' && $returnpath ne '' && $from ne $returnpath ) { return 1; } return 0; }
Selanjutnya login sebagai user zimbra edit berkas v310.pre /opt/zimbra/data/spamassassin/localrules/v310.pre tambahkan di akhir baris.
# EDITED BY AGUSPRASETIA # Check matching between FROM with RETURN-PATH loadplugin Mail::SpamAssassin::Plugin::FromNotReturnPath
Masih sebagai user zimbra edit /opt/zimbra/conf/salocal.conf.in Sebelum baris “normalize_charset 1” dan masukan variable dibawah ini.
ifplugin Mail::SpamAssassin::Plugin::FromNotReturnPath header FROM_NOT_RETURNPATH eval:check_for_from_not_return_path() score FROM_NOT_RETURNPATH 4.0 describe FROM_NOT_RETURNPATH From: does not match Return-Path: endif
Restart Amavisd service
[zimbra]$ zmamavisdctl restart
Periksa apakah plugin FromNotReturnPath sudah aktif.
[zimbra]$ cat /var/log/zimbra.log | grep plugins Oct 12 12:33:55 ip-host amavis[1715]: SpamAssassin loaded plugins: AskDNS, AutoLearnThreshold, Bayes, BodyEval, Check, DCC, DKIM, DNSEval, FreeMail, FromNotReturnPath, HTMLEval, HTTPSMismatch, Hashcash, HeaderEval, ImageInfo, MIMEEval, MIMEHeader, Pyzor, Razor2, RelayEval, ReplaceTags, Rule2XSBody, SPF, SpamCop, URIDNSBL, URIDetail, URIEval, VBounce, WLBLEval, WhiteListSubject
Tanpa menunggu lama jika mail server kita memang menjadi target spammer sudah ada email spam yang terjaring oleh antispam system, buka akun anda melalui web client periksa di folder SPAM atau JUNK.
Klik kanan salah satu email di folder tersebut dan klik ‘Show Original”.
Nilai maximal untuk scoring yang masuk ke dalam kategori spam adalah 6.6, dari gambar diatas nilai yang di dapat 8.254 dan kontribusi tertinggi dihasilkan oleh plugin FROM_NOT_RETURNPATH yang memberikan nilai 5.
Masih banyak plugin-plugin yang bisa kita manfaatkan untuk menghadang spam seperti contoh https://github.com/extremeshok/spamassassin-extremeshok_fromreplyto.
Silahkan gunakan dan pastikan dicoba di non-production server sampai kita yakini plugin bisa berjalan dengan baik dan tidak menggangu sistem secara keseluruhan.
Untuk memeriksa apakah ada error maupun warning di program spamassassin kita bisa gunakan perintah:
[zimbra]$ spamassassin -D --lint 2>&1 | grep -i failed
Semoga bermanfaat, Salam.
Untuk blok email ini sebagai spam , ok, bisa dilakukan dengan cara diatas.
Namun untuk cara memblok supaya tidak mengirim via SMTP kita bagaimana ya?
🙂
Welcome mas eric,
Jika mail server anda bisa dipakai untuk mengirim email ke domain lain tanpa otentikasi kondisi ini disebut “OPEN RELAY” silahkan cari tahu ke google apa itu open relay, mail server yang benar tidak memperbolehkan kondisi openrelay.
Bisa juga OpenRelay ini di sebabkan password dari akun email terlalu simple sehingga bisa di tebak oleh para spammer, gunakan password yang baik minimal 8 karakter terdiri dari kombinasi Uppercase, Lowercase, Numerik, dan karakter seperti /#[email protected] dll.
Jika open relay ini dibiarkan berlarut-larut besar kemungkinan IP publik server anda akan masuk ke dalam Blacklist system DNSBL atau RBL untuk mengeceknya silahkan cek ip publiknya di https://mxtoolbox.com/blacklists.aspx
Hi Pak Agus,
Saya tidak menemukan file ini /opt/zimbra/conf/salocal.conf.in di zimbra saya ver 8.6.0
Adanya file /opt/zimbra/conf/salocal.cf.in dan juga tidak ada baris “normalize_charset 1”
Please advice & tks.
Selamat datang mas Nur Soleh,
Sebelum menjawab pertanyaan saya sarankan untuk upgrade zimbra anda ke versi terbaru 8.8.15, karena untuk versi 8.6.0 sudah EOL sejak 30 September 2019 dan tidak akan mendapatkan security patch lagi sangatlah riskan untuk menjalankan software yang sudah tidak di maintenance.
Untuk file
salocal.conf.in
yang tidak ada memang sudah tergantikan olehsalocal.cf.in
mas soleh bisa menambahkan plugin directive nya di file tersebut.normalize_charset 1 bisa di tambahkan manual di baris paling akhir.
Mohon maaf mas
Untuk zimbra multi server apakah di set di mta server nya atau di mana mas
Terima kasih
Iya ini di setting mta server