Pyzor is een spamfiltering systeem dat functioneert vanuit de cloud, waarbij berichten als spam gemarkeerd worden op basis van de body van een bericht. De community voedt het Pyzor systeem met spam en ham en de betreffende server slaat dit op in haar database zodat iedereen hiervan gebruik kan maken. Wanneer een bericht een minimaal aantal keren als spam is gemarkeerd, reageert spamassassin hierop door de spam-score te verhogen.

En het allermooiste is dat dit alles 100% gratis is en in slechts vijf simpele stappen op jouw server te installeren is:

1. Pyzor installeren

Installeren met PIP

Zoals de documentatie van Pyzor zelf suggereert kun je Pyzor het beste installeren via de Python Package Installer, gezien je dan zeker bent dat je de meest recente versie hebt:

apt-get install python-pip
pip install pyzor
pip install --upgrade pyzor

Installeren met package-manager

Als alternatief kun je, wanneer je bijvoorbeeld gebruik maakt van een Debian-achtige Linux distributie, de installatie via de package-manager uitvoeren:

apt-get install pyzor

2. Pyzor testen

In de uiteindelijke configuratie wordt Pyzor door Spamassassin aangeroepen, maar om zeker te zijn dat alles naar behoren functioneert, kunnen we een e-mail direct aan Pyzor voeren:

# Pass an e-mail message (should be in RFC 822 format)
# You could save a message from Thunderbird to get a properly formatted message
cat testmessage.eml | pyzor check

Het resultaat zou er ongeveer als volgt uit moeten zien:

public.pyzor.org:24441 (200, 'OK') 16957 0

Hierbij is het eerste getal het aantal keren dat het bericht als spam gemarkeerd is en het tweede getal het aantal keren dat het bericht als whitelisted is. Als jouw bericht nog niet bekend is in de Pyzor database krijg je dus voor beide resultaten het getal 0 terug.

3. Pyzor in Spamassassin installeren

Allereerst dient de Pyzor plugin ingeschakeld te worden. Verwijder hiervoor in het bestand /etc/spamassassin/v310.pre de hashtag aan het begin deze regel:

#loadplugin Mail::SpamAssassin::Plugin::Pyzor
loadplugin Mail::SpamAssassin::Plugin::Pyzor

Vervolgens dient Pyzor ingeschakeld en geconfigureerd te worden in /etc/spamassassin/local.cf:

use_pyzor 1
pyzor_options --homedir /etc/spamassassin/pyzor

Omdat we Pyzor een alternatieve home-directory hebben gegeven, om rechtenproblemen te voorkomen, dient deze handmatig te worden aangemaakt:

mkdir /etc/spamassassin/pyzor

Als laatste hoeft spamassassin alleen maar herstart te worden (een reload is niet genoeg omdat we extra plugins hebben ingeschakeld):

service spamassassin restart

4. Spamassassin met Pyzor testen

Om vervolgens te testen of alles goed is gegaan, kun je een e-mail aan Spamassassin in Debugmodus voeren:

cat testmessage.eml | spamassassin -D pyzor 2>&1 | less

De debuginformatie zou er als volgt uit kunnen zien, waarbij de regel met got response een belangrijk signaal is dat het naar behoren functioneert:

Jun 5 15:44:10.374 [2981] dbg: pyzor: network tests on, attempting Pyzor
Jun 5 15:44:11.566 [2981] dbg: pyzor: pyzor is available: /usr/bin/pyzor
Jun 5 15:44:11.567 [2981] dbg: pyzor: opening pipe: /usr/bin/pyzor --homedir /etc/spamassassin/pyzor check < /tmp/.spamassassin2981Mw3GTLtmp
Jun 5 15:44:11.610 [2981] dbg: pyzor: [2984] finished: exit 1
Jun 5 15:44:11.610 [2981] dbg: pyzor: got response: public.pyzor.org:24441 (200, 'OK') 0 0

Wanneer een bericht in de database van Pyzor vaak genoeg als spam is gemarkeerd wordt de PYZOR_CHECK regel toegevoegd aan het spamrapport van Spamassassin:

        *  1.4 PYZOR_CHECK Listed in Pyzor (http://pyzor.sf.net/)

5. Pyzor finetunen

Wanneer een bericht een minimaal aantal keren voorkomt in de database van Pyzor, voldoet het bericht volgens spamassassin om als spam gemarkeerd te worden. Dit aantal wordt gedefinieerd in de pyzor_max instelling. Standaard moet een bericht minimaal 5 keer in de database voorkomen. Wanneer je deze verhoogt wordt een bericht minder snel gemarkeerd en vice versa. Dit kun je simpelweg toevoegen aan /etc/spamassassin/local.cf:

pyzor_max 10

Wanneer een bericht vervolgens voldoet als spam, wordt de PYZOR_CHECK regel aan het spamrapport toegevoegd en wordt de spamscore van het betreffende bericht standaard verhoogd met 1.4 punten. Ook deze score kun je relatief gemakkelijk verlagen of verhogen door deze toe te voegen aan /etc/spamassassin/local.cf:

score PYZOR_CHECK 2.0

E-mails aan Pyzor rapporteren (optioneel)

Deze laatste stap is optioneel en alleen interessant als je een betrouwbare database van SPAM en/of HAM berichten hebt en je een steentje wilt bijdragen aan de publieke database. De enige voorwaarde is dat de e-mails in deze database volgens het RFC 822 formaat zijn opgemaakt en dat je van je van de betreffende berichten zeer zeker weet of het om SPAM of om HAM gaat (wees je er bewust van dan een ongewenste e-mail niet altijd spam is).

SPAM aan Pyzor rapporteren

Spam aan pyzor rapporteren kan gemakkelijk via één commando:

cat spammessage.eml | pyzor report

Eventueel kun je het commando omringen met een check-opdracht om te zien of het aantal verhoogt:

# This should return the standard two-digit result, for example "10 0"
cat spammessage.eml | pyzor check
# This only returns (200, 'OK') if all went ok
cat spammessage.eml | pyzor report
# Rechecking the database should return the same two-digit result with the first digit raised by one, for example "11 0"
cat spammessage.eml | pyzor check

HAM aan Pyzor rapporteren

Pyzor spreekt niet van HAM maar van Whitelisten. Wanneer je gebruik maakt van de publieke database van Pyzor (public.pyzor.org) is het Whitelisten van berichten uitgeschakeld. De reden is voor de hand liggend, wanneer iedereen berichten kan een spammer dat ook en dat is nu juist niet de bedoeling van het geheel.

Mocht je gebruik maken van een alternatieve database die whitelisting wel ondersteund, dan gaat dit even gemakkelijk als een bericht als SPAM rapporteren:

cat hammessage.eml | pyzor whitelist

Conclusie

Omdat installatieproces erg gemakkelijk is, kan Pyzor een welkome toevoeging zijn aan Spamassassin, simpelweg omdat het een extra controle geeft om berichten als spam te markeren.

De gratis — publieke — database ondersteunt helaas geen Whitelisting, waardoor de controle alleen helpt om berichten meer als SPAM te markeren. Mocht je Pyzor willen gebruiken om berichten als HAM te markeren en/of berichten te kunnen Whitelisten dan zou je gebruik kunnen maken van een gesloten Pyzor database waar deze functionaliteit wel beschikbaar is of zelf een Pyzor server kunnen opzetten waar meerdere 'erkende' gebruikers berichten zouden kunnen aanbieden. Mijn mening? Bespaar je de moeite.

Bronnen