Obrona przed spamem w systemie Linux


Integracja w postfix

Gdy już omówiliśmy całą teorię związaną z filtrami, pozostaje teraz wyjaśnić, jak skłonić SpamAssassin do współpracy z własnym serwerem pocztowym. Czynności do wykonania różnią się zależnie od oprogramowania serwera. Generalnie obowiązuje zasada, że SpamAssassin wbudowany jest jako filtr w procedurę przetwarzania poczty. Poniższy przykład objaśnia integrację SpamAssassin z postfix.

Najpierw Mail Transfer Agent musi dowiedzieć się, że ma filtrować pocztę w SpamAssassin. Konieczna jest ingerencja w pliku master.cf w folderze /etc/postfix. Poszukaj następującego wiersza (Listing 5).

i dodaj warunek filtra -o content-filter=spamd. Po modyfikacji wiersz ma wyglądać jak poniżej (Listing 6).

Wstawiając na końcu pliku (Listing 7), informujemy postfix, co ma robić content-filter=spamd. Zwróć uwagę, że dwa ostanie wiersze zaczynają się od spacji. To ważne, gdyż w przeciwnym razie MTA nie wiedziałby, że trzy wiersze stanowią całość.

Parametry user oraz argv zapewniają kontekst użytkownika oraz informują o programie do wykonania, przy czym <user> musi istnieć w systemie. Po ponownym uruchomieniu postfix poleceniem:

/etc/init.d/postfix reload

konfiguracja jest zakończona, a każda przychodząca wiadomość jest filtrowana przez SpamAssassin.

Współpraca z procmail

Integracja z MTA ma tylko jeden słaby punkt. Każda nadchodząca wiadomość powołuje wywołanie filtra antyspamowego, a być może nie zawsze jest to pożądane. Istnieje jednak możliwość uruchamiania SpamAssassin tylko dla wybranych użytkowników. Jeżeli chcesz wybrać taką możliwość, musisz w folderze domowym użytkownika założyć plik /forward o treści:

| /usr/bin/procmail

Każda wiadomość dla tego użytkownika będzie filtrowana przez procmail. Teraz są dwie możliwości: każdy użytkownik ma własny plik filtra lub istnieje plik globalny. Osobisty plik filtra znajduje się w katalogu domowym użytkownika i nosi nazwę .procmailrc (z kropką na początku).

Globalny plik filtra zakładasz w folderze /etc, a jego nazwa to procmailrc (bez kropki na początku). W plikach tych znajdują się tak zwane reguły. W przypadku SpamAssassin wygląda to tak:

:0fw

| /usr/bin/spamc

lub gdy filtr nie pracuje jako demon:

:0fw

| /usr/bin/spamassassin

Osobisty plik reguł ma sens tylko wówczas, gdy używasz procmail nie tylko do filtrowania spamu. Tutaj wariant z globalnym plikiem procmailrc jest znacznie mniej pracochłonny.

Podsumowanie

SpamAssassin to wydajny i elastyczny filtr antyspamowy, który jedynie wymaga pewnego wyczucia w trakcie konfiguracji i odrobiny konserwacji później. Rozbudowane opcje tuningu umożliwiają dopasowanie do indywidualnych potrzeb. Gdy już uporasz się z integracją z serwerem pocztowym, SpamAssassin odpłaci się bardzo wysoką skutecznością.

Listing 5

smtp n - n - - smtpd

Listing 6

smtp n - n - - - smtpd -o content_filter=spamd

Listing 7

spamd unix - n n - - pipe

user=<user> argv=/usr/bin/spamc -f

-e /usr/bin/sendmail -oi -f ${sender} ${recipient}