« SPF » : différence entre les versions

De NCad Wiki
Aller à la navigation Aller à la recherche
 
(5 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :


= Installation =
= Installation =
* Installation du paquet '''postfix-policyd-spf-python''' :


{{ Box Console | objet=apt-get install postfix-policyd-spf-python }}
{{ Box Console | objet=apt-get install postfix-policyd-spf-python }}
Ligne 7 : Ligne 9 :
= Configuration de Postfix =
= Configuration de Postfix =


* '''/etc/postfix/master.conf'''
* Editer le fichier de configuration '''/etc/postfix/master.conf''', puis y ajouter les lignes suivantes :


  policyd-spf unix - n n - 0 spawn
  policyd-spf unix - n n - 0 spawn
  user=nobody argv=/usr/bin/python /usr/bin/policyd-spf /etc/postfix-policyd-spf-python/policyd-spf.conf
  user=nobody argv=/usr/bin/python /usr/bin/policyd-spf /etc/postfix-policyd-spf-python/policyd-spf.conf


* On édite le fichier '''/etc/postfix/main.cf''' pour y ajouter la règle '''check_policy_service''' juste après la règle '''reject_unauth_destination''' dans la section '''smtpd_recipient_restrictions'''.
* Editer le fichier de configuration '''/etc/postfix/main.cf''', puis y ajouter la règle '''check_policy_service''' juste après la règle '''reject_unauth_destination''' dans la section '''smtpd_recipient_restrictions'''.


  smtpd_recipient_restrictions =
  smtpd_recipient_restrictions =
Ligne 20 : Ligne 22 :
  [...]
  [...]


* Une fois ces modifications enregistrées, on redémarre '''Postfix''' pour prendre en compte les changements.
* Une fois ces modifications enregistrées, redémarrer le service '''Postfix''' pour prendre en compte les changements.


{{ Box Console | objet=service postfix restart }}
{{ Box Console | objet=service postfix restart }}
Ligne 26 : Ligne 28 :
= Configuration de Policyd-SPF =
= Configuration de Policyd-SPF =


* '''/etc/postfix/policyd-spf.conf'''
* Editer le fichier de configuration '''/etc/postfix/policyd-spf.conf''' puis y ajouter les lignes suivantes :


  debugLevel = 1
  debugLevel = 1
Ligne 35 : Ligne 37 :
  TempError_Defer = False
  TempError_Defer = False
  skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0//104,::1//128
  skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0//104,::1//128
* Redémarrer le service '''Postfix''' pour appliquer la configuration :<br />{{Commande|service postfix restart}}


= Vérification =
= Vérification =
Ligne 42 : Ligne 46 :
== État du SPF ==
== État du SPF ==


* Nous vérifions le paramétrage du champs '''SPF''' pour le domaine '''ncad.me'''. Ce champ DNS est un champ de type '''TXT''' qui est renseigné à la racine du domaine.
* Vérification des enregistrements '''SPF''' pour le domaine '''geocoucou.eu''' :


{{Box Console | objet=dig txt ncad.me<br />
{{Box Console | objet=dig txt geocoucou.eu<br />
<span style="font-family:sans-serif;color:green">ncad.me. 86400 IN TXT "v=spf1 mx -all"</span> }}
<span style="font-family:sans-serif;color:green">geocoucou.eu.           600    IN     TXT     "v=spf1 mx -all"</span> }}
<br />
 
{{Box Console | objet=dig mx ncad.me<br />
* Vérification des enregistrements '''MX''' pour le domaine '''geocoucou.eu''' :
ncad.me. 86400 IN MX 5 mx0.geocoucou.eu.<br />
 
ncad.me. 86400 IN MX 1 mail.geocoucou.eu.
{{Box Console | objet=dig mx geocoucou.eu<br/>
geocoucou.eu. 86400 IN MX 1 mail.geocoucou.eu.
}}
}}


* Le résultat ci-dessus nous indique que seules les serveurs '''MX''' renseignés pour le domaine '''ncad.me''' sont autorisés à émettre des courriels pour ce domaine. Le serveur dédié utilisé pour envoyer le courriel ne fait pas partie des machines autorisées.
{{ Box Information | objet=Le résultat ci-dessus indique que seules les serveurs '''MX''' du domaine '''geocoucou.me''' sont autorisés à émettre des courriels. }}
 
== Validation ==


== Réception du courriel ==
* Pour valider le paramétrage, nous allons simuler l''''envoi d'un mail''' depuis un serveur de messagerie '''<span style="color:red">non autorisé</span>''' avec l'adresse de messagerie '''<span style="color:purple">nicolas.cachelou@geocoucou.eu</span>''' :


* Voici les logs relevés sur le serveur de messagerie du domaine '''cachelou.fr''' pour le traitement de ce courriel :
<span style="background-color:darkblue;color:#FFFFFF">1.1</span> Feb 11 22:17:47 alice postfix/smtpd[1449]: connect from <span style="color:red">105.ip-79-137-82.eu[79.137.82.105]</span>
<span style="background-color:darkblue;color:#FFFFFF">1.2</span> Feb 11 22:17:48 alice policyd-spf[1457]: None; identity=helo; client-ip=<span style="color:red">79.137.82.105</span>; helo=vps367266.ovh.net; envelope-from=<span style="color:purple">nicolas.cachelou@geocoucou.eu</span>; receiver=nicolas@cachelou.fr
<span style="background-color:darkblue;color:#FFFFFF">1.3</span> Feb 11 22:17:48 alice policyd-spf[1457]: Fail; identity=mailfrom; client-ip=79.137.82.105; helo=vps367266.ovh.net; envelope-from=<span style="color:purple">nicolas.cachelou@geocoucou.eu</span>; receiver=nicolas@cachelou.fr
<span style="background-color:darkred;color:#FFFFFF">2</span> Feb 11 22:17:48 alice postfix/smtpd[1449]: NOQUEUE: reject: RCPT from <span style="color:red">105.ip-79-137-82.eu[79.137.82.105]</span>: 550 5.7.1 <nicolas@cachelou.fr>: Recipient address rejected: <span style="font-family:sans-serif;color:red">Message rejected due to: SPF fail - not authorized</span>. Please see http://www.openspf.net/Why?s=mfrom;id=nicolas.cachelou@ncad.me;ip=79.137.82.105;r=nicolas@cachelou.fr; from=<span style="color:purple">nicolas.cachelou@geocoucou.eu</span> to=<nicolas@cachelou.fr> proto=ESMTP helo=<vps367266.ovh.net>
<span style="background-color:darkorange;color:#FFFFFF">3</span> Feb 11 22:17:48 alice postfix/smtpd[1449]: disconnect from <span style="color:red">105.ip-79-137-82.eu[79.137.82.105]</span>


<span style="background-color:darkblue;color:#FFFFFF">1.1</span> Feb 11 22:17:47 alice postfix/smtpd[1449]: connect from gw-67sbg-01.cachelou.net[79.137.82.105]
Le serveur de courriel du domaine '''cachelou.fr''' vérifie la configuration du domaine '''geocoucou.eu''' aux étapes <span style="background-color:darkblue;color:#FFFFFF">1.2</span> et <span style="background-color:darkblue;color:#FFFFFF">1.3</span>. Une fois la vérification effectuée, le service '''smtpd''' refuse d'acheminer le courriel avec le motif '''SPF fail'''.
<span style="background-color:darkblue;color:#FFFFFF">1.2</span> Feb 11 22:17:48 alice policyd-spf[1457]: None; identity=helo; client-ip=79.137.82.105; helo=vps367266.ovh.net; envelope-from=nicolas.cachelou@ncad.me; receiver=nicolas@cachelou.fr
<span style="background-color:darkblue;color:#FFFFFF">1.3</span> Feb 11 22:17:48 alice policyd-spf[1457]: Fail; identity=mailfrom; client-ip=79.137.82.105; helo=vps367266.ovh.net; envelope-from=nicolas.cachelou@ncad.me; receiver=nicolas@cachelou.fr
<span style="background-color:darkred;color:#FFFFFF">2</span> Feb 11 22:17:48 alice postfix/smtpd[1449]: NOQUEUE: reject: RCPT from gw-67sbg-01.cachelou.net[79.137.82.105]: 550 5.7.1 <nicolas@cachelou.fr>: Recipient address rejected: <span style="font-family:sans-serif;color:red">Message rejected due to: SPF fail - not authorized</span>. Please see http://www.openspf.net/Why?s=mfrom;id=nicolas.cachelou@ncad.me;ip=79.137.82.105;r=nicolas@cachelou.fr; from=<nicolas.cachelou@ncad.me> to=<nicolas@cachelou.fr> proto=ESMTP helo=<vps367266.ovh.net>
<span style="background-color:darkorange;color:#FFFFFF">3</span> Feb 11 22:17:48 alice postfix/smtpd[1449]: disconnect from gw-67sbg-01.cachelou.net[79.137.82.105]


Le serveur de courriel du domaine '''cachelou.fr''' vérifie la configuration du domaine '''ncad.me''' aux étapes <span style="background-color:darkblue;color:#FFFFFF">1.2</span> et <span style="background-color:darkblue;color:#FFFFFF">1.3</span>. Une fois la vérification effectuée, le service '''smtpd''' refuse d'acheminer le courriel avec le motif '''SPF fail'''.
[[Category:Serveur de Messagerie]]

Dernière version du 20 juin 2025 à 06:21

.:[ Serveur de Messagerie ]:.

Installation >> Postfix avec MySQL

Filtrage anti-spam : Anti-Spam SpamAssassin | Anti-Virus Clamav


Filtrage anti-virus : Plateforme de filtrage Amavis >> Amavis avec MySQL


Plus de fonctions : Ajouter un Disclaimer | DKIM Proxy | OpenDKIM | Mailman | Maildrop | DANE | SPF


Clients de messagerie : Configurer Thundirbird | Configurer Roundcube


Pour aller plus loin : Commandes messagerie | DNSBL | MX Backup

Installation

  • Installation du paquet postfix-policyd-spf-python :

apt-get install postfix-policyd-spf-python

Configuration de Postfix

  • Editer le fichier de configuration /etc/postfix/master.conf, puis y ajouter les lignes suivantes :
policyd-spf unix - n n - 0 spawn
user=nobody argv=/usr/bin/python /usr/bin/policyd-spf /etc/postfix-policyd-spf-python/policyd-spf.conf
  • Editer le fichier de configuration /etc/postfix/main.cf, puis y ajouter la règle check_policy_service juste après la règle reject_unauth_destination dans la section smtpd_recipient_restrictions.
smtpd_recipient_restrictions =
[...]
reject_unauth_destination
check_policy_service unix:private/policyd-spf
[...]
  • Une fois ces modifications enregistrées, redémarrer le service Postfix pour prendre en compte les changements.

service postfix restart

Configuration de Policyd-SPF

  • Editer le fichier de configuration /etc/postfix/policyd-spf.conf puis y ajouter les lignes suivantes :
debugLevel = 1
defaultSeedOnly = 1
HELO_reject = SPF_Not_Pass
Mail_From_reject = Fail
PermError_reject = False
TempError_Defer = False
skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0//104,::1//128
  • Redémarrer le service Postfix pour appliquer la configuration :
    service postfix restart

Vérification

Pour vérifier le bon fonctionnement du filtrage SPF, je vais envoyer un courriel depuis l'adresse nicolas.cachelou@ncad.me vers l'adresse nicolas@cachelou.fr. J'utilise un serveur de courriel non autorisé pour envoyer mon courriel depuis l'adresse nicolas.cachelou@ncad.me. Dans cette exemple, j'utilise une configuration Postfix de base sur un serveur dédié.

État du SPF

  • Vérification des enregistrements SPF pour le domaine geocoucou.eu :

dig txt geocoucou.eu
geocoucou.eu. 600 IN TXT "v=spf1 mx -all"

  • Vérification des enregistrements MX pour le domaine geocoucou.eu :

dig mx geocoucou.eu
geocoucou.eu. 86400 IN MX 1 mail.geocoucou.eu.

Le résultat ci-dessus indique que seules les serveurs MX du domaine geocoucou.me sont autorisés à émettre des courriels.

Validation

  • Pour valider le paramétrage, nous allons simuler l'envoi d'un mail depuis un serveur de messagerie non autorisé avec l'adresse de messagerie nicolas.cachelou@geocoucou.eu :
1.1 Feb 11 22:17:47 alice postfix/smtpd[1449]: connect from 105.ip-79-137-82.eu[79.137.82.105]
1.2 Feb 11 22:17:48 alice policyd-spf[1457]: None; identity=helo; client-ip=79.137.82.105; helo=vps367266.ovh.net; envelope-from=nicolas.cachelou@geocoucou.eu; receiver=nicolas@cachelou.fr 
1.3 Feb 11 22:17:48 alice policyd-spf[1457]: Fail; identity=mailfrom; client-ip=79.137.82.105; helo=vps367266.ovh.net; envelope-from=nicolas.cachelou@geocoucou.eu; receiver=nicolas@cachelou.fr 
2 Feb 11 22:17:48 alice postfix/smtpd[1449]: NOQUEUE: reject: RCPT from 105.ip-79-137-82.eu[79.137.82.105]: 550 5.7.1 <nicolas@cachelou.fr>: Recipient address rejected: Message rejected due to: SPF fail - not authorized. Please see http://www.openspf.net/Why?s=mfrom;id=nicolas.cachelou@ncad.me;ip=79.137.82.105;r=nicolas@cachelou.fr; from=nicolas.cachelou@geocoucou.eu to=<nicolas@cachelou.fr> proto=ESMTP helo=<vps367266.ovh.net>
3 Feb 11 22:17:48 alice postfix/smtpd[1449]: disconnect from 105.ip-79-137-82.eu[79.137.82.105]

Le serveur de courriel du domaine cachelou.fr vérifie la configuration du domaine geocoucou.eu aux étapes 1.2 et 1.3. Une fois la vérification effectuée, le service smtpd refuse d'acheminer le courriel avec le motif SPF fail.