Uppdatering av Spamassassin - findings
Författare: Håkan Kjellerstrand (hakank@bonetmail.com).
Datum: 2003-11-04
Efter någon veckors tid med lite för mycket spam i min inbox uppdaterade jag
min SpamAssassin till version 2.60. En av anledningarna var att jag ville testa hur deras Bayes-modul är, eftersom min tidigare version inte hade denna funktionalitet.
Installationen gjordes på Linux Red Hat.
Findings
Här är mina findings än så länge:
Installationen
- programmet kräver Perl, så det måste vara installerat. Inga problem där.
- ladda ner senaste versionen
via Download-sidan.
- läs INSTALL-filen
speciellt om du har haft en äldre version och kört Bayes (programmet sa-learn).
- kompilera, testa och installera programmet
När jag installerade gjorde jag först en vanlig
perl Makefile.PL
(det sitter i fingrarna, liksom), vilket förbereder för installation av
moduler etc i systemkatalogerna. Men här ville jag ha möjlighet att ändra
lite enklare (utan att bli root) så jag gjorde om med
perl Makefile.PL PREFIX=~/spamassassin SYSCONFDIR=~/spamassassin
.
Möjligen var det ett misstag att inte köra make realclean
först, för att ta bort allting av den nyss gjorda konfigureringen.
- testa konfigurationen
Kör make test
. Tar en rätt lång stund, men allt funkade bra.
- ta bort gammal installation
Innan installation av det nya programmet och modulerna flyttade jag de gamla filerna. Detta dels för att ha en backup, dels för att de inte ska förvirra det nya systemet.
Detta innebär: flytta de gamla SpamAssassin-programmen
/usr/local/bin/spamassassin/spamc
/usr/local/bin/spamassassin/spamd
/usr/local/bin/spamassassin/spamassassin
/usr/local/bin/spamassassin/spamproxyd
samt flytta de gamla katalogerna
/etc/mail/spamassassin
/usr/local/share/spamassassin
(Kanske var någon av ovanstående resterna från en ännu äldre installation?)
- installera
Med kommandot make install
installeras allting på rätt plats. Själva installationen gjordes utan några problem.
Möjligen var det mixtrandet med PREFIX etc, som strulade eftersom jag efter
installation var tvungen att manuellt ändra patherna för $PREFIX,
$DEF_RULES_DIR, $LOCAL_RULES_DIR
samt för use lib
.
Detta gjordes i programmen:
~/spamassassin/bin/sa-learn
~/spamassassin/bin/spamassassin
- testa, testa, testa
Här upptäckte jag en hel del. Se även nedan.
Ett bra sätt att testa är att ta ett mail som man vet är spam och köra spamassassin på det, dvs.
spamassassin < test1
Texten som användes var följande hemmasnickrade sak.
Date: Tue, 4 Nov 2003 20:15:13 +0100 (CET)
From: Mr Smith
To: some@one.com
Subject: BUY VIAGRA $$$$$$$$
This is a test.
BUY VIAGRA!
YOU EARN A LOT OF $$$$$!!!!!
PENIS ENLARGER
It's free, absolutely free!!!!
Headern ska innehålla något liknande nedanstående, annars är något galet.
X-Spam-Flag: YES
X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on
xxx.xxx.xxx.xx
X-Spam-Level: **********
X-Spam-Status: Yes, hits=10.9 required=7.0 tests=BAYES_60, CASHCASHCASH,
PENIS_ENLARGE2,SUBJ_BUY,SUBJ_VIAGRA,VIAGRA autolearn=no version=2.60
Kolla speciellt att version=2.60
. Detta tänkte jag inte på förrän efter en rätt lång stund.
procmail
Jag använder procmail för att filtrera
mina mail, och har rätt många olika regler för att dunka ned i respektive
mailfoldrar. Tyvärr funkade inte den gamla regeln för att köra
spamassassin (/path/to/program/
är vägen till programmet):
# Detta funkar alltså _inte_!
:0fw
| /path/to/program/spamassassin -P -c /path/to/directory/spamassassin
:0:
* ^X-Spam-Status: Yes
IN.caughtspam
Däremot fann jag, efter lite trixande, till min glädje att denna fungerar bra, dvs inga parametrar alls till spamassassin-programmet.
# Detta funkar!
:0fw
| /path/to/program/spamassassin
:0:
* ^X-Spam-Status: Yes
IN.caughtspam
Bayes
Jag befolkade även Bayes-databasen med 2678 spam och 3723 icke-spam (ham).
Detta gjordes för en rad olika mailfoldrar.
För spam användes följande kommando:
sa-learn --showdots --spam --mbox mailfolder
För no-spam (ham):
sa-learn --showdots --ham --mbox mailfolder
I filen /path/spamassassin/share/spamassassin/10_misc.cf
finns
regler för när Bayes autolearn ska köras:
bayes_auto_learn_threshold_spam 12.0
där 12.0 är gränsen innan det görs en autolearn, vilket jag tycker verkar rätt
vettigt (min gräns för spam är för närvarande 7.0, se nedan).
För att kunna använda sa-learn i mailprogrammet (jag kör pine), måste det
finnas en PATH
till ~/spamassassin/bin.
Så här skriver man i pine för att lägga till det aktuella mailet till
spamdatabasen såsom ett spam:
| sa-learn --spam
Är det däremot ett ham skriver man:
| sa-learn --ham
user_prefs
I filen ~/spamassassin/user_prefs har jag endast, förutom en massa whitelist_from, följande som anger hur många poäng det ska vara för att anses vara ett spam:
required_hits 7.0
Vi får väl se om några av parametrarna behöver tweakas med den nya versionen av SpamAssassin.
Last modified: Sat May 2 08:31:46 CEST 2009