Récemment, j’ai eu des problèmes d’envoi d’emails avec le serveur SMTP Postfix, étant une chose rare, je ne me souviens jamais de certaines commandes de gestion des files d’attente de messages sortants de Postfix. Voici un petit mémo.
Lister les files d’attente Postfix
Postfix possède 2 queues d’envoi d’emails : la liste d’emails en cours d’envoi (pending mails) et la liste d’emails differés (deferred mails). La queue des emails différés sont les messages qui ont été en soft-fail et sont mis en attente pour essayer d’être envoyés plus tard. Leur statut est Temporary failure. Par défaut, Postfix essaie 5 minutes plus tard.
Lister les messages en cours d’envoi :
mailq
Lister les messages différés :
postqueue -p
Supprimer les messages
Pour supprimer les messages de la queue :
postsuper -d ALL
Pour supprimer tous les messages dans la queue des emails différés :
postsuper -d ALL deferred
Envoyer les messages
Si inversement vous voulez envoyer les messages et ainsi vider la file d’attente :
Comme l’explique si bien Wikipedia, DKIM (DomainKeys Identified Mail) est une norme d’authentification du nom de domaine de l’expéditeur d’un courrier électronique. En signant les messages, DKIM vérifie l’authenticité du domaine qui les expédie et garantit leur intégrité.
Ce billet est la suite logique de celui sur l’ajout d’un enregistrement SPF, il va en effet permettre de réduire encore plus les risques d’être déclaré comme spammeur car tous les messages sortants du serveur de messagerie seront signés et donc authentifiés.
Installation et configuration
Les commandes et chemins décris ci-dessous sont ceux d’un serveur Fedora, il suffira de les adapter pour une autre distribution. Sous Fedora l’installation se fait avec dnf désormais :
$ sudo dnf install opendkim
TODO : voir ici pour mettre les domaines gérés par DKIM dans des tables : https://www.linuxbabe.com/redhat/set-up-spf-dkim-postfix-centos
Il faut maintenant éditer le fichier de configuration d’OpenDKIM /etc/opendkim.conf avec les valeurs ci-dessous (bien entendu il faut remplacer rholala.net par votre nom de domaine).
Mode s
Domain rholala.net
KeyFile /etc/postfix/dkim.rholala.net.key
Selector mail
En principe le paramètre Mode est à v (vérifier) par défaut, on le passe à s (signer) pour lui dire de signer les messages sortants. Selector quand à lui est un identifiant, je le mets à mail, mais libre à vous de choisir autre chose.
Lorsque ceci est fait, mettre à jour la configuration de Postfix (sous /etc/postfix/main.cf) pour prendre en compte OpenDKIM :
Il faut maintenant générer les clés qui serviront à la signature cryptographique des entêtes des messages :
$ opendkim-genkey -t -s mail -d rholala.net
Cette commande va créer 2 fichiers mail.private et mail.txt. Le premier est la clé privée qui sera utilisée par OpenDKIM pour signer les messages, on peut copier celle-ci sous /etc/postfix en la renommant en dkim.rholala.net.key comme dans le fichier de configuration d’OpenDKIM que nous avons modifié au début de ce billet. Le second fichier est l’enregistrement DNS à ajouter, il ressemble à ceci :
mail._domainkey IN TXT ( "v=DKIM1; k=rsa; t=y; " "p=MGIfMA0GCD5BouQIDAQAB" ); ----- DKIM key mail for rholala.net
(J’ai volontairement tronqué la chaine commencant par "p=MGI" car elle est très longue.)
Ajout du DNS record
Il faut donc ajouter cet enregistrement dans votre zone, je ne l’explique pas ici car cela dépend du type de gestion DNS que vous utilisez.
Lorsque ceci est fait et après un temps de propagation, vous pouvez tester votre DNS record :
$ dig TXT mail._domainkey.rholala.net
Fin et test de la mise en place de DKIM
Il est temps de démarrer le service DKIM et de l’activer par défaut au démarrage de la machine :
Lorsque ceci est fait, on peut tester si les messages sortants sont bien signés. Pour ce faire, il suffit de regarder les entêtes des emails envoyés depuis le serveur, par exemple :
La norme de vérification Sender Policy Framework (SPF) permet de vérifier qu’un email est bien envoyé d’un serveur gérant le nom de domaine en question. Ce mémo aide à la mise en place d’un enregistrement DNS de type TXT pour le SPF.
SPF est un enregistrement DNS de type TXT qui liste les IP autorisées à envoyer du courrier électronique, ceci afin de réduire les risques de spam liés à une usurpation de l’adresse d’expéditeur.
SPF est donc très simple à mettre en place, il suffit d’avoir accès au paramétrage DNS de votre domaine. Voici par exemple mon enregistrement TXT sur le domaine rholala.net. La messagerie de ce domaine est gérée par Google Apps, mais j’utilise également ce domaine sur mon serveur pour l’envoi de logs et ce genre de choses, donc des courriels en @rholala.net sont envoyés par Postfix.
v=spf1 : On commence par préciser la version, ici SPF version 1.
ip4:5.196.74.38 : Le(s) IP(s) autorisées à envoyer des emails pour le compte du domaine rholala.net, ici en IPv4. A noter qu’il suffit d’ajouter d’autres ip4:xxx.xxx.xxx.xxx séparés par des espaces pour ajouter d’autres machines.
include:_spf.google.com : La messagerie du domaine rholala.net est gérée par Google Apps, on indique ici que tout ce qui vient de chez Google est légitime.
~all : Cette dernière partie représente un qualifieur, ici on indique qu’en cas d’échec (si un email envoyé par @rholala.net provient d’une autre source par dans le SPF), le message est accepté, mais estampillé comme sans SPF valide. En général il est reçu mais tombe dans le dossier spam.
Une fois tout ceci mis en place, il est possible de tester son enregistrement SPF grace à des outils comme ceux de mxtoolbox.com ou directement en ligne de commande avec dig :
Les messages qui auparavent tombaient dans le dossier spam arrivent bien en boîte de réception, comme en témoignent les entêtes SMTP :
Received-SPF: pass (google.com: domain of root@rholala.net designates 5.196.74.38 as permitted sender) client-ip=5.196.74.38;
SPF est très simple et rapide à mettre en place et c’est la première étape incontournable si on ne veut pas que le courrier envoyés tombe dans le dossier pourriel de vos destinataires.
Lorsque l’on utilise son propre serveur de messagerie, une des premières choses à mettre en place est un système anti-spam. Continuant avec notre série d’articles sur la configuration d’un serveur IMAP utilisant Postfix et Dovecot, ce billet explique l’installation de Spamassassin sous Fedora. A noter que ce tutoriel s’applique donc aussi aux dérivés de Red Hat, à savoir RHEL, CentOS et consorts, et globalement en ce qui concerne les autres distributions, seules de légères adaptations seront nécessaires pour faire fonctionner Spamassassin.
Continue reading « Combattre les pourriels avec Spamassassin »
En continuant d'utiliser ce site, vous acceptez l'utilisation de cookies. AccepterEn savoir plus
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.