toutes les fiches

// comment corriger

Votre serveur mail est un relais ouvert

Un relais ouvert permet à n'importe qui sur internet d'envoyer des emails via votre serveur. Les spammeurs le trouvent en quelques heures et votre IP finit sur les blacklists.

Ce que ça veut dire

Un serveur mail a deux tâches normales : recevoir les emails destinés à vos propres domaines, et envoyer les emails de vos propres utilisateurs une fois connectés. Un relais ouvert (open relay) fait une troisième chose : il accepte les emails de n'importe qui, vers n'importe qui, et les transmet. Les spammeurs scannent internet en permanence à la recherche de ces serveurs et s'en servent pour envoyer d'énormes volumes en votre nom.

Pourquoi c'est important

  • Votre IP est vite ajoutée aux blacklists, et ensuite même vos emails normaux sont refusés.
  • Votre hébergeur peut suspendre le serveur pour abus.
  • Les ressources et la bande passante de votre serveur sont utilisées par des inconnus.

Comment vérifier

  • Regardez votre file d'attente mail. Une grosse file remplie d'emails que vous n'avez pas envoyés est un signe fort. Dans Postfix : mailq.
  • Lisez /var/log/mail.log pour repérer des expéditeurs inconnus qui écrivent à beaucoup d'adresses extérieures.
  • Vérifiez votre IP sur /blacklists.
  • Testez depuis une autre machine, hors de votre réseau. Connectez-vous avec telnet mail.yourdomain.com 25, puis tapez :
    HELO test.example.com
    MAIL FROM:<someone@example.com>
    RCPT TO:<someone-else@example.org>
    Un serveur sûr refuse la dernière ligne avec une erreur comme 554 5.7.1 Relay access denied ou 454 4.7.1. S'il répond 250, c'est un relais ouvert. Tapez QUIT sans rien envoyer.

Comment corriger

Postfix

  1. Limitez les réseaux de confiance au serveur lui-même dans /etc/postfix/main.cf :
    mynetworks = 127.0.0.0/8 [::1]/128
    Ne mettez jamais 0.0.0.0/0 ni une large plage publique ici.
  2. N'autorisez le relais qu'aux réseaux de confiance et aux utilisateurs connectés :
    smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
  3. Assurez-vous que relay_domains ne liste que les domaines que vous gérez vraiment.
  4. Rechargez : postfix reload.

Autres serveurs

Exim, Exchange, hMailServer et les autres reposent sur la même idée sous d'autres noms : cherchez « relay », « allowed IPs » ou « trusted networks » et n'autorisez que les utilisateurs authentifiés et localhost.

Vérifiez aussi les comptes volés

Parfois, le serveur n'est pas ouvert, mais le mot de passe d'une boîte mail a été volé et le spam est envoyé avec un vrai identifiant. Le journal affiche alors un nom d'utilisateur à côté de chaque spam. Changez ce mot de passe, cherchez les mots de passe faibles sur tous les comptes et envisagez des outils comme fail2ban, qui bloquent les tentatives de connexion répétées. De vieux scripts de site web ou des formulaires de contact peuvent aussi être détournés pour envoyer du spam.

Faites le ménage

  1. Supprimez le spam de la file d'attente. Dans Postfix, postsuper -d ALL deferred supprime les messages en attente ; vérifiez bien qu'aucun vrai email n'attend.
  2. Vérifiez à nouveau votre IP sur /blacklists et demandez le retrait de chaque liste une fois le problème réglé. Les outils de retrait des blacklists du tableau de bord payant peuvent vous aider à suivre tout cela.

Vérifiez que c'est corrigé

Refaites le test telnet depuis l'extérieur : la ligne RCPT vers une adresse extérieure doit être refusée. Envoyez ensuite un email normal depuis un vrai compte vers votre adresse de test sur la page d'accueil (/) pour confirmer que les envois légitimes fonctionnent toujours et qu'aucune blacklist n'est signalée.

Vérifiez que c'est corrigé

Une modification DNS peut prendre de quelques minutes à quelques heures. Ensuite, envoyez un nouvel email de test ou scannez à nouveau votre domaine.

Fiches liées