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.8
Aikani 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-perl
Noin, nyt kun työkalut on asennettuna, voidaan mennä itse asiaan:
Tehdään ensin työhakemisto, ja siirrytään sinne
mkdir perl
cd perl
Haetaan 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.gz
Siirrytään tuonne:
cd perl-5.8.8
Patchaillaan tuo ja laitetaan chmod-arvot kohdalleen
zcat ../perl_5.8.8-4.diff.gz | patch -p1
chmod u+x debian/rules
Tarkastetaan ovatko kaikki kääntämiseen tarvittavat kirjastot asennettuina:
dpkg-checkbuilddeps
Asennetaan 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 control
Etsi 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-buildpackage
Tämän jälkeen asennellaan nämä:
Tämä ensin, jotta muut suostuvat asentumaan:
dpkg -i perl-base_5.8.8-4_i386.deb
dpkg -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.deb
Minulla tuo viimeinen libcgi-fast-perl_5.8.8-4_all.deb -paketti ei meinannut asentua, sekin meni lopulta komennolla
apt-get install -f
Nyt on perl päivittetty, asennetaan itse spamassasin:
<<<<<<Jos sinulla on Ubuntu Dapper aloita tästä!>>>>>>>>>>>>>>>
apt-get install spamc libsys-hostname-long-perl spamassassin pyzor
Tehdään tiedosto joka tutkii posteja:
nano /usr/local/bin/spamfilter
Tee siitä tälläinen:
#!/bin/bash
/usr/bin/spamc | /usr/sbin/sendmail -i "$@"
exit $?
Muokataan tehdyn tiedoston oikeudet kohdalleen:
chmod 775 /usr/local/bin/spamfilter
Muokataan Postfixin asetustiedostoa:
nano /etc/postfix/master.cf
Etsi seuraava kohta:
smtp inet n - - - - smtpd
Lisää 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-tls
Lisää 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 reload
Seuraavaksi muokataan spamassassinin asetustiedostoa:
nano /etc/default/spamassassin
Etsi kohta:
# Change to one to enable spamd
ENABLED=0
Muuta tuohon:
ENABLED=1
Noin siinäpä se, lisää spamassassinin asetuksia voit säädellä:
nano /etc/spamassassin/local.cf
Lisää 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 1
Käynnistä vielä spamassassin uudelleen
/etc/init.d/spamassassin restart
Luo tämän jälkeen käyttäjä spamfilter
adduser
Anna sille salasanaksi mikä vain
poista käyttäjän spamfilter salasana:
passwd -d spamfilter
Tuo 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)