This is an old revision of the document!
Table of Contents
postfix-policyd
Problema: limitare il numero di mail inviate da un singolo utente (identificato da SASL) in un determinato periodo di tempo. Questo per bloccare lo spam che tramite botnet sfrutta account rubati.
Il programma policyd avrebbe tale funzione, più molte altre ({black|grey|white}listing, ecc.), peccato che non esista per Debian Wheezy. Il pacchetto postfix-policyd è stato rimosso da Debian, questa la pagina del pacchetto sorgente.
Porting to Wheezy
I sorgenti per Squeeze si riescono a compilare su Wheezy:
mkdir -p /usr/local/src/postfix-policyd cd /usr/local/src/postfix-policyd wget http://ftp.de.debian.org/debian/pool/main/p/postfix-policyd/postfix-policyd_1.82-2.dsc wget http://ftp.de.debian.org/debian/pool/main/p/postfix-policyd/postfix-policyd_1.82.orig.tar.gz wget http://ftp.de.debian.org/debian/pool/main/p/postfix-policyd/postfix-policyd_1.82-2.diff.gz dpkg-source -x postfix-policyd_1.82-2.dsc cd postfix-policyd-1.82/ dpkg-buildpackage -rfakeroot
Patch per l'installazione
Il programma richiede un database MySQL, purtroppo lo script per crearlo (/usr/share/dbconfig-common/data/postfix-policyd/install/mysql
) non è compatibile con la versione 5.5.24 e quindi durante l'installazione bisogna correggerlo sostituendo tutte le occorrenze di TYPE=MyISAM
con ENGINE=MyISAM
.
Anche il file di configurazione (/etc/postfix-policyd.conf
) va corretto, togliendo gli spazi dalla stringa SYSLOG_FACILITY
(vedere questo bug report):
SYSLOG_FACILITY="LOG_MAIL|LOG_INFO"
altrimenti si incappa nell'errore (syslog):
postfix-policyd: fatal: didn't find priority 'LOG_IFOO', exiting
Configurazione
Questi sono i parametri modificati per disabilitare il greylisting e per attivare il throttling: sono consentiti al massimo 50 messaggi in 15 minuti:
DEBUG=1 GREYLISTING=0 SENDERTHROTTLE=1 SENDER_THROTTLE_SASL=1 SENDER_THROTTLE_HOST=0 SENDERMSGLIMIT=50 SENDERTIMELIMIT=15m
Dopo aver avviato il demone s si deve dire a Postfix di fare un check sul servizio postfix-policyd
per ogni messaggio:
smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10031, permit_sasl_authenticated, reject
Cleanup cronjob
/usr/lib/postfix-policyd/cleanup -c /etc/postfix-policyd.conf