SpamAssassin to na tyle złożony twór, że postanowiłem napisać osobną stronę na jego temat.
Założenia:
SpamAssassin instalujemy z następującymi aktywnymi opcjami:
Options : AS_ROOT : on DCC : on* DKIM : off GNUPG : on GNUPG2 : off GNUPG_NONE : off MYSQL : on* PGSQL : off PYZOR : on* RAZOR : on* RELAY_COUNTRY : off SPF_QUERY : off SSL : on
Miejsca oznaczone gwiazdką to te, które trzeba zmienić ręcznie.
Włączenie spamassassina w /etc/rc.conf
:
spamd_enable="YES" spamd_flags="-q -x -u spamd --listen /var/run/spamd.sock"
W pliku konfiguracji Postfix-a w master.conf
dodajemy:
# ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== spamd unix - n n - - pipe user=spamd argv=/usr/local/bin/spamc -u ${user}@${domain} --socket=/var/run/spamd.sock -e /usr/local/sbin/sendmail -oi -f ${sender} ${recipient}
Dodatkowo do main.cf
:
# Spamassassin always_add_missing_headers = yes
Wszystkie pliki konfiguracyjne znajdują się w /usr/local/etc/mail/spamassassin
. Z tego katalogu wczytywane są wszystkie pliki zgodne z maską:
init.pre *.cf
Podstawowa struktura obejmuje pliki:
-rw-r--r-- 1 root wheel 1426 Mar 2 2016 init.pre -rw-r----- 1 root spamd 1051 Apr 1 14:18 local.cf -rw-r--r-- 1 root wheel 2529 Mar 2 2016 v310.pre -rw-r--r-- 1 root wheel 1196 Apr 1 18:02 v312.pre -rw-r--r-- 1 root wheel 2416 Apr 1 18:02 v320.pre -rw-r--r-- 1 root wheel 1237 Apr 1 18:02 v330.pre -rw-r--r-- 1 root wheel 1020 Apr 1 18:02 v340.pre -rw-r--r-- 1 root wheel 1309 Apr 1 18:02 v341.pre
Wczytywane są wszystkie powyższe pliki. Nazwy v3xx.pre
tyczą się kolejnych wydań SpamAssassina i nowych opcji, które zostały dodane.
Konfiguracja local.cf
:
report_safe 0 lock_method flock required_score 5.0 use_bayes 1 bayes_auto_learn 1 skip_rbl_checks 1 use_dcc 1 use_razor2 1 use_pyzor 1 normalize_charset 1 # Userprefs user_scores_dsn DBI:mysql:spamassassin:127.0.0.1 user_scores_sql_username spamassassin user_scores_sql_password haslo_do_bazy # AWL auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList user_awl_dsn DBI:mysql:spamassassin:127.0.0.1 user_awl_sql_table awl user_awl_sql_username spamassassin user_awl_sql_password haslo_do_bazy # Bayes bayes_store_module Mail::SpamAssassin::BayesStore::MySQL bayes_sql_dsn DBI:mysql:spamassassin:127.0.0.1 bayes_sql_username spamassassin bayes_sql_password haslo_do_bazy # Zabojca SPAM-u include /usr/local/etc/mail/spamassassin/local.cf.BL.SPAMTRAP include /usr/local/etc/mail/spamassassin/local.cf.reguly.ZABOJCASPAMU include /usr/local/etc/mail/spamassassin/local.cf.BL.ZABOJCASPAMU
Plugin do sprawdzania SPF-a. Sam SPF sprawdzany jest dwa razy (przez Postfix, potem przez SpamAssassin). Jeśli SPF się nie zgadza, mail zostanie odrzucony przez Postfix-a i nie będzie zawracał na głowy (alternatywnie przejdzie, jeśli soft-fail jest ustawiony). Dla SpamAssassina jest włączony po to, by można było ocenić potencjalny poziom SPAM-u w oparciu o zgodność z SPF.
W SpamAssassinie włączamy plugin w pliku init.pre
:
loadplugin Mail::SpamAssassin::Plugin::SPF
Publiczne serwery DCC dostępne tylko do użytku niekomercyjnego
Jeśli instalowaliśmy SpamAssassina z opcjami podanymi na początku strony, DCC powinien zainstalować się z zależności. Jeśli nie ma, trzeba zainstalować go ręcznie:
pkg install dcc-dccd
W pliku /usr/local/dcc/dcc_conf
włączamy opcję:
DCCIFD_ENABLE=on
Do /etc/rc.conf
dodajemy:
dccifd_enable="YES"
Po czym włączamy usługę:
service dccifd start
W SpamAssassinie włączamy plugin w pliku v310.pre
:
loadplugin Mail::SpamAssassin::Plugin::DCC
Licencja jest niejasna.. System jest ogólno dostępny, ale właściciel (CloudMark) zastrzega sobie prawo do odcięcia od usługi
Jeśli instalowaliśmy SpamAssassina z opcjami podanymi na początku strony, Razor powinien zainstalować się z zależności. Jeśli nie ma, trzeba zainstalować go ręcznie:
pkg install razor-agents
Jako użytkownik spamd wykonujemy:
razor-client razor-admin -create razor-admin -register
Utworzy to katalog /var/spool/spamd/.razor
i zarejestruje nas system.
W SpamAssassinie włączamy plugin w pliku v310.pre
:
loadplugin Mail::SpamAssassin::Plugin::Razor2
Jeśli instalowaliśmy SpamAssassina z opcjami podanymi na początku strony, Pyzor powinien zainstalować się z zależności. Jeśli nie ma, trzeba zainstalować go ręcznie:
pkg install py27-pyzor
W SpamAssassinie włączamy plugin w pliku v310.pre
:
loadplugin Mail::SpamAssassin::Plugin::Pyzor
Do powyższego warto dodać kilka list:
Listy pobieramy i wgrywamy do katalogu konfiguracji SpamAssassina, czyli to /usr/local/etc/mail/spamassassin
UWAGI
local.cf.reguly.ZABOJCASPAMU
trzeba zmienić wszystkie wpisy „WLASNADOMENA” na swoją domenę#score ALL_PL_RULES 20