CentOs: instalacja SpamAssassin

Autor: Arkadiusz Tobiasz 3 listopada 2011

Mając własny serwer z zainstalowanym serwerem poczty wkrótce dopadnie Cie problem ze spamem trafiającym na skrzynki mailowe. W tym celu warto zainstalować SpamAssassin, który w pewnym stopniu pozwoli wykryć i oznaczyć wiadomości podejrzewane jako spam. Dzięki temu klient pocztowy, z którego korzystamy w jakiś sposób będzie mógł filtrować ściągane wiadomości.

Rozpoczynamy od zainstalowania odpowiedniego oprogramowani wydając polecenie:

1
yum install spamassassin

Uruchamiamy nasz program i dodajemy odpowiednią linijkę, aby przy restarcie systemu automatycznie się uruchamiał:

1
2
service spamassassin start
chkconfig --levels 235 spamassassin on

Musimy jeszcze skonfigurować nasz program. Plik konfiguracyjny znajduje się pod ścieżką /etc/mail/spamassassin/local.cf

1
vi /etc/mail/spamassassin/local.cf

Możemy użyć generatora do stworzenia optymalnej dla nas konfiguracji. Link do generatora znajdziesz tutaj. Ja jednak nie skorzystam z niego 😉

Moja konfiguracja wygląda następująco:

1
2
3
4
required_hits 5
report_safe 1
rewrite_header Subject [SPAM]
auto_learn 1

Pierwsza wartość to progowa wyliczona wartość spamowa wiadomości, od której uznawana jest za SPAM. Kolejna to włączenie raportowania (0, aby wyłączyć). Następnie informacja w jaki sposób w temacie będzie zaznaczana wiadomość oznaczona jako spam. Ostatnia, towłączone automatyczne uczenie się filtra Bayes-a.

Dokonujemy restartu Spam Assassina:

1
service spamassassin restart

Pozostaje jeszcze konfiguracja naszego Postfix’a. Edytujemy plik: /etc/postfix/master.cf

1
vi /etc/postfix/master.cf

Dodajemy na końcu linijkę:

1
2
spamfilter unix - n n - - pipe
  flags=Rq user=spamfilter argv=/usr/local/bin/spamfilter -f ${sender} -- ${recipient}

Modyfikujemy linijkę na początku pliku:

1
smtp inet n - n - - smtpd

na:

1
2
smtp inet n - n - - smtpd
-o content_filter=spamfilter:dummy

Dodajemy użytkownika spamfilter

1
adduser spamfilter -s /sbin/nologin

Tworzymy skrypt bashowy:

1
vi /usr/local/bin/spamfilter

o następującej zawartości:

1
2
3
4
5
#!/bin/bash

/usr/bin/spamc | /usr/sbin/sendmail.postfix -i "$@"

exit $?

Zmieniamy właściciela skryptu na użytkownika spamfilter:

1
chown spamfilter /usr/local/bin/spamfilter

oraz zmieniamy prawa zapisu:

1
chmod 755 /usr/local/bin/spamfilter

Na końcu przeładowujemy Postfix’a:

1
/etc/init.d/postfix reload

Jeden komentarz

  1. pablo napisał(a):

    Dzięki wielkie, przerobiłem kilka tutoriali ale żaden z nich nie chciał zadziałać „do końca” zawsze występowały jakieś problemy.
    Gdy przerobiłem krok po kroku powyższy tutorial od razu wszystko zadziałało.

    Pozdrawiam,
    PC

Odpowiedz

 

Arkadiusz Tobiasz student Akademii Ekonomicznej im. Karola Adamieckiego w Katowicach na specjalnościach informatyka ekonomiczna oraz rachunkowość. Więcej...

jQuery Validation i funkcja remote

Jakiś czas temu zwrócił się do mnie użytkownik z problemem. Chodzi o to, że korzysta on z pluginu walidacji jQuery, […]

Zend Framework: integracja z Uploadify

W tym wpisie postaram się przedstawić Wam w jaki sposób zintegrować skrypt Uploadify z Zend Frameworkiem. Dzięki temu będziemy mogli […]

Javascript: Czasowe wyświetlanie reklamy

Czasami chcemy, aby na pewnym elemencie naszej strony wyświetlała się reklama przez jakiś czas, a następnie zniknęła. W tym wpisie […]

Linux: backup wszystkich baz danych MySQL

Swego czasu pisałem o tym jak z poziomu konsoli można szybko i przyjemnie zrobić backup bazy MySQL. Wszystko jest ładnie […]