Creare un relay antispam – parte 2°

Rieccoci tornare alle nostre guide server-based.

Avevamo terminato la prima parte ultimando la configurazione di Apache e di Postfix.

Adesso procederemo ad installare i vari demoni anti-spam, per iniziare a modellare il nostro futuro relay antispam.

MailScanner Razor Pyzor DCC Clamav Installation

apt-get install mailscanner razor pyzor clamav-daemon

apt-get remove mailscanner

Sembra che sono diventato scemo invece non lo è, l’installazione di Mailscanner da repository ci serve solo per avere tutte le dipendenze soddisfatte, perchè quello presente è troppo vecchio, quindi andremo ad installarlo da sorgenti.

Scarichiamolo quindi e scompattiamolo, io nell’esempio ho usato /usr/src

tar xvfz MailScanner-install-4.75.11-1.tar.gz
cd MailScanner-install-4.75.11
./install.sh

 

mv /etc/MailScanner /etc/MailScanner.dist

 

Configurazione di Pyzor

Purtroppo Pyzor con Python2.6 non lavora bene, il barbatrucco sta nell’installare anche python2.5 e farglielo usare come default.

Modifichiamo quindi /usr/share/python/debian_defaults

# the default python version
default-version = python2.5

e modifichiamo il link simbolico a /usr/bin/python puntandolo a python2.5

mv /usr/bin/python /usr/bin/python26
ln -s /usr/bin/python2.5 /usr/bin/python

mv /var/lib/python-support/python2.6/pyzor-* /var/lib/python-support/python2.5/
mv /var/lib/python-support/python2.6/pyzor* /var/lib/python-support/python2.5/pyzor/

chmod -R a+rX /usr/share/doc/pyzor /usr/bin/pyzor /usr/bin/pyzord
chmod -R a+rX /usr/share/python-support/pyzor

Adesso forniamo l’ip del server Pyzor a Pyzor (il software, lo so è un bel gioco di parole), e poi questo proverà la connessione.

Se siete dietro un firewall o cmq nattati dovete aprire le porte 24441/udp in entrata ed uscita ed in più 6277/udp per DCC, 2703/tcp per razor e 783/tcp per spamassassin.

pyzor --homedir /var/lib/MailScanner discover
pyzor ping

 

Configurazione di Razor

Creiamo i file per la configurazione:

cd
rm /etc/razor/razor-agent.conf
mkdir /var/lib/MailScanner/.razor
razor-admin -home=/var/lib/MailScanner/.razor -create
razor-admin -home=/var/lib/MailScanner/.razor -discover
razor-admin -home=/var/lib/MailScanner/.razor -register
chown -R postfix:www-data /var/lib/MailScanner
chmod -R ug+rwx /var/lib/MailScanner

Poi modifichiamo /var/lib/MailScanner/.razor/razor-agent.conf:

debuglevel = 0
razorhome = /var/lib/MailScanner/.razor/

Configurazione di DCC

Installiamo DCC dai deb di launchpad.

wget http://ppa.launchpad.net/jonasped/ppa/ubuntu/pool/main/d/dcc/dcc-server_1.3.103-0ubuntu1~ppa2~jaunty1_i386.deb
wget http://ppa.launchpad.net/jonasped/ppa/ubuntu/pool/main/d/dcc/dcc-common_1.3.103-0ubuntu1~ppa2~jaunty1_i386.deb
wget http://ppa.launchpad.net/jonasped/ppa/ubuntu/pool/main/d/dcc/dcc-client_1.3.103-0ubuntu1~ppa2~jaunty1_i386.deb

dpkg -i dcc-common_1.3.103-0ubuntu1~ppa2~jaunty1_i386.deb
dpkg -i dcc-server_1.3.103-0ubuntu1~ppa2~jaunty1_i386.deb
dpkg -I dcc-client_1.3.103-0ubuntu1~ppa2~jaunty1_i386.deb

Siccome non stiamo mettendo in piedi un server DCC è inutile che effettuiamo il check verso noi stessi, lanciamo quindi:

cdcc "delete 127.0.0.1"
cdcc "delete 127.0.0.1 Greylist"

cdcc info

Dopo l’ultimo comando dovremmo ottenere un "requests OK"

Configurare Mailscanner e ClamAV:

Dobbiamo creare una determinata cartella per SpamAssassin e dare i relativi permessi per postfix, questo perchè se lanciamo sa-learn –force come utente root, il database bayesiano verrà registrato per root:root e spamassassin darà errore quando effettuerà i controlli.

mkdir /var/spool/MailScanner/spamassassin

cp /opt/MailScanner/etc/MailScanner.conf /opt/MailScanner/etc/MailScanner.conf.dist

vi /opt/MailScanner/etc/MailScanner.conf

e mettiamoci dentro:

%org-name% = ORGNAME
%org-long-name% = ORGFULLNAME
%web-site% = ORGWEBSITE
Run As User = postfix
Run As Group = www-data
Incoming Work Group = clamav
Incoming Work Permissions = 0640
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
Virus Scanners = clamd
Spam Subject Text = ***SPAM***
Send Notices = no
Spam List = spamcop.net ZEN
Required SpamAssassin Score = 6
High SpamAssassin Score = 10
Spam Actions = deliver
High Scoring Spam Actions = delete
Rebuild Bayes Every = 0
Wait During Bayes Rebuild = no
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin
Clamd Socket = /var/run/clamav/clamd.ctl
Clamd Lock File = /var/run/clamav/clamd.pid

Monitors for ClamAV Updates = /var/lib/clamav/*.cld /var/lib/clamav/*.cvd

header_checks

questo ci servirà per bloccare tutte le mail in entrata, e dare il tempo a MailScanner di fare i suoi controlli.

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

creiamo /etc/postfix/header_checks e mettiamoci dentro.

/^Received:/ HOLD

postmap /etc/postfix/header_checks

 

Fix per disabilitare i controlli dei permessi sulle directories di MailScanner

Modifichiamo /etc/rc2.d/S20mailscanner:

check_dir /var/spool/MailScanner       ${user:-postfix} ${group:-www-data}
#check_dir /var/lib/MailScanner         ${user:-mail} ${group:-mail}
#check_dir /var/run/MailScanner         ${user:-mail} ${group:-mail}
#check_dir /var/lock/subsys/MailScanner       ${user:-postfix} ${group:-www-data}

e controlliamo il paramentro dentro /etc/default/mailscanner:

run_mailscanner=1

Cron Job per aggiornare MailScanner in automatico:

37      5 * * * /opt/MailScanner/bin/update_phishing_sites
07      * * * * /opt/MailScanner/bin/update_bad_phishing_sites
42      * * * * /opt/MailScanner/bin/update_virus_scanners
3,23,43 * * * * /opt/MailScanner/bin/check_mailscanner

Ignition…START!

check_mailscanner
/etc/init.d/postfix start

eventuali errori li troviamo come sempre in /var/log/mail.log

Ed anche per oggi abbiamo finito, la prossima volta passeremo a Mailwatch, Blacklist ed altro ancora…


Altri articoli che potrebbero interessarti

Creare un relay antispam Con oggi voglio partire con una serie di tutorial che spieghino come creare un relay antispam. Più...
Rieccomi Eccomi qui, sono 5 giorni che non scrivo sul blog, gli impegni premono in questo periodo :-|, ma soprattutto...
Configuriamo un server di posta completo su Etch (Postfix) – Parte 6° Questa parte funge da approfondimento, propongo un tweak per aumentare la sicurezza e le prestazioni...
Mysql master replica how-to Chi segue già da un pò i miei how-to sa come la penso, sono abbastanza fissato con la sicurezza...
Contribuisci Come ognuno di voi anche io ho degli impegni che non mi consentono di essere costantemente aggiornato...

About the Author

M0rF3uS al secolo Alex è un ggiovine 25enne appassionato di informatica e linux. Lavora come Network and System Administrator e nel tempo libero gioca un pò con la sua fotocamera (Canon EOS 1000D) riuscendo a volte, per sbaglio, a fare qualche scatto decente. Completano il corredo, degli hobbies "vorrei ma non posso" ossia l'astronomia e l'astronautica....si è uno di quelli che da grande vorrebbe fare l'astronauta (povero coglione vero?).