System-Linux

Aller au contenu | Aller au menu | Aller à la recherche

Installation de SPF pour Postfix

spf1 jpg

SPF un petit frein pour les spams

Sender Policy Framework (SPF) est une norme d'authentification fiable du nom de domaine de l'expéditeur d'un courrier électronique.

SPF fonctionne par la publication, dans le DNS d'un enregistrement (de type SPF ou, autrefois, de type TXT) indiquant quelles adresses IP sont autorisées ou interdites à envoyer du courrier pour le domaine considéré.

L'identité testée par SPF est celle indiquée par la commande MAIL FROM dans la session SMTP. C'est donc une information qui appartient à l'enveloppe du courrier, pas à ses en-têtes. (Dans certaines conditions, SPF peut aussi utiliser le nom de la machine expéditrice, tel que spécifié dans la commande HELO.) (Wikipedia).

Pré-requis :

Voici la liste des logiciels qu'il vous faudra installer pour pouvoir mener à bien cette petite installation :

Tout d'abord le module Perl :

  • Mail::SPF

Deux ou trois autres modules seront installés (Net::DNS::Resolver::Programmable et NetAddr::IP)

Puis les deux paquets rpms suivant :

  • perl-Mail-SPF-Query
  • perl-Mail-SPF

Pour Debian et ou Ubuntu je laisse une bonne âme donner l'info en laissant un commentaire :).

Lancez le shell Perl comme ceci :

perl -MCPAN -e shell
install Mail::SPF
quit

Prêtez attention aux erreurs et autres warnings.

Téléchargement :

Maintenant téléchargeons le script Perl qui fera le boulot.

Vous trouverez la derniere version ici.

cd /opt/SOURCES
wget "http://launchpad.net/postfix-policyd-spf-perl/trunk/2.007/+download/postfix-policyd-spf-perl-2.007.tar.gz"
tar xvzf postfix-policyd-spf-perl-2.007.tar.gz 
cd postfix-policyd-spf-perl-2.007
cp postfix-policyd-spf-perl /usr/local/bin/

Installation :

Modification dans postfix.

Éditez le fichier master.cf :

vi /etc/postfix/master.cf

et rajoutez ceci à la fin :

policy-spf  unix  -       n       n       -       -       spawn
        user=nobody argv=/usr/bin/perl /usr/local/bin/postfix-policyd-spf-perl

La tabulation es importante avant la deuxième ligne pour pas risquer de vexer votre postfix :).

Faites bien attention au chemin pour le script Perl.

Maintenant c'est au tour du main.cf, éditez le et rajoutez, toujours à la fin :

smtpd_recipient_restrictions = permit_mynetworks,
        permit_sasl_authenticated,
        check_policy_service unix:private/policy-spf,
        reject_unauth_destination,
        permit

Vous n'avez plus qu'a redemarrer votre serveur smtp :

service postfix restart
ou
/etc/init.d/postfix restart

Jetez un œil dans les logs on ne sait jamais.

tail -f /var/log/maillog

Et voila le tour est joué !

spf2 jpg

Vous pouvez tester le bon fonctionnement de votre configuration avec spf en essayant d'envoyer un mail en ligne de commande depuis un autre poste que votre serveur de mail.

Si vous avez d'autre idée d'article pour lutter contre l'invasion des spams dans vos boites mails n'hésitez surtout pas !

Par GanGan | le lundi, mars 8 2010 07:00

Commentaires

1. RaX

lundi, mars 8 2010 | 10:46

A noter qu'il existe aussi une version python du check SPF:

https://launchpad.net/pypolicyd-spf...
qui dépend de:
http://pypi.python.org/pypi/pyspf/

Ou plus simplement sous Gentoo:

mail-filter/pypolicyd-spf

Que je n'ai pas testé mais qui doit probablement donner satisfaction.

2. billux

lundi, mars 8 2010 | 13:24

Sympa comme article, je suis justement en train de me monter mon serveur mail. Mais tu aurais aussi pu rajouter une petite partie sur comment remplir les champs SPF dans le DNS (syntaxe toussa...) :
http://www.openspf.org/SPF_Record_S...

Pour un prochain article, tu peux parler de DKIM aussi, ça m'intéresserai :)

3. GanGan

lundi, mars 8 2010 | 13:32

En voila de bonnes idées, l'article sur l'enregistrement SPF niveau DNS est presque prêt :)

4. Dju

lundi, mars 8 2010 | 17:29

Très bon article, mais il est vrai qu'il manque la partie des enregistrements DNS ;)
Pour faire simple, dans votre fichier de zone rajouter une ligne comme ci dessous :
@ IN TXT "v=spf1 a mx ip4=1.2.3.4 -all"

(en gros... à adapter à vos besoins ;) )
J'allais en faire un également car c'est bien pratique pour se protéger des spams (50% de la bande passante mondiale, c'est dire)... à condition qu'on ai mis un SPF non permissif (-all à la fin) sinon ça passe quand même :D
Par contre pour la clé dkim, j'ai mis en ligne un article la dessus --> http://blog.crifo.org/post/2010/01/...
enjoy :)