Spamasssin Postfix HOWTO (Debian Sarge + Ubuntu Dapper)
Jos sinulla on Ubuntu Dapper hyppää perlin päivityksen yli...
Ei toiminut minulla ainakaan suoraan vaan /var/log/mail.err logiin tuli herjaa:
[4047] warn: Use of uninitialized value in numeric gt (>) at /usr/share/perl5/DB_File.pm line 274.
warn: Deep recursion on subroutine "DB_File::AUTOLOAD" at /usr/share/perl5/DB_File.pm line 233.8Aikani pähkäiltyäni, tulin siihen tulokseen, että tämän aiheuttaa Perlin liian vanha versio.
Asennamme siis Debian unstable-version perlin Sargeen, tämä vie melko kauan aikaa, riippuen koneen tehoista,
valmiit .deb-tiedostot ovat ladattavissa osoitteesta:
http://kotisivut.sytes.net/~jonne/debian/deb/perl_5.8.8-4_i386/Jos latasit valmiit hyppää kohtaan, jossa nuo asennellaan
Asennellaan ensin vähän tarvittavia ohjelmia:
apt-get install build-essential fakeroot make gcc g++ libtool libfcgi-perlNoin, nyt kun työkalut on asennettuna, voidaan mennä itse asiaan:
Tehdään ensin työhakemisto, ja siirrytään sinne
mkdir perl
cd perlHaetaan ja puretaan tarvittavat tiedostot:
wget http://ftp.debian.org/debian/pool/main/p/perl/perl_5.8.8.orig.tar.gz
wget http://ftp.debian.org/debian/pool/main/p/perl/perl_5.8.8-4.diff.gz
tar -zxf perl_5.8.8.orig.tar.gzSiirrytään tuonne:
cd perl-5.8.8Patchaillaan tuo ja laitetaan chmod-arvot kohdalleen
zcat ../perl_5.8.8-4.diff.gz | patch -p1
chmod u+x debian/rulesTarkastetaan ovatko kaikki kääntämiseen tarvittavat kirjastot asennettuina:
dpkg-checkbuilddepsAsennetaan paketit mitä tuo pyytää. Jos joukossa paketteja joista ei löydy riittävän
uusia versioita nykyisestä distro-versiosta, asennetaan uusin mitä distrosta löytyy ja
muokataan tiedostoa debian/control niin, että se hyväksyy nykyisen version. Lopuksi
vielä ajetaan dpkg-checkbuilddeps uudelleen, jotta varmistutaan, että kaikki paketit
on asennettu. Tällöin ohjelma ei ilmoita mitään.
Kun tuo on kohdallaan, kaikista mahdollisista on siis asennettuina mahdollisimman uusi versio,
voidaan jatkaa ja siirtyä muokkaamaan control-tiedostoa, itse ansein seuraavat:
cpio gcc libdb4.3-dev libgdbm-dev
cd debian
nano controlEtsi tiedostosta seuraavat "Build-Depends"-kohdasta
libdb4.4-dev
cpio (>= 2.6-5)
gcc (>= 4:4.0)
Muuta ne näin
libdb4.3-dev
cpio (>= 2.5-1)
gcc (>= 4:3.3.5)
Etsi vielä "data-dumper" merkinnät ja poista ne
Tämän jälkeen voidaan tehdä .deb tiedostot
dpkg-buildpackageTämän jälkeen asennellaan nämä:
Tämä ensin, jotta muut suostuvat asentumaan:
dpkg -i perl-base_5.8.8-4_i386.debdpkg -i perl-modules_5.8.8-4_all.deb perl_5.8.8-4_i386.deb perl-suid_5.8.8-4_i386.deb perl-doc_5.8.8-4_all.deb perl-debug_5.8.8-4_i386.deb libperl5.8_5.8.8-4_i386.deb libperl-dev_5.8.8-4_i386.deb libcgi-fast-perl_5.8.8-4_all.debMinulla tuo viimeinen libcgi-fast-perl_5.8.8-4_all.deb -paketti ei meinannut asentua, sekin meni lopulta komennolla
apt-get install -fNyt on perl päivittetty, asennetaan itse spamassasin:
<<<<<<Jos sinulla on Ubuntu Dapper aloita tästä!>>>>>>>>>>>>>>>
apt-get install spamc libsys-hostname-long-perl spamassassin pyzorTehdään tiedosto joka tutkii posteja:
nano /usr/local/bin/spamfilterTee siitä tälläinen:
#!/bin/bash
/usr/bin/spamc | /usr/sbin/sendmail -i "$@"
exit $?Muokataan tehdyn tiedoston oikeudet kohdalleen:
chmod 775 /usr/local/bin/spamfilterMuokataan Postfixin asetustiedostoa:
nano /etc/postfix/master.cfEtsi seuraava kohta:
smtp inet n - - - - smtpdLisää heti tuon alle:
-o content_filter=spamfilter:Siitä tulee tämän näköinen:
smtp inet n - - - - smtpd
-o content_filter=spamfilter:Etsi vielä samasta tiedostosta kohta:
# only used by postfix-tlsLisää tuon YLÄPUOLELLE:
spamfilter unix - n n - - pipe
flags=Rq user=spamfilter argv=/usr/local/bin/spamfilter -f ${sender} -t ${recipient}Ladataa postfixin asetustiedostot uudelleen:
/etc/init.d/postfix reloadSeuraavaksi muokataan spamassassinin asetustiedostoa:
nano /etc/default/spamassassinEtsi kohta:
# Change to one to enable spamd
ENABLED=0Muuta tuohon:
ENABLED=1Noin siinäpä se, lisää spamassassinin asetuksia voit säädellä:
nano /etc/spamassassin/local.cfLisää tuonne vaikka nämä:
#3.5 on erittäin tiukka raja! Varmista että oikeat postisi pääsevät läpi!
required_hits 3.5
rewrite_header Subject *****SPAM*****
report_safe 1
use_bayes 1
skip_rbl_checks 0
use_pyzor 1
bayes_auto_learn 1
auto_learn 1Käynnistä vielä spamassassin uudelleen
/etc/init.d/spamassassin restartLuo tämän jälkeen käyttäjä spamfilter
adduserAnna sille salasanaksi mikä vain
poista käyttäjän spamfilter salasana:
passwd -d spamfilterTuo autolearn, joka viestin headerissa sanotaan autolearn=no vaikka noita asetuksia koitin sorvailla, kenelläkään tästä
Mitään tarkemaa tietoa? Myös olisin vailla spamassasinin opettamisesta, oletuksenahan tuo ei juuri roskia torju, ilman sa-lern
Ohjelman käyttöä, tuo autolearn olisi kätevä...
Otan myös kiitollisena vastaan vinkkejä roskapostien lajittelusta erilliseen hakemistoon (esim. spam), tämähän onnistunee
Procmailin avulla, mutta miten?
Niin ja tässä ohjeessa mukana pätkä ohjeesta "Vähän kääntämistä ja erittäin vähän paketointia ja patchausta" Kiitos siitä!
Iso kiitos myös tässä projektissa auttaneille tahoille

(LittleLionille, sekä Leivolle)