Integracja Postfix z SpamAssassin – Skuteczna Ochrona Przed Spamem
Spam to jedno z największych wyzwań dla administratorów serwerów pocztowych. SpamAssassin to popularne narzędzie do filtrowania spamu, które analizuje treść wiadomości i przypisuje im punkty na podstawie różnych reguł. Można go zintegrować z Postfix, aby skutecznie blokować niechciane wiadomości i minimalizować ryzyko fałszywie pozytywnych wyników.
W tym artykule omówimy:
✅ Instalację i konfigurację SpamAssassin.
✅ Ustawienie progów spamu i odpowiednich akcji.
✅ Automatyczne uczenie SpamAssassin na podstawie oznaczonych wiadomości.
1. Jak działa SpamAssassin?
SpamAssassin ocenia każdą wiadomość na podstawie reguł filtrowania, takich jak:
- Analiza nagłówków i treści wiadomości.
- Sprawdzanie czarnych list (RBL).
- Analiza heurystyczna i statystyczna.
- Użycie systemu Bayesowskiego do nauki na podstawie poprzednich wiadomości.
Wiadomości są punktowane – jeśli przekroczą określony próg, są uznawane za spam i mogą zostać:
✅ Oznaczone jako spam i dostarczone do skrzynki odbiorczej.
✅ Automatycznie usunięte lub przekazane do innego katalogu.

2. Instalacja SpamAssassin i wymaganych pakietów
SpamAssassin działa jako samodzielna usługa lub w połączeniu z Postfix poprzez amavisd-new lub spamd/spamc.
2.1. Instalacja na Debian/Ubuntu
sudo apt update
sudo apt install spamassassin spamc
2.2. Instalacja na CentOS/RHEL
sudo yum install spamassassin spamc
Po instalacji uruchamiamy i włączamy SpamAssassin:
sudo systemctl enable spamassassin
sudo systemctl start spamassassin
3. Konfiguracja SpamAssassin
Plik konfiguracyjny SpamAssassin znajduje się w:
/etc/spamassassin/local.cf
Edytujemy go:
sudo nano /etc/spamassassin/local.cf
Dodajemy lub modyfikujemy następujące opcje:
required_score 5.0 # Próg uznania wiadomości za spam (im niższa wartość, tym bardziej agresywny filtr)
rewrite_header Subject ***SPAM*** # Dodaje etykietę SPAM w temacie wiadomości
use_bayes 1 # Włącza uczenie Bayesowskie
bayes_auto_learn 1 # Automatyczne uczenie na podstawie klasyfikacji wiadomości
skip_rbl_checks 0 # Włącza sprawdzanie czarnych list RBL
Po zapisaniu zmian restartujemy SpamAssassin:
sudo systemctl restart spamassassin
4. Integracja SpamAssassin z Postfix
Postfix nie obsługuje natywnie SpamAssassin, ale możemy go skonfigurować do filtrowania wiadomości przy użyciu spamd/spamc.
4.1. Edycja master.cf
w Postfix
Edytujemy plik /etc/postfix/master.cf:
sudo nano /etc/postfix/master.cf
Dodajemy poniższą sekcję na końcu pliku:
smtp inet n - n - - smtpd
-o content_filter=spamassassin
spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
Zapisujemy i restartujemy Postfix:
sudo systemctl restart postfix
💡 Teraz każda wiadomość będzie przechodziła przez SpamAssassin, zanim zostanie dostarczona do użytkownika.
5. Automatyczne uczenie SpamAssassin na podstawie oznaczonych wiadomości
SpamAssassin można nauczyć, które wiadomości to spam, a które są poprawne. Do tego celu służą dwie komendy:
- Uczenie na podstawie spamu (np. katalogu „Spam” użytkownika):
sa-learn --spam /var/mail/spam
- Uczenie na podstawie dobrych wiadomości (np. katalogu „Inbox” użytkownika):
sa-learn --ham /var/mail/inbox
Aby automatycznie uczyć SpamAssassin, możemy dodać zadanie CRON:
crontab -e
Dodajemy:
0 2 * * * sa-learn --spam /var/mail/spam && sa-learn --ham /var/mail/inbox
💡 Teraz SpamAssassin będzie codziennie analizował wiadomości i dostosowywał swoje reguły!
6. Testowanie konfiguracji SpamAssassin
Po skonfigurowaniu SpamAssassin możemy przetestować jego działanie, wysyłając testową wiadomość zawierającą „GTUBE” – standardowy wzorzec testowy spamu:
echo "XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X" | mail -s "Test Spam" user@example.com
Jeśli wszystko działa poprawnie, wiadomość powinna zostać oznaczona jako spam.
Możemy również sprawdzić logi w:
sudo tail -f /var/log/mail.log | grep spamd
7. Optymalizacja i dostosowanie konfiguracji
✔ Dostosowanie progu spamu: Jeśli zbyt wiele wiadomości jest błędnie klasyfikowanych, możemy dostosować wartość required_score
.
✔ Blokowanie znanych spamerów: Możemy dodać adresy e-mail lub domeny do czarnej listy w /etc/spamassassin/local.cf
:
blacklist_from spammer@example.com
✔ Dostosowanie reguł: SpamAssassin obsługuje niestandardowe reguły w /etc/spamassassin/user_prefs
.
Podsumowanie
✅ SpamAssassin to skuteczne narzędzie do filtrowania spamu w Postfix.
✅ Prosta integracja z Postfix przy użyciu spamd/spamc
.
✅ Możliwość dostosowania progów spamu i wyjątków.
✅ Automatyczne uczenie na podstawie oznaczonych wiadomości poprawia skuteczność filtrowania.
Dzięki tej konfiguracji Twoja skrzynka e-mail będzie wolna od spamu, a użytkownicy otrzymają tylko istotne wiadomości.