{{indexmenu_n>10}} # Résoudre un problème de blacklist Les serveurs mails de petites structures sont régulièrement mis sur liste noire par des structures plus grosses : Gmail, Outlook, parfois même l'UTC. Plusieurs raisons possibles : * Les géants du mail sont considérés comme mutuellement de confiance, notamment sur la performance de leurs outils anti-spam. * Les géants du web peuvent bloquer des utilisateurs individuels et considérer que le reste du système est sûr. * Leurs outils améliorant l'intégrité et l'authentification des mails (SPF, DKIM, DMARC) sont mieux configurés. * Les domaines inconnus ou très petits (comme `picasoft.net`) sont par nature suspicieux : ils pourraient avoir été créés par des spammeurs dans l'optique d'envoyer un grand nombre de mails frauduleux. La stratégie privilégiée par les gros acteurs consiste en général à bloquer l'intégralité des mails provenant d'une **plage IP complète**, ce qui veut dire que notre serveur peut se retrouver bloqué "à cause" d'un serveur mail dans le même bloc, qui n'a rien à voir avec Picasoft. Cette page vise à décrire la résolution des différents problèmes rencontrés au fil de l'eau. Cette page part du principe que les mails envoyés sont maîtrisés par Picasoft, et qu'aucun utilisateur tiers n'a une adresse `@picasoft.net`. En d'autres termes, cette page ne traite pas d'un problème de blacklist dû à des vrais mails malveillants envoyés via nos serveurs. ## Détecter les blocages Les mails bloqués sont en général renvoyés (*bounced*) à l'émetteur, avec des informations sur le blocage. On pourra : * Inspecter les [[technique:adminsys:mail:maintenance:logs|logs du serveur mail]] * Récupérer les mails de l'adresse émettrice. La deuxième méthode a l'avantage de donner plus de détails que le simple code d'erreur, et permet en particulier de voir les en-têtes rajoutées par les éventuels intermédiaire. Pour Mattermost, par exemple, on pourra récupérer les mails en ajoutant dans son client mail la configuration suivante : * Nom du serveur : `mail.picasoft.net` * Port : 143 * Utilisateur : `mattermost@picasoft.net` * Mot de passe : il se trouve dans le [[asso:tuto:vaultwarden|vaultwarden]], sous l'entrée `Tech/LDAP/Mattermost/cn=mattermost,ou=Services,dc=picasoft,dc=net`. * Méthode : `STARTTLS` Vous recevrez ainsi tous les mails de blocage. Picasoft possède une adresse `abuse@picasoft.net` qui a vocation à être transmise aux fournisseurs mail qui proposent du monitoring de réputation, comme le [Smart Network Data Service](https://sendersupport.olc.protection.outlook.com/snds/index.aspx) (SNDS) de Microsoft. Les identifiants sont dans le [[asso:tuto:vaultwarden|vaultwarden]]. Yahoo proposer aussi un programme, le *Yahoo Feedback Loop*, qui permet de recevoir les plaintes des utilisateur·ices sur les mails concernant notre domaine. Les mails arrivent aussi sur `abuse@picasoft.net` ## En premier lieu Vérifier que l'IP du serveur mail n'est pas listée sur [Spamhaus](https://check.spamhaus.org), une blacklist très utilisée par les fournisseurs mail (et par nous, même !). Si l'IP est listée ici, il faudra faire la demande directement à Spamhaus avant de discuter avec les fournisseurs. ## Blocage d'une plage IP Ce problème est très courant avec Microsoft. Dans les [[technique:adminsys:mail:maintenance:logs|logs du serveur mail]], on retrouvera un message du style : ``` Diagnostic-Code: smtp; 550 5.7.1 Unfortunately, messages from [XX.XX.XX.XX] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3150). You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors. [VI1EUR05FT034.eop-eur05.prod.protection.outlook.com] ``` Il faut différencier deux cas : * Le blocage concerne notre adresse IP * Le blocage concerne l'adresse IP d'un intermédiaire Pour savoir quelle est l'adresse IP du serveur mail, on pourra utiliser la commande suivante : ``` $ dig mail.picasoft.net ``` ### Blocage de notre adresse IP Dans le premier cas, la procédure consiste généralement à remplir le formulaire pour demander un déblocage : #### Outlook [sender.office.com](https://sender.office.com/). #### Hotmail [Cette page](https://support.microsoft.com/en-us/supportrequestform/8ad563e3-288e-2a61-8122-3ba03d6b8d75). Il faut hélas un putain de compte Micro$oft. Parfois, on reçoit un mail nous expliquant qu'il faut CONTINUER à montrer patte blanche, type : ``` Dear X We have completed reviewing the IP(s) you submitted. [...] Not qualified for mitigation 91.224.148.61/32 Our investigation has determined that the above IP(s) do not qualify for mitigation. [...] Please ensure your emails comply with the Outlook.com policies, practices and guidelines found here: http://mail.live.com/mail/policies.aspx. [...] To have Deliverability Support investigate further, please reply to this email with a detailed description of the problem you are having, including specific error messages, and an agent will contact you. ``` Dans ce cas, répondre en s'inspirant du mail en bas de page. #### Orange Envoyer un mail à `abuse@orange.fr` en précisant les éléments suivants : * L'erreur renvoyée par le serveur, exemple : ``` : host smtp-in.orange.fr[193.252.22.65] said: 550 5.2.0 Mail rejete. Mail rejected. ofr_506 [506] (in reply to end of DATA command) ``` * L'en-tête `Arrival-Date`, pour les aider à diagnostiquer, exemple : ``` Arrival-Date: Tue, 19 May 2020 18:04:53 +0000 (UTC) ``` #### Gmail Il n'y a pas de formulaire, seulement [une page de bonnes pratiques](https://support.google.com/mail/answer/81126?hl=en&vid=1-635789122382665739-3305764358) qu'il faudra vérifier. #### SFR, La Poste, etc Il n'y a aucune procédure de prévue. À part contacter directement leur service client, ce qui semble être de l'ordre de la mission impossible pour des problèmes très spécifiques, on pourra généralement se reporter sur [la liste des IP blacklistées](https://mxtoolbox.com/blacklists.aspx). Ce site permet de savoir si l'IP de notre serveur mail fait partie de listes publiques de spammeurs, comme SpamHaus. Le cas échéant, on pourra contacter ces listes individuellement pour demander un whitelist : Exemple pour Spamhaus : https://www.spamhaus.org/lookup/ ### Blocage de l'IP d'un intermédiaire Dans le deuxième cas, c'est généralement un intermédiaire qui est blacklisté. On peut le vérifier en comparant les champs `Final-Recipient` et `Original-Recipient` dans le mail de bounce, par exemple : ``` Final-Recipient: rfc822; X@hotmail.com Original-Recipient: rfc822;X@etu.utc.fr ``` On pourra également vérifier le reverse DNS de l'IP blacklistée pour confirmer l'origine du problème, par exemple : ``` $ dig -x 195.83.155.129 [...] 129.155.83.195.in-addr.arpa. 3600 IN PTR mxo-out2.utc.fr. ``` Dans ce cas, nous ne pouvons rien faire : c'est le serveur mail de l'UTC qui est bloqué. On peut contacter le `5000@utc.fr` avec les détails du mail pour les informer, mais il est probable qu'ils le soient déjà car leurs emails devraient également être bloqués. ## Blocage d'un lot de mails L'UTC bloque de temps en temps nos mails avec l'erreur suivante : ``` 550 5.7.1 Policy reason (in reply to end of DATA command) ``` De manière générale, cette erreur semble se produire lors de l'envoi d'un lot important de messages (exemple : @all sur un canal de 1000 personnes). Il faut alors leur envoyer un message au `5000@utc.fr` pour décrire le problème et demander un whitelist de l'adresse émettrice, en insistant sur notre légitimité et sur le fait que les outils soient utilisés par les étudiants et les profs. ## Blocage du contenu d'un mail C'est un cas assez commun avec les serveurs mails chinois : on reçoit une réponse du genre ``` 550 Mail content denied ``` Il est probable dans ce cas que le mail contienne un mot-clé interdit par les fournisseurs de mail. Une autre possibilité est que la fréquence d'envoi soit trop élevée, et c'est aussi ce message qui est envoyé par le fournisseur QQ, par exemple. On pourra envisager dans ce cas de [limiter la fréquence d'envoi des mails de Postfix](https://www.linuxbabe.com/mail-server/solve-550-mail-content-denied-error) ou de limiter la taille des lots d'email envoyés par le service incriminé. Ce point n'est pas encore traité, il faudra plus de données pour savoir si c'est un problème isolé ou récurrent : TODO. ## Examples de mails ### Pour Orange Mail envoyé le 20/05/2020 ayant abouti à un déblocage dans la journée : ``` Bonjour, Je fais partie de l'association Picasoft, qui héberge des services web. Notre service Mattermost permet à ses utilisateurs de communiquer entre eux. Les notifications de messages peuvent déclencher un mail si l'utilisateur l'a choisi. Certains utilisateurs ne reçoivent pas les mails de notification. Notre adresse est mattermost@picasoft.net et émet depuis le serveur mail.picasoft.net. Votre serveur nous retourne des erreurs comme celles-ci (adresses concernées laissées en clair pour que vous puissiez investiguer si nécessaire) : : host smtp-in.orange.fr[80.12.242.9] said: 550 5.2.0 Mail rejete. Mail rejected. ofr_506 [506] (in reply to end of DATA command) Arrival-Date: Tue, 19 May 2020 18:04:53 +0000 (UTC) : host smtp-in.orange.fr[193.252.22.65] said: 550 5.2.0 Mail rejete. Mail rejected. ofr_506 [506] (in reply to end of DATA command) Arrival-Date: Tue, 19 May 2020 18:04:53 +0000 (UTC) Les messages que nous envoyons sont rares, légitimes et ne constituent pas du spam. Nous aimerions donc être autorisés à envoyer des mails sur des adresses Orange. En vous remerciant par avance, X pour Picasoft ``` ### Pour Outlook Parfois, Outlook nous renvoie un mail pour nous dire qu'ils ne veulent pas nous whitelister (sans raisons, évidemment). Il faut alors leur expliquer toutes les sécurités qu'on met en place, les messages d'erreur qu'on reçoit, etc. On peut s'inspirer de ce mail envoyé le 27/09/2020 et qui a abouti au whitelist. ``` Hello, I am a member of Picasoft, a french non-profit organization which provides free and open source web services (https://picasoft.net/). Please find below a few elements to explain why we should not be part of Outlook blocklist. Our mailserver is closed and used only for notifications, i.e. not a single human can send emails through our mailserver. It is not an open relay. All notifications are opt-in, i.e. users have chosen to receive notifications, such as "new-message"-type. You can check in your logs that only three senders send mails from mail.picasoft.net (91.224.148.61) : mattermost@picasoft.net (mostly), wekan@picasoft.net (Kanban) and drop@picasoft.net (Files upload). The volume is generally low. However, when a lot of users are notified at the same time, for example because of a message sent to a large group, it causes a burst of notification e-mails. All our mails are authenticated by SPF (unless they are forwarded by another mailserver, which breaks SPF) or DKIM, and are DMARC complient. Please note that the mails sent from our servers are opt-out and are user-dependants : they are notifications, which provide details about mentions (@all, @user, Slack-like), for example. Please find below the bounce messages for the last week (total count : 9) : eur.olc.protection.outlook.com[104.47.14.33]:25 (top 100) (total: 1) 1 host eur.olc.protection.outlook.com[104.47.14.33] said: 550 5.7.1 Unfortunately, messages from [91.224.148.61] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3150). You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors. [VI1EUR04FT009.eop-eur04.prod.protection.outlook.com] (in reply to MAIL FROM command) eur.olc.protection.outlook.com[104.47.4.33]:25 (top 100) (total: 1) 1 host eur.olc.protection.outlook.com[104.47.4.33] said: 550 5.7.1 Unfortunately, messages from [91.224.148.61] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3150). You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors. [AM5EUR02FT062.eop-EUR02.prod.protection.outlook.com] (in reply to MAIL FROM command) hotmail-com.olc.protection.outlook.com[104.47.17.161]:25 (top 100) (total: 1) 1 host hotmail-com.olc.protection.outlook.com[104.47.17.161] said: 550 5.7.1 Unfortunately, messages from [91.224.148.61] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3150). You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors. [VI1EUR05FT053.eop-eur05.prod.protection.outlook.com] (in reply to MAIL FROM command) hotmail-com.olc.protection.outlook.com[104.47.2.33]:25 (top 100) (total: 1) 1 host hotmail-com.olc.protection.outlook.com[104.47.2.33] said: 550 5.7.1 Unfortunately, messages from [91.224.148.61] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3150). You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors. [DB5EUR01FT016.eop-EUR01.prod.protection.outlook.com] (in reply to MAIL FROM command) msn-com.olc.protection.outlook.com[104.47.14.33]:25 (top 100) (total: 1) 1 host msn-com.olc.protection.outlook.com[104.47.14.33] said: 550 5.7.1 Unfortunately, messages from [91.224.148.61] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3150). You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors. [VI1EUR04FT049.eop-eur04.prod.protection.outlook.com] (in reply to MAIL FROM command) mxa.relay.renater.fr[194.214.201.8]:25 (top 100) (total: 4) To sum up, our mailserver shoudn't be blacklisted because : * It only send few and legitimate emails (notifications) * Our mailserver is properly configured with SPF, DKIM and DMARC and have a static IP address * We have a valid reverse DNS record : $ dig -x 91.224.148.61 61.148.224.91.in-addr.arpa. 7190 IN CNAME 61.61/32.148.224.91.in-addr.arpa. 61.61/32.148.224.91.in-addr.arpa. 7190 IN PTR mail.picasoft.net. * It is not an open relay * No user have a personal email address : only services which send notifications I do not understand the blocking. May you explain what is going wrong ? Please tell me if I can provide additional details. Kind regards, X (Picasoft) ```