đŸ›Ąïž Mise en place et validation d’un anti-spoofing mail efficace (Postgrey + SPF entrant + SpamAssassin)

L’anti-spoofing mail est un enjeu majeur lorsqu’on auto-hĂ©berge son serveur de messagerie. MalgrĂ© la mise en place de SPF et DKIM en sortie, il arrive encore de recevoir des emails semblant provenir de son propre domaine.
Dans cet article, je dĂ©taille une mise en place rĂ©aliste et testĂ©e en conditions rĂ©elles d’un anti-spoofing mail efficace, basĂ© sur Postgrey, SPF entrant et SpamAssassin, sans faux positifs ni rejet SMTP agressif.


🎯 Objectif

L’objectif n’est pas de bloquer aveuglĂ©ment, mais de construire une chaĂźne de filtrage cohĂ©rente qui :

  • rĂ©duit drastiquement le spam automatisĂ©,
  • dĂ©tecte les tentatives d’usurpation d’identitĂ©,
  • laisse passer les emails lĂ©gitimes,
  • dĂ©lĂšgue la dĂ©cision finale Ă  un moteur de scoring.

La solution repose sur trois briques complémentaires :

  1. Postgrey (greylisting)
  2. SPF entrant (policyd-spf)
  3. SpamAssassin (analyse et décision)

Pourquoi l’anti-spoofing mail ne repose pas uniquement sur SPF et DKIM

SPF et DKIM sont souvent perçus comme des mĂ©canismes de blocage stricts. En rĂ©alitĂ©, ce n’est pas toujours le cas.

Beaucoup de grands fournisseurs (Gmail, Outlook, etc.) publient des enregistrements SPF en ~all (softfail).
Cela signifie :

  • « l’IP n’est probablement pas autorisĂ©e »
  • mais pas « rejetez systĂ©matiquement le mail »

SPF fournit donc un signal, pas une décision finale.
C’est prĂ©cisĂ©ment pour cela qu’un moteur de scoring comme SpamAssassin reste indispensable dans une stratĂ©gie d’anti-spoofing mail sĂ©rieuse.

Pour plus de détails sur le fonctionnement de SPF, la documentation officielle est disponible ici :
https://www.openspf.org/


1ïžâƒŁ Postgrey : le premier filtre, simple et efficace

Postgrey applique une rĂšgle volontairement basique :

Un vrai serveur mail réessaie. Un spammer ne le fait généralement pas.

Fonctionnement

  • PremiĂšre tentative → rejet temporaire (450 Greylisted)
  • Nouvelle tentative aprĂšs quelques minutes → acceptĂ©e

Avantages

  • TrĂšs efficace contre le spam automatisĂ©
  • RĂ©duction significative de la charge sur SpamAssassin
  • Pratiquement aucun faux positif aujourd’hui

Postgrey agit avant SPF et SpamAssassin, ce qui est parfaitement normal : il sert de pré-filtre grossier.


2ïžâƒŁ SPF entrant : Ă©valuer l’authenticitĂ© du mail reçu

Pour l’analyse SPF en entrĂ©e, j’utilise postfix-policyd-spf-python.

Installation

apt install postfix-policyd-spf-python

Intégration dans Postfix

smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    check_policy_service inet:127.0.0.1:10023

À ce stade, le serveur est capable de distinguer :

  • SPF Pass
  • SPF Softfail
  • SPF Fail

⚠ Un point essentiel :
Un SPF softfail n’est pas une erreur, mais une information à exploiter dans le scoring.


3ïžâƒŁ Test rĂ©el d’un spoof SPF (conditions rĂ©alistes)

Pour valider le comportement réel du serveur, le test a été effectué :

  • depuis WSL (Ubuntu) sous Windows,
  • en IPv4 (mon serveur bloquant tout IPv6),
  • via le port 587 (submission) (mon FAI bloquant le port 25 en sortie),
  • avec l’outil swaks.

Exemple de commande :

swaks \
  --server 147.135.136.17 \
  --port 587 \
  --tls \
  --from fake@gmail.com \
  --to user@mondomaine.tld \
  --data "Subject: test SPF\n\nTest spoof SPF"

Résultat observé cÎté serveur

Received-SPF: Softfail (mailfrom)
client-ip=89.x.x.x
envelope-from=fake@gmail.com

âžĄïž SPF entrant fonctionne exactement comme prĂ©vu.


4ïžâƒŁ SpamAssassin : la dĂ©cision finale

AprÚs passage de Postgrey et analyse SPF, le message est traité par SpamAssassin.

Le mail de test est arrivé dans le dossier spam, avec un score explicite :

Content analysis details: (7.3 points, 4.0 required)

SPF_SOFTFAIL
SPOOFED_FREEMAIL
RDNS_DYNAMIC
KHOP_HELO_FCRDNS

Analyse

  • SPF fournit le signal (SPF_SOFTFAIL)
  • L’IP rĂ©sidentielle et le HELO incohĂ©rent renforcent le score
  • La dĂ©cision est prise sans rejet SMTP

👉 RĂ©sultat attendu et souhaitable.


🧠 Conclusion : une chaĂźne anti-spoofing mail Ă©quilibrĂ©e

ComposantRĂŽle
PostgreyFiltrage grossier dĂšs la connexion
SPF entrantSignal d’authenticitĂ©
SpamAssassinDécision finale par scoring

Cette approche permet :

  • de dĂ©tecter efficacement les spoof,
  • de limiter les faux positifs,
  • de conserver une excellente dĂ©livrabilitĂ©.

🔜 Aller plus loin (optionnel)

Il est possible de renforcer encore l’anti-spoofing mail avec :

  • des rĂšgles SpamAssassin ciblĂ©es pour son propre domaine,
  • une politique DMARC plus stricte,
  • ou un ajustement fin des scores.

👉 Uniquement si un problĂšme rĂ©el apparaĂźt.
Dans l’état, la configuration est saine, robuste et suffisante.


✅ À retenir

L’anti-spoofing mail efficace repose sur plusieurs couches, pas sur un seul mĂ©canisme.

Observer, scorer et décider est souvent plus efficace que bloquer brutalement.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.