Konfigurasi SpamAssassin untuk Menyaring Spam

Salah satu tantangan dalam mengelola email server adalah menyaring spam. Email spam biasanya berisi promosi tidak jelas ini cukup menyita bandwith dan sangat menjengkelkan. Dalam tulisan ini, saya mencoba mengimplentasikan spam filtering menggunakan SpamAssassin dan dalam topik selanjutnya akan mengulas Squirrelmail plus Spam Buttons, plugin untuk mengirim report apakah sebuah email untuk dinyatakan sebagai spam atau non-spam.

Spam status

Konfigurasi mail server yang saya gunakan adalah Linux Fedora Core dan MTA menggunakan Qmail. Paket instalasi Qmail menggunakan Qmailtoaster, paket berbasis RPM ini cukup komplit untuk membangun sebuah mail server yang bisa diandalkan. Beberapa aplikasi pokok yang disertakan dalam paket ini, diantaranya :

  • POP3 server dan Virtual User : Vpopmail
  • IMAP server : Corrier-IMAP
  • Anti Spam : SpamAssassin
  • Anti Virus : Clamav
  • Webmail : Squirrelmail

Seperti topik tutorial ini, Saya mencoba mengoptimalisasikan konfigurasi SpamAssassin jadi tidak menjelaskan secara proses installasi Qmailtoaster. Silahkan mengunjungi website Qmailtoaster apabila ingin mengetahui detail instalasinya. Saya anggap seluruh paket Qmailtoaster telah ter-install dan berfungsi.

Sekilas tentang SpamAssassin, fungsi aplikasi open source ini yakni sebagai email filter untuk mengenali spam sebelum email masuk ke dalam inbox. Melakukan berbagai tes terhadap email dan mengindentifikasikannya menggunakan metode statistik canggih, metode Bayes, DNS bloklist dan kolaborasi database filter.

File konfigurasi agar SpamAssassin memahami spam, berdasarkan paket Qmailtoaster terletak di
/etc/mail/spamassassin/
/usr/share/spamassassin/

Konfigurasi dasarnya di /etc/mail/spamassassin/local.cf, sebagai berikut :
ok_locales all
skip_rbl_checks 1
required_hits 5 (skor email, silahkan disesuaikan kebutuhan)
dns_available yes
report_safe 1
rewrite_header Subject ***SPAM*** (bisa diganti sesuai keinginan)
use_pyzor 1
use_auto_whitelist 1
# Enable Bayesian Statistical Scoring
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1

Sedangkan file konfigurasi di /usr/share/spamassassin/*.cf berisi aturan pilihan untuk menyaring spam menggunakan perl modules yang telah terinstall. Apabila ingin menambahkan rule set yang lain bisa mengambil sample di Rules Emporium. Setiap kali perubahan config file jalankan command :

$ spamassassin -D --lint

Periksa hasil perintah di atas, bila menemukan error messages perbaiki dahulu kofigurasinya sebelum me-restart qmail. Biasanya terjadi kesalahan akibat modul Perl tidak ditemukan, download dahulu modul Perl yang diperlukan di CPAN. Setelah melakukan perubahan, restart lah Qmail.

Langkah berikutnya membuat email account untuk menampung email yang dinyatakan sebagai spam dan non spam (ham), misalnya spam@domainku.web.id dan nospam@domainku.web.id.
Saya mengambil contoh skrip learn spam untuk memproses email agar dikenali sebagai spam atau nospam ( Bayes Training ), dari Qmailtoaster Wiki.
nama file : learn_spam

#!/bin/bash
# Spam Assassin Bayes Training
#

# Learn spam!
DOMAIN=domainku.web.id
SPAM=spam
HAM=nospam

cd /home/vpopmail/domains/$DOMAIN/$SPAM/Maildir/cur
/usr/bin/sa-learn –spam ./*
rm -rf /home/vpopmail/domains/$DOMAIN/$SPAM/Maildir/cur/*

cd /home/vpopmail/domains/$DOMAIN/$SPAM/Maildir/new
/usr/bin/sa-learn –spam ./*
rm -rf /home/vpopmail/domains/$DOMAIN/$SPAM/Maildir/new/*

# Learn ham!
cd /home/vpopmail/domains/$DOMAIN/$HAM/Maildir/cur
/usr/bin/sa-learn –ham ./*
rm -rf /home/vpopmail/domains/$DOMAIN/$HAM/Maildir/cur/*
cd /home/vpopmail/domains/$DOMAIN/$HAM/Maildir/new
/usr/bin/sa-learn –ham ./*
rm -rf /home/vpopmail/domains/$DOMAIN/$HAM/Maildir/new/*
# EOF

Jalankan script ini di cron.daily sehingga secara rutin setiap hari mendeteksi hasil laporan dari users.

Selanjutnya, untuk mempermudah user melaporkan email spam/non-spam menggunakan Spam Button plugin untuk aplikasi webmail Squirrelmail akan dibahas dalam tutorial selanjutnya.

5 thoughts on “Konfigurasi SpamAssassin untuk Menyaring Spam”

  1. pa arief, saya mau tanya. saya mempunyai mail server dan menggunakan spamassassin sebagai spam filternya. yang saya mau tanyakan, kenapa saya harus restart service spamassassin ( stop dan start ) setiap 6 atau 7 hari sekali ? karena jika tidak, spamfilter tidak akan bekerja ( spam email dapat masuk ). apa masih ada config yang kurang di server saya. mohon penjelasannya..

    terimakasih

  2. Mas, arief, saya mau coba install qmail toaster, tapi sewaktu install clamav-toaster ga selesai-selesai, apakah untuk install qlamav toaster memang membutuhkan waktu yang lama?

  3. mas sya menngunakan qmailtoaster dan update clamav terbaru 09.52 namun virus yg dibungkus oleh zip tetap tembus yg didalmnnya terisi .scr,.paf pdahal pada simcontrol sudah sya daftarkan.namun hasilnya nihil virus tetap masuk. ada yg bisa di share kan ???
    thx

Leave a Reply