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#

Shell
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#

INI
# /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:7831
milter_protocol = 6
milter_default_action = accept
Shell
sudo postfix reload

milter_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#

Shell
spamscanner milter --port 7831 --auth --reject

Wiadomoś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ę:

Text
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.

Edytuj tę stronę na GitHub · Markdown ·