Narzędzia użytkownika

Narzędzia witryny


freebsd:ports:spamassassin

SpamAssassin

SpamAssassin to na tyle złożony twór, że postanowiłem napisać osobną stronę na jego temat.

Założenia:

  • podłączenie do Postfixa
  • konfiguracja per user z bazy MySQL
  • użycie mechanizmów DCC, Razor, Pyzor
  • blacklisty
  • dodatkowe reguły filtrujące polski SPAM

Instalacja

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"

Konfiguracja

Podłączenie do Postfix-a

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

Pliki konfiguracyjne

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

Pluginy

SPF

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

DCC

:!: 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

Razor2

:!: FIXME 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

Pyzor

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

Dodatkowe reguły, blacklisty itp.

Do powyższego warto dodać kilka list:

Listy pobieramy i wgrywamy do katalogu konfiguracji SpamAssassina, czyli to /usr/local/etc/mail/spamassassin

:!: UWAGI

  • w liście local.cf.reguly.ZABOJCASPAMU trzeba zmienić wszystkie wpisy „WLASNADOMENA” na swoją domenę
  • w liście Lemata trzeba odnaleźć i odkomentować linię:
#score ALL_PL_RULES	20
freebsd/ports/spamassassin.txt · ostatnio zmienione: 2017/04/12 08:35 przez mky