Policyd
Policyd est un dameon (add-on) permettant de faire du Whitelisting, Blacklisting, Greylisting, de l'Antispam, de la gestion de Quotas avec Postfix. Dans mon cas je l'utilise pour brider le nombre de mails que peut envoyer un utilisateur via mon webmail (roundcube) qui est le seul à pouvoir utiliser mon smtp. En gros je veux qu'un utilisateur utilisant mon webmail pour envoyer un mail ne puisse pas le faire plus de 20 fois dans l'heure et que ce mail ne puisse pas être adressé à plus de 20 personnes en même temps. Au bout d'une heure, le compteur est remis à zéro. En espérant en avoir découragé plus d'un …
Installation
On commence par l'installation de policyd avec un simple :
apt-get install postfix-policyd
Configuration de la partie Postfix (main.cf):
Attention de check_policy_service doit-être placé avant la clause permit_mynetworks par prévention afin de ne pas créer d'open relay en cas d'activation du whitelisting.
smtpd_data_restrictions = reject_unauth_pipelining,permit check_policy_service inet:127.0.0.1:10031
Configuration de policyd
Fichier /etc/postfix-policyd.conf :
Il est important de bien lire le fichier de conf qui est très bien détaillé et très clair afin de ne pas activer d'options que l'on ne souhaitent pas.
//je n'ai activé que le module SENDER THROTTLE avec les options suivantes (50 mails par heures avec 20 destinataires maximum par mail) : SENDERTHROTTLE=1 SENDER_THROTTLE_SASL=0 SENDER_THROTTLE_HOST=0 QUOTA_EXCEEDED_TEMP_REJECT=0 SENDER_QUOTA_REJECTION="Quota Exceeded." SENDER_SIZE_REJECTION="Message size too big." SENDERMSGLIMIT=50 SENDERRCPTLIMIT=20 SENDERQUOTALIMIT=250000000 SENDERTIMELIMIT=1h SENDERMSGSIZE=10240000 SENDERMSGSIZE_WARN=50 SENDERMSGSIZE_PANIC=90 SENDER_INACTIVE_EXPIRE=31d
Configuration de Rouncdube
Fichier config/main.inc.php :
$rcmail_config['smtp_server'] = '127.0.0.1';
On redémarre Postfix et Postfix-Policyd :
/etc/init.d/postfix restart /etc/init.d/postfix-policyd restart
Des lignes de ce type doivent être visibles dans le mail.log :
Jan 28 17:29:46 gaston postfix-policyd: connection from: 127.0.0.1 port: 50283 slots: 1 of 4096 used Jan 28 17:29:46 gaston postfix-policyd: rcpt=7, throttle=new(a), host=127.0.0.1, from=nicolas@mailoo.org, to=nicolas@lineis.fr, size=0/10240000, quota=0/250000000, count=1/50(1), rcpt=1/20(1), threshold=0%|0%|0%
Nettoyage de la BDD toutes les heures pour raz du compteur :
#Vidage de la BDD de postfix-policyd */59 * * * * /usr/sbin/postfix-policyd-cleanup