La vérification SPF permet de s’assurer que le MTA distant a bien le droit d’émettre pour un nom de domaine donné.
SPF se base sur un enregistrement TXT à la racine du domaine émetteur définissant des autorisations d’émissions comme par exemple autoriser certaines IP à émettre et interdire les autres, autoriser les MX à émettre, refuser tous les serveurs, etc.. Vous trouverez plus d’informations sur SPF sur www.openspf.org
Dans beaucoup d’articles, comme ceux d’Ubuntu, de HowtoForge ou de quelques autres articles bien rankés sur Google vous verrez l’utilisation d’un appel PERL ou Python postfix-policyd-spf.
Si vous êtes utilisateur de FreeBSD ou que vous compilez vous-même vos programmes, vous n’avez plus besoin d’utiliser ces appels PERL qui peuvent s’avérer assez lourds sur une machine sollicitée. Il existe un patch pour Postfix, inclus dans le port FreeBSD, et peut être dans d’autres systèmes packagés, permettant d’activer une fonctionnalité native permettant de faire les vérifications SPF, évitant donc l’appel à un programme externe, qui plus est en PERL ou en Python et offrant donc un gain non négligeable de ressources processeur et mémoire.
Ce patch est fourni par libspf2.org, vous le trouverez ici.
Si vous effectuez une compilation via les ports FreeBSD ou Poudrière, il suffit de cocher l’option suivante:
Une fois cette option activée, il suffira d’ajouter l’option reject_spf_invalid_sender dans l’option smtpd_recipient_restrictions de Postfix afin de vérifier l’enregistrement SPF associé à un domaine. Postfix s’occupera de faire les vérifications et de rejeter le mail si la politique SPF du domaine le demande.