Installation Greylisting avec Postgrey pour Postfix

greylist jpg

Une technique parmi d'autre pour lutter contre les spams.

Le greylisting : inscription sur liste grise est une technique antispam/antipourriel très simple qui consiste à rejeter temporairement un message, par émission d’un code de refus temporaire au serveur smtp émetteur (MTA). Dans la majorité des cas, les serveurs émetteurs réexpédient le courriel après quelques minutes. La plupart des serveurs émettant des pourriels ne prendraient pas cette peine.

Alors bien-sur un spammeur un peu plus futé fera un deuxième envoie, et sera donc accepté, mais parait ils le font que très rarement.

Vous aurez un petit délai d'attente pour la réception des emails mais une fois une première quarantaine effectuée, au bout de 5 envois honnêtes plus de soucis. A moyen terme, donc, c'est un problème moins gênant.

Lorsqu'un même serveur envois 5 mails et qu'ils sont valide, il enregistre automatiquement son adresse ip en whitelist.

Installation :

Pour Debian et Ubuntu :

aptitude install postgrey

Pour Centos et Redhat :

yum install postgrey

Dans les deux cas vous aurez sûrement quelques dépendances qui s'installeront aussi (des modules perl par exemple).

Configuration :

Modifier dans la section smtpd_recipient_restrictions de votre fichier main.cf :

check_policy_service unix:postgrey/socket

ou

check_policy_service inet:127.0.0.1:60000

Selon votre installation et votre Os.

Si cette section n'existe pas créez la :

smtpd_recipient_restrictions =
        [...] 
        check_policy_service unix:postgrey/socket
        permit

Modification du délais pour postgrey :

Il est conseillé un peu partout de réduire le temps de 5 minutes par défaut (échéance à laquelle Postgrey rejettera les nouveaux messages) à 1 minutes et une fois une bonne whitelist bien remplit de repasser à 5 minutes :

Créez le fichier : /etc/sysconfig/postgrey et mettez y ceci :

OPTIONS="--unix=/var/spool/postfix/postgrey/socket --delay=60"

Démarrage de Postgrey :

Pensez d'abord a configurer le script d'init en cas de redémarrage de votre serveur :

chkconfig --levels 35 postgrey on 

Debian et Ubuntu :

invoke-rc.d postgrey start

Centos et Redhat :

service postgrey start

Vérifiez qu'il se soit bien lancé avec ps -ef | grep grey qui devrait vous donner quelque chose comme ça :

postgrey 23313  1 0 12:17 ?  00:00:00 /usr/sbin/postgrey -d --unix=/var/spool/postfix/postgrey/socket

Maintenant vous n'avez plus qu'a relancer Postfix et jeter un œil dans vos logs :

tail -f /var/log/maillog

Vous devriez y voir passer des choses comme :

Mar 30 13:16:37 galix postgrey[26143]: action=greylist, reason=new, client_name=vai-bmails.cirra.fr, client_address=83.145.72.120, sender=prvs=870501245c=sa
lson.umanis@monecam.com, recipient=gangan@zalteam.com
Mar 30 13:16:37 galix postfix/smtpd[26169]: NOQUEUE: reject: RCPT from vai-bmails.cirra.fr[83.145.72.120]: 450 4.2.0 <gangan@zalteam.com>: Recipient address
 rejected: Greylisted, see http://postgrey.schweikert.ch/help/zalteam.com.html; from=<prvs=870501245c=salson.umanis@monecam.com> to=<gangan@zalteam.com> pro
to=SMTP helo=<vai-bmails1.cirra.fr>

Si vous avez plusieurs serveurs mails :

Genre un mx secondaire par exemple pensez à faire ces quelques modifications :

  • Ajout dans main.cf section smtpd_recipient_restrictions : permit_mx_backup
  • Ajout dans postgrey_whitelist_clients.local le hostname ou l'ip de votre deuxième serveur (ceci pour tous les serveurs).

Ceci fait vos serveurs accepteront immédiatement les mails venant de l'un de leurs confrères sans passer par la greylist :)

Personnellement j'avais pas super confiance, je l'ai donc testé dans tous les sens sur un serveur mail secondaire (mx secondaire) et je n'ai eu aucun souci.

Si vous désirez sortir un utilisateur de ce fonctionnement :

Il vous suffira de mettre le début de son adresse dans le fichier : /etc/postfix/postgrey_whitelist_recipients

postmaster@
abuse@
administrateur@
jean-paul@

Pour les serveurs multi-domaines :

Pour ceux qui veulent aller plus loin voici l'url de la documentation Postfix à ce sujet : http://postfix.traduc.org/index.php/SMTPD_POLICY_README.html

Et le site http://www.greylisting.org

Vus : 555
Publié par System Linux : 211