Mailfiltering

From A-Eskwiki
Jump to: navigation, search

De inkomende mail bij A–Eskwadraat wordt gefilterd met de SpamAssassin spamfilter.

Hoe werkt het?

Deze filtersoftware gebruikt een grote set van verschillende tests om te detecteren of een bepaald mailtje spam is. Iedere positieve test levert een bepaalde score op en als de som van scores groter is dan een bepaalde waarde (5 in ons geval) dan wordt het mailtje als spam gezien. Deze tests bestaan o.a. uit reguliere expressies en een Baysiaans filter (een zelf-lerend, fuzzy systeem).

In het geval dat een mail als spam gedetecteerd is weigeren we deze mail. Dat betekent dat het mailtje niet aankomt en dat we dat laten weten aan de versturende mailserver. We bewaren de mail wel in /var/log/exim4/spam.mbox, logrotated per dag, met een bewaartermijn van een maand. Met mutt's bounce optie kun je mail hieruit alsnog laten bezorgen bij mensen. De mailboxen zijn leesbaar voor group adm. Als er dus een vermoeden van false positives is, kun je dat hierin opzoeken. De uitgebreide spamassassinreport zijn te vinden in /var/log/exim4/rejectlog.

Deze brengt hiervan (normaal gesproken) de zender op de hoogte via een foutmelding danwel een mail met de melding dat de mail geweigerd is omdat het spam lijkt. Dit zorgt ervoor dat mail die foutief gedetecteerd is als spam (zogenaamde false positives) niet spoorloos verdwijnen, maar dat de afzender hiervan op de hoogte komt. Mocht je van een false positive op de hoogte komen, laat dat dan aan Sysop weten!

Verder zijn er natuurlijk ook altijd nog spammails die wel door het filter komen: false negatives. Om het spamfilter beter te maken, ontvangen wij graag deze mails via de speciaal daarvoor aangemaakte SPAM_VOOR_SYSOP-mailmap, die iedere gebruiker heeft. Deze mailmappen worden iedere nacht geleegd en regelmatig updaten wij het Baysiaans filter en andere tests om ook deze mail beter te detecteren.

Spamfilter trainen

Om accuraat te blijven moet de Baysiaanse filter getraind worden. Ook moeten er soms nieuwe regels worden bijgeschreven of moet de score van bestaande regels worden aangepast. Gebruikers kunnen spam die niet is tegengehouden rapporteren in hun SPAM_VOOR_SYSOP-mailmap. (Evenzo kunnen ze niet-spam met een hoge score in de HAM_VOOR_SYSOP-map stoppen.) Elke nacht wordt de inhoud van deze mappen verplaatst naar /var/spool/spam-learn/{SPAM,HAM}.

De mail in deze twee mappen kan automatisch worden geleerd door de spamfilter met het Sysop-commando spam-learn. Belangrijk is dat je van te voren controleert dat er niet toevallig ham in de SPAM-box of spam in de HAM-box staat.

Er wordt over het algemeen nauwelijks HAM gerapporteerd en als dat wel gebeurd is meestal niet de Baysiaanse filter de schuldige, maar een of meerdere regexp-regels. Kijk daarom altijd naar de X-Spam-Square header en stel de score van schuldige/slecht discriminerende regels naar beneden.

Let op: De HAM-box zou in tegenstelling tot de SPAM-box privacy-gevoelige mails kunnen bevatten. Denk dus goed na hoe je hiermee omgaat.