Différences entre versions de « Installer DKIM sur Postfix sous Debian »
(Ajout des catégories DKIM et MAIL. Modifications pour refléter le côté exemple général.) |
|||
Ligne 23 : | Ligne 23 : | ||
; Ouvrir le fichier | ; Ouvrir le fichier | ||
<syntaxhighlight lang="bash"> vi /etc/opendkim.conf </syntaxhighlight> | <syntaxhighlight lang="bash"> vi /etc/opendkim.conf </syntaxhighlight> | ||
− | ; Ajouter les lignes suivantes au fichier /etc/opendkim.conf | + | ; Ajouter les lignes suivantes au fichier /etc/opendkim.conf, si certaines sont déjà présentes les commenter pour éviter tout problème |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
AutoRestart Yes | AutoRestart Yes | ||
Ligne 45 : | Ligne 45 : | ||
UserID opendkim:opendkim | UserID opendkim:opendkim | ||
− | Socket inet: | + | Socket inet:17789@localhost |
</syntaxhighlight> | </syntaxhighlight> | ||
Voici les différents paramètres: | Voici les différents paramètres: | ||
Ligne 89 : | Ligne 89 : | ||
|- | |- | ||
|Socket | |Socket | ||
− | |Le port d'écoute sur lequel Postifx et '''OpenDKIM''' échangeront les messages. Pour écouter en local sur le port | + | |Le port d'écoute sur lequel Postifx et '''OpenDKIM''' échangeront les messages. Pour écouter en local sur le port 17789: 17789@localhost. |
|} | |} | ||
Ceci est une configuration d'exemple, vous devez faire correspondre les paramètres à votre configuration actuelle et selon les besoins. Vous trouverez plus d'informations à propos du fichier de configuration d''''OpenDKIM''' à cette [http://www.opendkim.org/opendkim.conf.5.html adresse]. | Ceci est une configuration d'exemple, vous devez faire correspondre les paramètres à votre configuration actuelle et selon les besoins. Vous trouverez plus d'informations à propos du fichier de configuration d''''OpenDKIM''' à cette [http://www.opendkim.org/opendkim.conf.5.html adresse]. | ||
+ | <syntaxhighlight lang=bash> | ||
+ | # Log to syslog | ||
+ | #Syslog yes | ||
+ | # Required to use local socket with MTAs that access the socket as a non- | ||
+ | # privileged user (e.g. Postfix) | ||
+ | #UMask 002 | ||
+ | |||
+ | # Sign for example.com with key in /etc/mail/dkim.key using | ||
+ | # selector '2007' (e.g. 2007._domainkey.example.com) | ||
+ | #Domain example.com | ||
+ | #KeyFile /etc/mail/dkim.key | ||
+ | #Selector 2007 | ||
+ | |||
+ | # Commonly-used options; the commented-out versions show the defaults. | ||
+ | #Canonicalization simple | ||
+ | #Mode sv | ||
+ | #SubDomains no | ||
+ | #ADSPDiscard no | ||
+ | |||
+ | # Always oversign From (sign using actual From and a null From to prevent | ||
+ | # malicious signatures header fields (From and/or others) between the signer | ||
+ | # and the verifier. From is oversigned by default in the Debian pacakge | ||
+ | # because it is often the identity key used by reputation systems and thus | ||
+ | # somewhat security sensitive. | ||
+ | OversignHeaders From | ||
+ | |||
+ | # List domains to use for RFC 6541 DKIM Authorized Third-Party Signatures | ||
+ | # (ATPS) (experimental) | ||
+ | |||
+ | #ATPSDomains example.com | ||
+ | AutoRestart Yes | ||
+ | AutoRestartRate 10/1h | ||
+ | UMask 002 | ||
+ | Syslog yes | ||
+ | SyslogSuccess Yes | ||
+ | LogWhy Yes | ||
+ | |||
+ | Canonicalization relaxed/simple | ||
+ | |||
+ | ExternalIgnoreList refile:/etc/opendkim/TrustedHosts | ||
+ | InternalHosts refile:/etc/opendkim/TrustedHosts | ||
+ | KeyTable refile:/etc/opendkim/KeyTable | ||
+ | SigningTable refile:/etc/opendkim/SigningTable | ||
+ | |||
+ | Mode sv | ||
+ | PidFile /var/run/opendkim/opendkim.pid | ||
+ | SignatureAlgorithm rsa-sha256 | ||
+ | |||
+ | UserID opendkim:opendkim | ||
+ | |||
+ | Socket inet:17789@localhost | ||
+ | </syntaxhighlight> | ||
====/etc/default/opendkim==== | ====/etc/default/opendkim==== | ||
Ligne 97 : | Ligne 149 : | ||
<syntaxhighlight lang="bash"> vi /etc/default/opendkim </syntaxhighlight> | <syntaxhighlight lang="bash"> vi /etc/default/opendkim </syntaxhighlight> | ||
; Ajouter la ligne suivante | ; Ajouter la ligne suivante | ||
− | <syntaxhighlight lang="bash"> SOCKET="inet: | + | <syntaxhighlight lang="bash"> SOCKET="inet:17789@localhost" </syntaxhighlight> |
− | Il faut modifier le port si celui-ci est différent dans le fichier de configuration précédent. | + | Il faut modifier le port si celui-ci est différent dans le fichier de configuration précédent. Il faut être attentif sur le port défini précédemment afin de conserver le même à travers les différents fichiers de configuration. |
===Configuration de Postfix=== | ===Configuration de Postfix=== | ||
Ligne 107 : | Ligne 159 : | ||
milter_default_action = accept </syntaxhighlight> | milter_default_action = accept </syntaxhighlight> | ||
; Si des filtres anti-spam sont installés il faut ajouter '''OpenDKIM''' à la liste | ; Si des filtres anti-spam sont installés il faut ajouter '''OpenDKIM''' à la liste | ||
− | <syntaxhighlight lang="bash"> smtpd_milters = unix:/spamass/spamass.sock, inet:localhost: | + | <syntaxhighlight lang="bash"> smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:17789 |
− | non_smtpd_milters = unix:/spamass/spamass.sock, inet:localhost: | + | non_smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:17789 </syntaxhighlight> |
; Sinon ajouter '''OpenDKIM''' | ; Sinon ajouter '''OpenDKIM''' | ||
− | <syntaxhighlight lang="bash"> smtpd_milters = inet:localhost: | + | <syntaxhighlight lang="bash"> smtpd_milters = inet:localhost:17789 |
− | non_smtpd_milters = inet:localhost: | + | non_smtpd_milters = inet:localhost:17789 </syntaxhighlight> |
===Création des dossiers=== | ===Création des dossiers=== | ||
Ligne 129 : | Ligne 181 : | ||
192.168.0.1/24 | 192.168.0.1/24 | ||
− | *.example. | + | *.example.tld |
</syntaxhighlight> | </syntaxhighlight> | ||
− | Ce fichier est un exemple de configuration pour le domaine *.example. | + | Ce fichier est un exemple de configuration pour le domaine *.example.tld |
; Enregistrer et fermer le fichier TrustedHosts | ; Enregistrer et fermer le fichier TrustedHosts | ||
Ligne 139 : | Ligne 191 : | ||
<syntaxhighlight lang="bash"> vi /etc/opendkim/KeyTable </syntaxhighlight> | <syntaxhighlight lang="bash"> vi /etc/opendkim/KeyTable </syntaxhighlight> | ||
; Ajouter la ligne suivante | ; Ajouter la ligne suivante | ||
− | <syntaxhighlight lang="bash"> mail._domainkey.example. | + | <syntaxhighlight lang="bash"> mail._domainkey.example.tld example.tld:mail:/etc/opendkim/keys/example.tld/mail.private </syntaxhighlight> |
− | Dans cet exemple le domaine example. | + | Dans cet exemple le domaine example.tld devra aller chercher sa clé dans /etc/opendkim/keys/example.tld/mail.private<br> |
Il est important que vous adaptiez cette configuration à votre domaine. | Il est important que vous adaptiez cette configuration à votre domaine. | ||
Ligne 148 : | Ligne 200 : | ||
<syntaxhighlight lang="bash"> vi /etc/opendkim/SigningTable </syntaxhighlight> | <syntaxhighlight lang="bash"> vi /etc/opendkim/SigningTable </syntaxhighlight> | ||
; Ajouter la ligne suivante ( l'utilisation des wildcards est autorisée ) | ; Ajouter la ligne suivante ( l'utilisation des wildcards est autorisée ) | ||
− | <syntaxhighlight lang="bash"> *@example. | + | <syntaxhighlight lang="bash"> *@example.tld mail._domainkey.example.tld </syntaxhighlight> |
− | Dans cet exemple les adresse en @example. | + | Dans cet exemple les adresse en @example.tld devront être redirigées vers le sélecteur mail._domainkey.example.tld.<br> |
Il est important que vous adaptiez cette configuration à votre domaine. | Il est important que vous adaptiez cette configuration à votre domaine. | ||
Ligne 156 : | Ligne 208 : | ||
; Se déplacer dans le dossier qui recevra les clés | ; Se déplacer dans le dossier qui recevra les clés | ||
<syntaxhighlight lang="bash"> cd /etc/opendkim/keys </syntaxhighlight> | <syntaxhighlight lang="bash"> cd /etc/opendkim/keys </syntaxhighlight> | ||
− | : Créer un dossier pour notre nouveau domaine example. | + | : Créer un dossier pour notre nouveau domaine example.tld |
− | <syntaxhighlight lang="bash"> mkdir example. | + | <syntaxhighlight lang="bash"> mkdir example.tld </syntaxhighlight> |
; Se déplacer dans le dossier du domaine | ; Se déplacer dans le dossier du domaine | ||
− | <syntaxhighlight lang="bash"> cd example. | + | <syntaxhighlight lang="bash"> cd example.tld </syntaxhighlight> |
− | ; Générer les clés pour notre domaine example. | + | ; Générer les clés pour notre domaine example.tld |
− | <syntaxhighlight lang="bash"> opendkim-genkey -s mail -d example. | + | <syntaxhighlight lang="bash"> opendkim-genkey -s mail -d example.tld </syntaxhighlight> |
L'option -s permet de spécifier un sélecteur et -d le domaine. Cette commande va créer deux fichiers ''mail.private'' la clé privée et ''mail.txt'' la clé publique. | L'option -s permet de spécifier un sélecteur et -d le domaine. Cette commande va créer deux fichiers ''mail.private'' la clé privée et ''mail.txt'' la clé publique. | ||
; Changer le propriétaire de la clé privée | ; Changer le propriétaire de la clé privée | ||
Ligne 169 : | Ligne 221 : | ||
Nous possédons à présent nos clés publiques, nous devons maintenant les ajouter dans les enregistrements DNS. | Nous possédons à présent nos clés publiques, nous devons maintenant les ajouter dans les enregistrements DNS. | ||
; Récupérons notre clé publique | ; Récupérons notre clé publique | ||
− | <syntaxhighlight lang="bash"> | + | <syntaxhighlight lang="bash"> cat /etc/opendkim/keys/example.tld/mail.private </syntaxhighlight> |
− | Vous devriez récupérer une ligne semblable à cette ligne d'exemple : <pre> mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5N3lnvvrYgPCRSoqn+awTpE+iGY" ; ----- DKIM key mail for example. | + | Vous devriez récupérer une ligne semblable à cette ligne d'exemple : <pre> mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5N3lnvvrYgPCRSoqn+awTpE+iGY" ; ----- DKIM key mail for example.tld </pre> |
; Copier la clé, la partie "v=DKIM1 ... +iGY", dans notre exemple | ; Copier la clé, la partie "v=DKIM1 ... +iGY", dans notre exemple | ||
; Ajouter un enregistrement DNS TXT contenant la clé | ; Ajouter un enregistrement DNS TXT contenant la clé | ||
Ligne 179 : | Ligne 231 : | ||
== Conclusion == | == Conclusion == | ||
− | L'utilisation d''''OpenDKIM''' est maintenant effective pour les mails envoyés depuis les adresses du domaine @example. | + | L'utilisation d''''OpenDKIM''' est maintenant effective pour les mails envoyés depuis les adresses du domaine @example.tld<br> |
Cet article n'est pas exhaustif sur la configuration d''''OpenDKIM''', il convient d'adapter ces exemples avec la configuration de votre serveur. | Cet article n'est pas exhaustif sur la configuration d''''OpenDKIM''', il convient d'adapter ces exemples avec la configuration de votre serveur. | ||
[[Catégorie:Serveur dédié]] | [[Catégorie:Serveur dédié]] | ||
[[Catégorie:Linux]] | [[Catégorie:Linux]] | ||
+ | [[Catégorie:Mail]] | ||
+ | [[Catégorie:DKIM]] | ||
<br /> | <br /> | ||
<comments /> | <comments /> |
Version du 29 octobre 2015 à 19:55
en:Install DKIM on Postfix under Debian
Introduction
Afin d'éviter de voir finir ses mails dans le dossier spam il peut être intéressant de mettre en place un DKIM dans ses emails.
DKIM ou DomainKeys Identified Mail est une méthode d'authentification des mails. Cette méthode permet de signer un mail avec un identifiant de domaine émetteur, utile pour savoir qui est responsable de l'envoi en cas de réclamations. Vous trouverez plus d'informations sur le DKIM sur la page Wikipedia disponible à cette adresse
Cet article a pour but d'introduire l'installation d'OpenDKIM et sa configuration. Cet article n'est pas exhaustif sur les paramètres de configuration du service, il vous appartient de vérifier la cohérence de la configuration avec votre système.
Pré-requis
L'un des pré-requis essentiel est de conserver son système le plus à jour possible.
apt-get update
apt-get upgrade
Afin de conserver votre système Debian à jour, assurez-vous de posséder une liste des dépôts officiels. Vous pourrez trouver une liste des dépôts disponibles chez Ikoula et les instructions d'installation à cette adresse.
Sur un serveur de production, pensez à effectuer ces opérations pendant les heures creuses afin de minimiser l'impact de vos actions.
Mise en place
Installation d'OpenDKIM
- Tout d'abord installations OpenDKIM
apt-get install opendkim opendkim-tools
Configuration d'OpenDKIM
La configuration d'OpenDKIM s'effectue au travers de deux fichiers: /etc/opendkim.conf et /etc/default/opendkim.
/etc/opendkim.conf
Le fichier principal de configuration d'OpenDKIM.
- Ouvrir le fichier
vi /etc/opendkim.conf
- Ajouter les lignes suivantes au fichier /etc/opendkim.conf, si certaines sont déjà présentes les commenter pour éviter tout problème
AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:17789@localhost
Voici les différents paramètres:
AutoRestart | Redémarrer automatiquement le service en cas d'erreur. |
AutoRestartRate | Le nombre de redémarrage maximum dans un temps donné. Par exemple 10 redémarrages par heure: 10/1h. |
UMAsk | Accorder les permissions totales pour l'utilisateur défini par son userID, et accorder des permissions en lecture et exécution pour les autres utilisateurs. |
Syslog / SyslogSuccess / LogWhy | Activer les journaux détaillés pour le service. |
Canonicalization | La mise en forme canonique des messages de log. |
ExternalIgnoreList | Les hôtes externes autorisés à envoyer des mails depuis ce serveur sans authentification. |
InternalHosts | Les hôtes internes pour lesquels les mails sortants doivent être signés. |
KeyTable | Assure la liaison des noms de clés avec les fichiers de clé. |
SigningTable | La liste des signatures qui seront utilisées pour un message. Le choix se base sur l'adresse expéditrice. |
Mode | Le mode opératoire d'OpenDKIM. (s) signature et (v) vérification. |
PidFile | Emplacement du fichier de pid contenant l'identifiant processus du service. |
SignatureAlgorithm | L'algorithme de chiffrement choisi pour encoder les signatures. |
UserID | L'utilisateur et son groupe qui exécutera le service OpenDKIM |
Socket | Le port d'écoute sur lequel Postifx et OpenDKIM échangeront les messages. Pour écouter en local sur le port 17789: 17789@localhost. |
Ceci est une configuration d'exemple, vous devez faire correspondre les paramètres à votre configuration actuelle et selon les besoins. Vous trouverez plus d'informations à propos du fichier de configuration d'OpenDKIM à cette adresse.
# Log to syslog
#Syslog yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
#UMask 002
# Sign for example.com with key in /etc/mail/dkim.key using
# selector '2007' (e.g. 2007._domainkey.example.com)
#Domain example.com
#KeyFile /etc/mail/dkim.key
#Selector 2007
# Commonly-used options; the commented-out versions show the defaults.
#Canonicalization simple
#Mode sv
#SubDomains no
#ADSPDiscard no
# Always oversign From (sign using actual From and a null From to prevent
# malicious signatures header fields (From and/or others) between the signer
# and the verifier. From is oversigned by default in the Debian pacakge
# because it is often the identity key used by reputation systems and thus
# somewhat security sensitive.
OversignHeaders From
# List domains to use for RFC 6541 DKIM Authorized Third-Party Signatures
# (ATPS) (experimental)
#ATPSDomains example.com
AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:17789@localhost
/etc/default/opendkim
- Ouvrir le fichier
vi /etc/default/opendkim
- Ajouter la ligne suivante
SOCKET="inet:17789@localhost"
Il faut modifier le port si celui-ci est différent dans le fichier de configuration précédent. Il faut être attentif sur le port défini précédemment afin de conserver le même à travers les différents fichiers de configuration.
Configuration de Postfix
- Editer le fichier de configuration de Postifx
vi /etc/postfix/main.cf
- Vérifier que les lignes suivantes sont présentes et dé-commentées
milter_protocol = 2
milter_default_action = accept
- Si des filtres anti-spam sont installés il faut ajouter OpenDKIM à la liste
smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:17789
non_smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:17789
- Sinon ajouter OpenDKIM
smtpd_milters = inet:localhost:17789
non_smtpd_milters = inet:localhost:17789
Création des dossiers
Nous allons à présent créer les dossiers qui vont contenir toutes les données d'OpenDKIM comme les hôtes, les signatures, etc...
- Créer la structure
mkdir /etc/opendkim
mkdir /etc/opendkim/keys
Autoriser les hôtes
Nous allons maintenant spécifier les hôtes autorisés à signer les mails avec OpenDKIM.
- Créer le fichier /etc/opendkim/TrustedHosts
vi /etc/opendkim/TrustedHosts
- Nous pouvons, afin de déclarer les domaines, utiliser des wildwards (*)
#Ne pas toucher les 3 premieres lignes
127.0.0.1
localhost
192.168.0.1/24
*.example.tld
Ce fichier est un exemple de configuration pour le domaine *.example.tld
- Enregistrer et fermer le fichier TrustedHosts
Dictionnaire de clés
Le fichier dictionnaire est là pour assurer la liaison de chaque domaine à sa clé correspondante.
- Créer le dictionnaire de clé
vi /etc/opendkim/KeyTable
- Ajouter la ligne suivante
mail._domainkey.example.tld example.tld:mail:/etc/opendkim/keys/example.tld/mail.private
Dans cet exemple le domaine example.tld devra aller chercher sa clé dans /etc/opendkim/keys/example.tld/mail.private
Il est important que vous adaptiez cette configuration à votre domaine.
Dictionnaire de signature
Le fichier dictionnaire de signature est là pour assurer la liaison de chaque adresse mail vers son domaine correspondant.
- Créer le dictionnaire de signature
vi /etc/opendkim/SigningTable
- Ajouter la ligne suivante ( l'utilisation des wildcards est autorisée )
*@example.tld mail._domainkey.example.tld
Dans cet exemple les adresse en @example.tld devront être redirigées vers le sélecteur mail._domainkey.example.tld.
Il est important que vous adaptiez cette configuration à votre domaine.
Génération des clés publiques et privées
Nous allons à présent générer nos paires de clés publiques et privées.
- Se déplacer dans le dossier qui recevra les clés
cd /etc/opendkim/keys
- Créer un dossier pour notre nouveau domaine example.tld
mkdir example.tld
- Se déplacer dans le dossier du domaine
cd example.tld
- Générer les clés pour notre domaine example.tld
opendkim-genkey -s mail -d example.tld
L'option -s permet de spécifier un sélecteur et -d le domaine. Cette commande va créer deux fichiers mail.private la clé privée et mail.txt la clé publique.
- Changer le propriétaire de la clé privée
chown opendkim:opendkim mail.private
Ajout des clés publiques aux enregistrements DNS
Nous possédons à présent nos clés publiques, nous devons maintenant les ajouter dans les enregistrements DNS.
- Récupérons notre clé publique
cat /etc/opendkim/keys/example.tld/mail.private
Vous devriez récupérer une ligne semblable à cette ligne d'exemple :
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5N3lnvvrYgPCRSoqn+awTpE+iGY" ; ----- DKIM key mail for example.tld
- Copier la clé, la partie "v=DKIM1 ... +iGY", dans notre exemple
- Ajouter un enregistrement DNS TXT contenant la clé
La propagation DNS peut prendre quelques heures pour être effective ( de 24h à 48h ).
- Redémarrer les services Postfix et OpenDKIM
service postfix restart
service opendkim restart
Conclusion
L'utilisation d'OpenDKIM est maintenant effective pour les mails envoyés depuis les adresses du domaine @example.tld
Cet article n'est pas exhaustif sur la configuration d'OpenDKIM, il convient d'adapter ces exemples avec la configuration de votre serveur.
Activer l'actualisation automatique des commentaires