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 :
- Postgrey (greylisting)
- SPF entrant (policyd-spf)
- 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
| Composant | RĂŽle |
|---|---|
| Postgrey | Filtrage grossier dĂšs la connexion |
| SPF entrant | Signal dâauthenticitĂ© |
| SpamAssassin | Dé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.