Spamszűrő megoldás: MailScanner telepítése (Clamav, SpamAssasin, Razor, Pyzor)

(Frissítve: 2014.07.26 20:15)

Az alap helyzet a következő volt: Adott egy Ubuntu 12.04 LTS rendszer, ISPConfig3 környezettel.
Az The Perfect Server sorozat alapján telepített rendszeren már telepítve volt a clamav és a spamassasin.
Az eredeti elgondolásom az volt, hogy egy baruwa szervert állítok az ISP szerverünk elé, de ezt macerásnak és nehézkesnek találtam.
Végül a baruwa szívét, a MailScanner alkalmazást telepítettem közvetlenül az ISP gépre.

Telepítés

A 11.04-hez tartozó repóból gond nélkül települ a 12.04-re a program.
/etc/sources.list -be:

deb http://apt.baruwa.org/ubuntu natty main

majd:

wget -O - http://apt.baruwa.org/baruwa-apt-keys.gpg | apt-key add -
apt-get update
apt-get install mailscanner

Ha valami oknál fogva még nincs telepítve, telepítsük a clamav-ot:

apt-get install clamav clamav-daemon

Konfigurálás

Állítsuk le a postfix-et:

postfix stop

Frissítsük a clamav-ot:

freshclam

Hozzuk létre a spamassasin könyvtárát:

mkdir /var/spool/MailScanner/spamassassin
chown postfix /var/spool/MailScanner/spamassassin

Készítsünk biztonsági másolatot és szerkesszük a MailScanner-t:

cp /etc/MailScanner/MailScanner.conf /etc/MailScanner/MailScanner.conf.bak

/etc/MailScanner/MailScanner.conf -ba:

%org-name% = ORGNAME
%org-long-name% = ORGFULLNAME
%web-site% = ORGWEBSITE
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
Virus Scanners = clamav
Spam List = SBL+XBL
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin

FONTOS: Töltsük ki az ORGNAME, ORGFULLNAME, ORGWEBSITE placeholdereket ;)

Ha nem akarjuk, hogy az ellenőrzésen átesett levelekhez plusz aláírást rakjon a MailScanner, ezt is írjuk bele:

Sign Clean Messages = no

Állítsuk be a postfix-et:

postconf -e "header_checks = regexp:/etc/postfix/header_checks"

/etc/postfix/header_checks -be:

/^Received:/ HOLD

/etc/default/mailscanner -be:

run_mailscanner=1

Razor és Pyzor

Razor:

apt-get install razor
razor-admin -home=/etc/spamassassin/.razor -register
razor-admin -home=/etc/spamassassin/.razor -create
razor-admin -home=/etc/spamassassin/.razor -discover

Pyzor:

sudo apt-get install pyzor
pyzor discover

FONTOS! A MailScanner a SpamAssasin-t nem mint démont, hanem mint függvénykönyvtárat használja!
A SpamAssasin konfigurációs fájlja a /etc/spamassasin/local.cf, DE a MailScanner esetében NEM ezt,
hanem a /etc/MailScanner/spam.assassin.prefs.conf fájlt kell szerkeszteni!

/etc/MailScanner/spam.assassin.prefs.conf -ba:

use_pyzor 1
ifplugin Mail::SpamAssassin::Plugin::/etc/MailScannerPyzor
  pyzor_path /usr/bin/pyzor
endif

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

DCC telepítése

A DCC nem érhető el a 12.04-es Ubuntuban repóból, ezért forrásból telepítjük. (szükséges a build-essential csomag, ha esetleg nincs fent)

wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z
tar xzvf dcc-dccproc.tar.Z
cd dcc-dccproc-1.3.143
./configure --with-uid=amavis
make
make install
chown -R amavis:amavis /var/dcc
ln -s /var/dcc/libexec/dccifd /usr/local/bin/dccifd

/etc/MailScanner/spam.assassin.prefs.conf -ba:

ifplugin Mail::SpamAssassin::Plugin::DCC
  dcc_path /usr/local/bin/dccproc
endif
use_dcc 1

sa-learn ütemezése

A sa-learn-nel szkennelhetjük a felhasználók Levélszemét (Junk) mappáit, s taníthatjuk a SpamAssassin-t, hogy amit a felhasználók a Junk-ba dobnak, azt szemétként kezelje a jövőben.

Nyissunk egy fájlt: /etc/cron.daily/sa_learn.sh

/usr/bin/sa-learn --spam /var/vmail/*/*/.Junk/*

Adjunk rá futási jogot:

chmod +x /etc/cron.daily/sa_learn.sh

Megjegyzés: Igen időigényes a scannelési folyamat, ha kézzel futtatjuk, legyünk türelemmel ;)

Amavis és SpamAssasin leállítása

Amennyiben előzőleg a The Perfect Server szerint jártunk el, a postfix már vírusellenőriz az amavis-sel.
Ezt a dupla munkát érdemes elkerülni, szedjük hát ki a a következő sorokat a

/etc/postfix/master.cf -ből:

amavis unix - - - - 2 smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes

valamint, szedjük ki a következő sort a
/etc/postfix/main.cf -ből

content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings

Állítsuk le a feleslegessé vált démonokat:

service clamav-daemon stop
service clamav-freshclam stop
service amavis stop
service spamassasin stop

Kapcsoljuk ki az automatikus indítást:

update-rc.d -f clamav-daemon remove
update-rc.d -f clamav-freshclam remove
update-rc.d -f amavis remove
update-rc.d -f spamassasin remove

Finish

Ha megpróbáljuk elindítani a mailscanner-t, a következő figyelmeztetést kapjuk (sikeres indulás mellett!):
Configuration: Failed to find any configuration files like /etc/MailScanner/conf.d/*, skipping them. at /usr/share/MailScanner//MailScanner/Config.pm line 2044
A /etc/MailScanner/MailScanner.conf -ból szedjük ki:

include /etc/MailScanner/conf.d/*

Indítsuk el a szolgáltatásokat:

/etc/init.d/mailscanner start
/etc/init.d/postfix start

Kész. Küldjünk teszt leveleket és a teljes fejlécből kiderül, rendben keresztülfut-e a mailscanneren a levél ;)

Valahogy így kellene kinéznie:

X-ORGNAME-MailScanner-ID: 7AE0F1FFD148.A96C2
X-ORGNAME-MailScanner: Found to be clean
X-ORGNAME-MailScanner-From: user@example.com
X-Spam-Status: No

Kapcsolódó linkek

ISPConfig3 telepítés: http://www.howtoforge.com/perfect-server-ubuntu-12.04-lts-nginx-bind-dov...
MailScanner telepítés: http://www.mailscanner.info/ubuntu.html
MailScanner repó: http://apt.baruwa.org/
Spamassasin+Razor+Pyzor telepítés: https://kura.io/2011/09/22/spamassassin-razor-pyzor/