Razor, Razor v2 of Razor2 zoals Spamassassin deze intern noemt, is een spamfiltering systeem dat gebruik maakt van een centrale database in de cloud. Vergelijkbaar met een database als die van Pyzor, worden spammails door de community aangeleverd en putten anderen uit deze database om te controleren of een bepaalde e-mail al eerder als spam was gemarkeerd. Daar waar Pyzor relatief simpel alleen de body controleert, houdt Pyzor ook rekening met de mate van waarschijnlijkheid waarin een bericht als spam gezien kan worden, bijvoorbeeld vergelijkbaar met Bayes.

Ook dit mechanisme is relatief gemakkelijk te installeren en helemaal gratis. 

1. Razor Installeren

Ondanks dat de documentatie suggereert om de meest recente versie te downloaden en Razor zelf te compileren, is de versie in de package manager op de meeste Debian-achtige Linux distributies aardig up to date. Gebruik daarom de standaard package manager om Razor te installeren:

apt-get install razor

2. Razor testen

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

cat spammessage.eml | razor-check --verbose

In het resultaat zou ongeveer o.a. de volgende melding moeten staan:

razor-check finished successfully

3. Razor in Spamassassin installeren

Om allereerst rechtenproblemen te voorkomen, wordt Razor geconfigureerd in de directory van Spamassassin:

mkdir /etc/spamassassin/razor
razor-admin -create -home /etc/spamassassin/razor
razor-admin -register -home /etc/spamassassin/razor

Vervolgens in het bestand /etc/spamassassin/local.cf: kunnen we Spamassassin aangeven waar we Razor geconfigureerd hebben:

use_razor2 1
razor_config /etc/spamassassin/razor/razor-agent.conf

Aan Razor moet expliciet worden aangegeven waar deze haar bestanden moet wegschrijven, dit kan door onderstaande regel aan het bestand /etc/spamassassin/razor/razor-agent.conf toe te voegen:

razorhome = /etc/spamassassin/razor

Eventueel dient de Razor plugin in Spamassassin ingeschakeld worden, als dat nog niet het geval is in /etc/spamassassin/v310.pre:

#loadplugin Mail::SpamAssassin::Plugin::Razor2
loadplugin Mail::SpamAssassin::Plugin::Razor2

Start als laatste de Spamassassin service opnieuw op, zodat spamd de nieuwe configuratie gebruikt:

service spamassassin restart

4. Spamassassin met Razor testen

Om vervolgen te testen of alles juist werkt, kun je een e-mail aan Spamassassin in Debugmodus geven:

cat spammessage.eml | spamassassin -D razor2 2>&1 | less

In de enorme lap aan debuginformatie die dit oplevert zou het resultaat ongeveer als volgt te zien moeten zijn:

Jun 6 14:29:54.266 [18986] dbg: razor2: part=0 engine=8 contested=0 confidence=100
Jun 6 14:29:54.266 [18986] dbg: razor2: part=1 engine=8 contested=0 confidence=100
Jun 6 14:29:54.266 [18986] dbg: razor2: results: spam? 1
Jun 6 14:29:54.266 [18986] dbg: razor2: results: engine 4, highest cf score: 0
Jun 6 14:29:54.266 [18986] dbg: razor2: results: engine 8, highest cf score: 100

De regel met results: spam geeft hierbij aan of het Razor gelukt is om het bericht te controleren (1 → SPAM, 0 → HAM). Wanneer pyzor het bericht op een of meerdere vlakken als spam markeert, zul je dit terugzien in het spamrapport met de regel RAZOR2_CHECK (eventueel worden er nog andere regels beginnend met RAZOR2_ toegevoegd):

        * 0.5 RAZOR2_CF_RANGE_51_100 Razor2 gives confidence level above 50% 
        *     [cf: 100]
       * 1.9 RAZOR2_CF_RANGE_E8_51_100 Razor2 gives engine 8 confidence level
        *     above 50%
        *     [cf: 100]
        * 0.9 RAZOR2_CHECK Listed in Razor2 (http://razor.sf.net/)

5. Razor finetunen

Spamassassin heeft meerdere regels voor Razor ingebouwd. Qua finetuning kunnen alleen de scores van deze regels verhoogd of verlaagd worden (een hogere score levert meer spampunten op waardoor een mail sneller als spam wordt gemarkeerd), voeg bijvoorbeeld deze regels toe aan /etc/spamassassin/local.cf:

score RAZOR2_CHECK               1.70
score RAZOR2_CF_RANGE_51_100     0.40
score RAZOR2_CF_RANGE_E4_51_100  5.00
score RAZOR2_CF_RANGE_E8_51_100  4.40
Zie voor de beschikbare regels /usr/share/spamassassin/25_razor2.cf en de standaard scores /usr/share/spamassassin/50_scores.cf.

E-mails aan Razor rapporteren (optioneel)

Deze laatste stap is optioneel en alleen aan te raden als je een betrouwbare lijst van SPAM en of HAM mails hebt en je een steentje wilt bijdragen aan de publieke database. De voorwaarde is dat deze e-mails volgens het RFC 822 formaat zijn opgemaakt en dat je zeer zeker bent dat het niet te betwijfelen valt of jouw berichten wel echt SPAM of HAM zijn. Zoals op de Razor FAQ terug te lezen is, wordt er gebruik gemaakt van het Truth Evaluation System (TeS) dat evalueert of je berichten naar waarheid instuurt, stuur je te vaak bulk-email in, dan wordt jouw toevoeging simpelweg niet meer meegeteld.

SPAM aan Razor rapporteren

Alleen SPAM rapporteer je aan Razor, door middel van het razor-report commando:

cat spammail.eml | razor-report --verbose -conf=/etc/spamassassin/razor/razor-agent.conf

Wanneer je dit periodiek zou scripten, kun je --verbose weglaten, -conf is niet optioneel, gezien we een niet-standaard locatie voor de configuratie gebruiken. De -home schakeloptie kan worden weggelaten, gezien de homedirectory al in het configuratiebestand is opgenomen.

HAM aan Razor rapporteren

HAM rapporteer je aan Razor door middel van de razor-revoke opdracht, eigenlijk wordt het bericht in geval het als spam was gemarkeerd teruggetrokken en vervolgens als HAM gemarkeerd. De syntaxis is vergelijkbaar met bovenstaande:

cat spammail.eml | razor-revoke --verbose --conf=/etc/spamassassin/razor/razor-agent.conf

Ook hierbij is --verbose optioneel en --conf verplicht.

Conclusie

Wanneer we een bericht rapporteren als spam en vervolgens nog een keer controleren, wordt de score meteen verhoogd op basis van de RAZOR2_CHECK regel. Omdat deze informatie beschikbaar is in een publieke database, kun je deze in theorie misbruiken door goede mails te markeren. Uiteraard heeft Pyzor hiervoor het Truth Evaluation System (TeS), maar hiermee worden kwaadwillenden slechts vertraagd geblokkeerd. Het is onduidelijk of bij een blokkade alleen de identiteit waarmee je geregistreerd bent of het IP-adres van jouw server wordt geblokkeerd. In het eerste geval zou je opnieuw razor-admin -register kunnen uitvoeren om dit te omzeilen. Over rapporteren/revoken van spam is niet bekend of— en in welke mate het TeS hierop van toepassing is.

Desalniettemin is het een extra filtering die gemakkelijk toe te voegen is aan Spamassassin waarmee nog meer spam tegengehouden zou kunnen worden. Zeker in combinatie met wat goede Custom Rules en het Pyzor systeem maakt dit een sterke filtering mogelijk.

Bronnen