Filtr antyspamowy Postfix
Spam Scanner zaczyna filtrować serwer Postfix w około pięć minut. Działa jako milterMail filter: protokół z Sendmail, używany też przez Postfix, który pozwala osobnemu programowi sprawdzić każdą wiadomość w trakcie sesji SMTP., więc Postfix pyta go o każdą wiadomość w trakcie sesji SMTP i może odrzucić spam, zanim go przyjmie.
Instalacja i uruchomienie#
npm install --global spamscanner
spamscanner milter --port 7831 --auth --subject-tag "[SPAM]"--auth sprawdza SPFSender Policy Framework: rekord DNS z listą serwerów, które mogą wysyłać pocztę w imieniu domeny., DKIMDomainKeys Identified Mail: podpis wiadomości sprawdzany kluczem publicznym opublikowanym w DNS nadawcy., DMARCPolityka w DNS, która mówi odbiorcom, co zrobić z pocztą podającą się za domenę, gdy nie przechodzi ona dopasowania SPF i DKIM. i ARCAuthenticated Received Chain: podpisy, które przenoszą wyniki uwierzytelnienia przez serwery przekazujące pocztę.; --subject-tag oznacza spam w temacie. Każda wiadomość dostaje nagłówki X-Spam-Flag, X-Spam-Score, X-Spam-Status i X-Spam-Action, a każdy nagłówek X-Spam-* dodany przez nadawcę jest najpierw usuwany.
Podłączenie Postfix#
# /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:7831
milter_protocol = 6
milter_default_action = acceptsudo postfix reloadmilter_default_action = accept przepuszcza pocztę bez filtrowania, gdy milter nie działa; tempfail prosi zamiast tego nadawców o ponowienie próby.
Odrzucanie spamu w trakcie sesji SMTP#
spamscanner milter --port 7831 --auth --rejectWiadomości na progu odrzucenia (15 punktów) są odrzucane z 451 4.7.1 Message rejected as spam. Kod 451 jest tymczasowy: nadawca zatrzymuje wiadomość i ponawia próbę, więc błędna decyzja kosztuje opóźnienie, a nie utraconą wiadomość. Gdy wyniki będą wyglądać poprawnie, --reject-code 550 sprawia, że odrzucenie jest trwałe.
Bez miltera#
Filtr treści działa po przyjęciu wiadomości przez Postfix: Postfix przekazuje ją potokiem do spamscanner filter, który dodaje nagłówki i oddaje ją z powrotem. W trakcie sesji nic nie jest odrzucane, a błąd zawsze odkłada dostarczenie zamiast odbijać pocztę. Konfiguracja filtra treści
Spam do folderu Junk#
Z Dovecot reguła Sieve przenosi oznaczoną pocztę:
require ["fileinto"];
if header :is "X-Spam-Flag" "YES" { fileinto "Junk"; stop; }Przetestowany na prawdziwym Postfix#
Testy end-to-end projektu uruchamiają Postfix z milterem i filtrem treści: hamPożądana poczta: przeciwieństwo spamu. jest dostarczany z nagłówkami, a podrobiony X-Spam-Flag usuwany, spam jest oznaczany, a GTUBEGeneric Test for Unsolicited Bulk Email: stały ciąg znaków, który każdy filtr antyspamowy traktuje jako spam, przeznaczony do testów. jest odrzucany kodem 550 w trakcie sesji SMTP.
Dalej: pełny poradnik Postfix i Sendmail, z jednostką systemd i INPUT_MAIL_FILTER dla Sendmail.