Check spf dans postfix
Depuis quelques temps j’ai rajouté SPF sur mon serveur DNS . En gros SPF est un mécanisme qui permet de définir qui peut envoyer des mails en fonction de vos noms de domaines .
En fonction de comment sera configuré votre serveur vous pourrez oui ou non rejeter ou accepter le mail .
L’installation est relativement simple rien de bien compliqué comme dab
apt-get install postfix-policyd-spf-python (Il existe le même paquet mais en perl)
Commencer par ajouter les serveurs autorisés à envoyer des mails pour votre/vos domaines.
vi votre-zone-dns IN TXT "v=spf1 ip4:x.x.x.x -all"
Il faut par la suite modifier le fichier master.conf
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
On voit qu’un fichier de conf est appelé policyd-spf.conf . Voyons un peu ce qu’il nous cache
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
debugLevel = 1 : Il y a 4 niveau de debug
defaultSeedOnly = 1 : Quand à 1 alors le SPF est pleinement fonctionnel et permet de rejeter les messages
HELO_reject = SPF_Not_Pass : le mail est rejeté si le retour sur SPF sur le HELO n’est pas pass/none/Tempfail
Mail_From_reject = Fail : Mail est rejeté si SPF retourne fail
PermError_reject = False :
TempError_Defer = False :
skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0//104,::1//128 : Adresse pour laquelle il n’y a pas de vérification de SPF
Vous pouvez consulter la documentation plutôt claire /usr/share/doc/postfix-policyd-spf-python/policyd-spf.conf.commented .
Maintenant que notre conf est ok il reste plus qu’à modifier le main.cf
smtpd_recipient_restrictions = ... reject_unauth_destination check_policy_service unix:private/policyd-spf ...
Dans la donc est bien spécifié ceci :
NOTE: Specify check_policy_service AFTER reject_unauth_destination or else your system can become an open relay.
Il vous suffit plus qu’à faire un petit reload de votre conf
Te fous pas de moi tu sais faire ca non
Dans votre fichier de logs vous pourrez voir cette ligne
***** policyd-spf[21125]: None; identity=mailfrom; client-ip=74.125.83.51; helo=mail-ee0-f51.google.com; envelope-from=*****@gmail.com; receiver=*****@robertain.com ***** policyd-spf[21125]: Pass; identity=mailfrom; client-ip=74.125.83.51; helo=mail-ee0-f51.google.com; envelope-from=*****@gmail.com; receiver=*****@robertain.com
Vous retrouverez ceci également dans vos entêtes mails.
Exemple de message rejeté par spf
Feb 17 22:56:40 mq policyd-spf[21759]: None; identity=helo; client-ip=124.195.156.119; helo=c156119.net124195.cablenet.ne.jp; envelope-from=nroberts@abf.com; receiver=*****@robertain.com Feb 17 22:56:40 mq policyd-spf[21759]: Fail; identity=mailfrom; client-ip=124.195.156.119; helo=c156119.net124195.cablenet.ne.jp; envelope-from=nroberts@abf.com; receiver=*****@robertain.com Feb 17 22:56:40 mq postfix/smtpd[21748]: NOQUEUE: reject: RCPT from c156119.net124195.cablenet.ne.jp[124.195.156.119]: 550 5.7.1 <*****@robertain.com>: Recipient address rejected: Message rejected due to: SPF fail - not authorized. Please see http://www.openspf.org/Why?s=mfrom;id=nroberts@abf.com;ip=124.195.156.119;r=*****@robertain.com; from=<nroberts@abf.com> to=<*****@robertain.com> proto=ESMTP helo=<c156119.net124195.cablenet.ne.jp> Feb 17 22:56:41 mq postfix/smtpd[21748]: lost connection after DATA from c156119.net124195.cablenet.ne.jp[124.195.156.119] Feb 17 22:56:41 mq postfix/smtpd[21748]: disconnect from c156119.net124195.cablenet.ne.jp[124.195.156.119]
On voit bien que lors de la vérification du from le check passe en « fail » . Mais pourquoi il suffit de regarder les ips autoriser à envoyer des mails pour le domaine abf.com
dig abf.com TXT +short "v=spf1 ip4:159.204.59.0/24 ip4:159.204.7.7 ip4:159.204.150.100 a:test.data-tronics.com mx:data-tronics.com include:data-tronics.com -all"
Ce qui permet d’avoir le retour fail est le « -all » qui n’est pas la même chose que « ~all » . SPF prends peut prendre certains paramètres : Extrait de la RFC 4408
"+" Pass "-" Fail "~" SoftFail "?" Neutral
SPF associé à DKIM est une excellente façon de lutter contre le spam mais cela ne vas pas éradiquer le spam de vos boites mails . La lutte contre le SPAM est un combat de tous les instants . Donc prenez les armes (évitez les aka47 et les uzis)
Like this post? Tip me with bitcoin!
1CsF4LWtSqoAJGYQVTegQsAnrKikg2HBpo
If you enjoyed reading this post, please consider tipping me using Bitcoin. Each post gets its own unique Bitcoin address so by tipping you're not only making my continued efforts possible but telling me what you liked.
Powered by Bitcoin Tips