Postfix-spamfilter
Spam Scanner filtert een Postfix-server in ongeveer vijf minuten. Het draait als milterMail filter: een protocol van Sendmail, ook gebruikt door Postfix, waarmee een apart programma elk bericht tijdens de SMTP-sessie kan inspecteren., zodat Postfix het tijdens de SMTP-sessie over elk bericht raadpleegt en spam kan weigeren voordat die wordt geaccepteerd.
Installeren en draaien#
npm install --global spamscanner
spamscanner milter --port 7831 --auth --subject-tag "[SPAM]"--auth controleert SPFSender Policy Framework: een DNS-record met de servers die mail voor een domein mogen versturen., DKIMDomainKeys Identified Mail: een handtekening over een bericht, gecontroleerd met een publieke sleutel die in de DNS van de afzender staat., DMARCEen DNS-beleid dat ontvangers vertelt wat ze moeten doen als mail die zich op een domein beroept niet slaagt voor de SPF- en DKIM-uitlijning. en ARCAuthenticated Received Chain: handtekeningen die authenticatieresultaten meenemen langs doorstuurservers.; --subject-tag markeert spam in het onderwerp. Elk bericht krijgt de headers X-Spam-Flag, X-Spam-Score, X-Spam-Status en X-Spam-Action, en elke X-Spam-*-header die de afzender erin zette, wordt eerst verwijderd.
Postfix koppelen#
# /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:7831
milter_protocol = 6
milter_default_action = acceptsudo postfix reloadmilter_default_action = accept laat mail ongefilterd door als de milter niet draait; tempfail vraagt afzenders in plaats daarvan het opnieuw te proberen.
Spam weigeren tijdens de SMTP-sessie#
spamscanner milter --port 7831 --auth --rejectBerichten op de weigerdrempel (15 punten) worden geweigerd met 451 4.7.1 Message rejected as spam. Een 451 is tijdelijk: de afzender houdt het bericht vast en probeert het opnieuw, dus een verkeerde beslissing kost vertraging, geen verloren bericht. Zodra de resultaten kloppen, maakt --reject-code 550 de weigering definitief.
Zonder milter#
Een contentfilter draait nadat Postfix een bericht heeft geaccepteerd: Postfix geeft het via een pipe door aan spamscanner filter, dat headers toevoegt en het teruggeeft. Er wordt tijdens de sessie nooit iets geweigerd, en een fout stelt de bezorging altijd uit in plaats van de mail terug te sturen. Contentfilter instellen
Spam naar Junk#
Met Dovecot zet een Sieve-regel gemarkeerde mail apart:
require ["fileinto"];
if header :is "X-Spam-Flag" "YES" { fileinto "Junk"; stop; }Getest tegen een echte Postfix#
De end-to-endtests van het project draaien Postfix met de milter en het contentfilter: hamGewenste mail: het tegenovergestelde van spam. wordt met headers bezorgd en een vervalste X-Spam-Flag wordt verwijderd, spam wordt gemarkeerd, en GTUBEGeneric Test for Unsolicited Bulk Email: een vaste tekenreeks die elk spamfilter als spam behandelt, om te testen. wordt tijdens de SMTP-sessie met een 550 geweigerd.
Volgende stap: de volledige handleiding voor Postfix en Sendmail, met een systemd-unit en INPUT_MAIL_FILTER van Sendmail.