Aujourd’hui, les fournisseurs de boites mail ont tous des anti-spams. Certains se contentent de déplacer le mail dans un dossier « spam » mais d’autre supprime purement et simplement le mail. Pour contrer ce problème, les serveurs d’envois doivent montrer patte blanche.
Prérequis :
- Un serveur VPS linux avec accès à internet
- Un nom de domaine
Ici, nous utiliserons un VPS debian 7 et un domaine OVH.
Installation de postfix et de mailutils
Postfix sera notre serveur d’envoi de mail.
Installer Postfix :
Installation de postfix :
sudo apt-get install postfix
Pendant l’installation, on nous demande quel type de configuration on souhaite mettre en place. Choisir « Internet Site » qui est une configuration basique sans redirection vers d’autres serveurs. Puis il nous est demandé le nom de domaine du serveur.
Installer & Utilisation de mailutils :
Installation de mailutils :
sudo apt-get install mailutils
Ce paquet permet d’envoyer des mails via commande. Pour envoyer un mail :
echo "Contenu du mail" | mail -s "sujet du mail" [email protected]
Configuration :
Tout d’abord il est nécessaire de dire au VPS sur quel domaine il se trouve, pour cela taper la commande
sudo echo "domaine.com" > /etc/hostname
Redémarrer le service en tapant la commande :
sudo service hostname.sh start
Pour vérifier la prise en compte de la configuration taper la commande :
hostname
SPF
Qu’est ce que SPF ?
SMTP ne possède pas de dispositif permettant de s’assurer de l’identité de l’expéditeur. SPF (Sender policy frameword) vise donc a réduire les usurpations d’identités, en publiant dans le DNS un enregistrement de type TXT qui indique les adresses IP autorisés à utiliser le serveur SMTP. SPF est donc un système de vérification de l’expéditeur. Développer pour réduire les SPAM, il permet de vérifier qu’une adresse mail n’est pas usurpée.
Mise en place de SPF
La mise en place de SPF se fait dans le gestionnaire du nom de domaine. Pour OVH, il faut se rendre dans la partie « Zone DNS », cliquer sur le bouton « Ajouter une entrée », sélectionner le champs DNS de type SPF et entrer dans le champs « a » le nom de domaine. Une nouvelle entrée est alors ajouté ayant pour valeur :
v=spf1 a a:domaine.com -all
DKIM
Qu’est ce que DKIM?
DKIM (DomainKeys Identified Mail) est une norme d’authentification fiable du nom de domaine de l’expéditeur d’un courrier électronique. Elle constitue une protection efficace contre le spam et l’hameçonnage. DKIM utilise une signature cryptographique pour vérifier l’authenticité du domaine expéditeur.
Le serveur d’envoi dispose d’une paire de clef RSA et utilise la clef privée pour signer les emails sortants. La clef publique est diffusée via DNS à qui-veut vérifier la signature d’un email venant de ce serveur d’envoi. Le destinataire d’un email signé via DKIM ne verra pas la différence avec un email classique.
Mise en place de DKIM
Tous d’abord, il faut installer le paquet OpenDKIM grâce à la commande :
sudo apt-get install opendkim opendkim-tools
Ensuite, nous allons indiquer quel port utilisera OpenDKIM à postfix. Taper la commande :
sudo vi /etc/postfix/main.cf
et ajouter les lignes :
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:12345
non_smtpd_milters = inet:localhost:12345
Pour indiquer le port que devra utiliser OpenDKIM, on ouvre le fichier « /etc/default/opendkim » et y remplacer le contenu par cette ligne :
SOCKET="inet:12345@localhost"
Celle-ci permet d’indiquer à OpenDKIM quel port il doit utiliser.
Créer le dossier « opendkim » à l’aide de la commande « mkdir /etc/opendkim », ce dossier contiendra certains fichiers de configuration et les clefs d’OpenDkim.
Puis il faut indiquer les hôtes de confiance dans le fichier « sudo vi /etc/opendkim/TrustedHosts » pour cela, ajouter la ligne :
*.domaine.com
Nous allons maintenant indiquer à OpenDKIM quel fichier clef doit être utilisé pour notre domaine, pour cela ouvrir le fichier « /etc/opendkim/KeyTable » à l’aide de la commande « sudo vi /etc/opendkim/KeyTable » et y ajouter la ligne : « mail._domainkey.domaine.com domaine.com:mail:/etc/opendkim/keys/domaine.com/mail.private ».
Nous allons assurer la liaison de chaque adresse e-mail vers son domaine correspondant, pour cela il faut ouvrir le fichier « sudo vi /etc/opendkim/SigningTable » et y entrer la ligne :
*@domaine.com mail._domainkey.domaine.com
mail._domainkey.domaine.com sera l’enregistrement DNS de DKIM.
Le dernier fichier d’open à modifier est « /etc/opendkim.conf ». Celui-ci va nous permettre de modifier les paramètres globaux de opendkim. Pour commencer, indiquer votre nom de domaine dans le champ « Domain », ensuite vérifier que le mode est bien sur « sv », le champ selector doit contenir le nom du sous domaine DNS DKIM (pour nous « mail._domainkey »), puis modifier le champ KeyFIle en :
/etc/opendkim/keys/domaine.com/private.private
Enfin, il faut indiquer à opendkim où se trouve les fichier créer précédemment à l’aide des lignes suivantes :
# Our KeyTable and SigningTable
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
# Trusted Hosts
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts /etc/opendkim/TrustedHosts
Génération des clef DKIM
Nous allons maintenant générer la paire de clef DKIM grâce aux commandes suivantes :
cd /etc/opendkim/keys
mkdir domaine.com
cd domaine.com
opendkim-genkey -s mail -d domaine.com
chown opendkim:opendkim mail.private
cat /etc/opendkim/keys/domaine.com/mail.txt
Les données affichées sont celles qui devront être enregistrés dans l’enregistrement DNS DKIM.
Une fois les configuration terminé, redémarrer les service Opendkim et Postfix à l’aide des commandes :
/etc/init.d/opendkim restart
/etc/init.d/postfix restart
Enregistrement du champ DNS
Sur le panel d’administration d’OVH, se rendre dans la zone DNS et cliquer sur le bouton « Ajouter une entrée ». Sélectionner TXT et copier le contenu entre les guillemets dans le champ valeur. Ensuite, copier le nom du sous-domaine dans le champ sous-domaine d’OVH, pour nous « mail._domainkey ». Ces informations sont disponibles dans le fichier « /etc/opendkim/keys/domaine.com/mail.txt ».
MX
Qu’est ce que MX ?
MX (Mail eXchanger) permet de rediriger des emails en direction de votre serveur vers un autre domaine. Il s’agit donc d’un système pour la réception des emails. Néanmoins, il est conseillé de le mettre en place car il permet d’augmenter la note de confiance des anti-spams.
Mise en place de MX
Se rendre dans la zone DNS cliquer sur « ajouter un entrée », sélectionner MX, saisir la priorité 1 (priorité la plus haute) et l’adresse cible (notre nom de domaine). Vérifier sur la liste des champs DNS que cette ligne a bien était ajouté: type :
1 votredomaine.me.
Reverse DNS
Qu’est ce que le reverse DNS ?
Le reverse DNS (ou rDNS) est un système qui permet de transformer une adresse IP en nom de domaine. Il est nécessaire de le configurer sur notre serveur SMTP car certaines messageries mail bloques les messages envoyés depuis des serveurs sans rDNS (comme AOL).
Mise en place de reverse DNS
Installer DNSutils qui va nous permettre de tester le reverse DNS :
sudo apt-get install dnsutils
Pour mettre en place le reverse DNS il faut indiquer au VPS à quel domaine il appartient. Cela se fait dans l’interface administrateur OVH de notre VPS. Aller dans le menu « IP » en bas de la page, cliquer sur « Gérer mes IP », la liste des adresses IP du VPS nous est donné (une IPv4 et une IPv6). Cliquer sur les roues d’entées à droite de chaque IP, sélectionner le menu « modifier le reverse » et entrer le nom de domaine.
Pour tester le reverse DNS, retourner sur le VPS et taper la commande.
dig -x votreIP +short
Si votre nom de domaine s’affiche, alors la configuration fonctionne.
Tester le serveur SMTP
Avant de tester le serveur SMTP, nous allons le redémarrer à l’aide de la commande :
sudo /etc/init.d/postfix restart
Pour tester la note de confiance de notre serveur SMTP, il existe le site https://www.mail-tester.com
Le test créer une adresse temporaire à laquelle envoyer un Email via notre serveur SMTP. Il permet par exemple de vérifier les systèmes d’authentifications du nom de domaine (DKIM et SPF), si l’email passe spam assassin, la composition HTML de l’email, la présence du serveur sur liste noire mais aussi la présence de lien brisé dans le message. Au final le serveur testé est noté sur 10. Gmail obtient une note de 8/10. Attention ! les notes peuvent être variable en fonction du contenu du message, pour tester, il est donc conseillé d’envoyer un message relativement long comportant un vrai message.
Mon serveur SMTP obtient une note de 10/10 au lieu de 1.7/10 avant la mise en place de SPF, DKIM, ReverseDNS et MX.
Sources
http://lea-linux.org/documentations/DKIM_SPF_Postfix
https://www.skyminds.net/serveur-dedie-ajouter-lauthentification-spf-sender-id-et-dkim-a-postfix-et-bind9-avec-opendkim/