Mise en place coté émetteur

SPF est très facile a mettre en place pour un site émetteur. Il suffit d'ajouter un enregistrement DNS TXT associé au domaine en question.

Petit exemple :

Une entreprise est disptaché sur 3 sites (A, B et C)

  • Sur le site A plusieurs machines dont les ip sont dans le blocs 212.11.12.240/28 sont suceptible d'envoyer des mails
  • Sur le site B une seul machine dont l'ip est 212.11.22.13 est suceptible d'envoyer des mails
  • Sur le site B une seul machine dont l'ip est 212.11.23.13 est suceptible d'envoyer des mails

Information importante : Aucuns mails ne peux être envoyés depuis d'autre machine, (meme un serveur SMTP d'un FAI public)

Il nous suffit alors d'ajouter une ligne dans notre fichier de zone DNS

domaine.com.    300     IN      TXT "v=spf1 ip4:212.11.12.240/28 ip4:212.11.22.13 ip4:212.11.23.13 -all"

Pour vous aidez à adpater le contenu du champ TXT pour pourrez vous aidez du SPF Setup Wizard et consulter la liste des directives

Mise en place coté destinataire

Pour vérifier qu'un message reçu est bien émis par un serveur habilité, il faut coupler SPF au niveau du MTA ou bien en activant la vérification SPF dans un outil anti-spam tel que spamAsssassin.

Je vous decris si dessous la procédure pour coupler SPF au MTA postfix.

Télécharger l'archive postfix-policyd-spf-perl.tar.gz

wget http://www.openspf.org/source/software/postfix-policyd-spf-perl.tar.gz?view=tar -O /tmp/postfix-policyd-spf-perl.tar.gz
cd /tmp/
tar zxvf postfix-policyd-spf-perl.tar.gz
mv /tmp/postfix-policyd-spf-perl/trunk/postfix-policyd-spf-perl /etc/postfix/spf-policy.pl
chmod 777 /etc/postfix/spf-policy.pl

Installation des librairies Perl necessaire

apt-get install libversion-perl libnetaddr-ip-perl

Nous manque maintenant la librairie perl Mail::SPF::Query.

Si vous êtes sous debian Etch, un package est disponible :

apt-get install libmail-spf-query-perl

Si vous êtes sous Debian Sarge, ou autres distribution n'incluant pas cette librairie, vous pouvez l'installer via CPAN :

cpan -i Mail::SPF

Les packages nécessaire à l'utilisation de cpan sont :

apt-get install gzip tar unzip make lynx wget ncftp ftp

Editer le fichier /etc/postfix/master.cf :

spfpolicy unix - n n - - spawn user=nobody argv=/usr/bin/perl /etc/postfix/spf-policy.pl

Editer le fichier /etc/postfix/main.cf :

check_policy_service unix:private/spfpolicy

smtpd_recipient_restrictions =
       reject_unauth_destination
       reject_unknown_recipient_domain
       reject_unverified_recipient
       check_policy_service unix:private/spfpolicy

Ressources