Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
sysadmin:dkim [2015/04/16 15:35] james page complete |
sysadmin:dkim [2017/10/26 11:27] (Version actuelle) james [Intégration postfix-opendkim] rectification droits clefs privées |
||
---|---|---|---|
Ligne 44: | Ligne 44: | ||
* On commence par créer un répertoire pour chaque domaine/sous domaine utilisé, comme par exemple pour domaine1.com et sous.domaine2.net :<code># mkdir -p /etc/opendkim/keys/domaine1.com/ | * On commence par créer un répertoire pour chaque domaine/sous domaine utilisé, comme par exemple pour domaine1.com et sous.domaine2.net :<code># mkdir -p /etc/opendkim/keys/domaine1.com/ | ||
# mkdir -p /etc/opendkim/keys/domaine2.net/sous/</code> | # mkdir -p /etc/opendkim/keys/domaine2.net/sous/</code> | ||
- | * Concernant la génération de clefs je suggère de choisir pour le //selector// une forme type SERVEUR-DATE où SERVEUR est le nom du serveur utilisant la clef et DATE est la date format US (YYYYMMDD) de génération de la clef : cela permet d'ajouter facilement de nouvelles clefs, de nouveaux serveurs et de publier tout ça dans nos DNS sans risquer de problèmes avec les différents niveaux de cache (certains client peuvent continuer à demander une ancienne clef le temps de la propagation DNS). Les requetes DNS associées seront donc selector._domainkey.example.com" | + | Concernant la génération de clefs je suggère de choisir pour le //selector// une forme type SERVEUR-DATE où SERVEUR est le nom du serveur utilisant la clef et DATE est la date format US (YYYYMMDD) de génération de la clef : cela permet d'ajouter facilement de nouvelles clefs, de nouveaux serveurs et de publier tout ça dans nos DNS sans risquer de problèmes avec les différents niveaux de cache (certains client peuvent continuer à demander une ancienne clef le temps de la propagation DNS). |
+ | |||
+ | Les requetes DNS associées seront donc selector._domainkey.example.com" | ||
* Génération des clefs : par défaut une clef de 1024 bits sera générée, sinon on peut spécifier la longueur avec l'option **-b**, comme par exemple -b 2048. On spécifie le //selector// comme mentionné ci dessus, et le domaine avec **-d** ce qui nous donne :<code> | * Génération des clefs : par défaut une clef de 1024 bits sera générée, sinon on peut spécifier la longueur avec l'option **-b**, comme par exemple -b 2048. On spécifie le //selector// comme mentionné ci dessus, et le domaine avec **-d** ce qui nous donne :<code> | ||
# opendkim-genkey -b 2048 -D /etc/opendkim/keys/domaine1.com/ -s mx1-20150403 -d domaine1.com | # opendkim-genkey -b 2048 -D /etc/opendkim/keys/domaine1.com/ -s mx1-20150403 -d domaine1.com | ||
# opendkim-genkey -D /etc/opendkim/keys/domaine2.net/sous/ -s mx1-20150402 -d sous.domaine2.net</code> | # opendkim-genkey -D /etc/opendkim/keys/domaine2.net/sous/ -s mx1-20150402 -d sous.domaine2.net</code> | ||
Dans ce cas les selector sont donc mx1-20150403 pour domaine1.com et mx1-20150402 pour sous.domaine2.net. | Dans ce cas les selector sont donc mx1-20150403 pour domaine1.com et mx1-20150402 pour sous.domaine2.net. | ||
- | Ces commandes génèrent chacun 2 fichiers : un fichier **selector**.private et **selector**.txt contenant respectivement la celf privée et la clef publique qu'il faudra ensuite ajouter à la configuration DNS de votre domaine. | + | Ces commandes génèrent chacun 2 fichiers : un fichier **selector**.private et **selector**.txt contenant respectivement la clef privée et la clef publique qu'il faudra ensuite ajouter à la configuration DNS de votre domaine. |
===== Intégration postfix-opendkim ===== | ===== Intégration postfix-opendkim ===== | ||
Ligne 57: | Ligne 59: | ||
# chgrp opendkim /etc/opendkim/keys/domaine2.net/sous/* | # chgrp opendkim /etc/opendkim/keys/domaine2.net/sous/* | ||
# chmod g+r /etc/opendkim/keys/domaine2.net/sous/*</code> | # chmod g+r /etc/opendkim/keys/domaine2.net/sous/*</code> | ||
+ | * Restreindre l'acces aux clefs privées (sinon de toutes facons opendkim ne marchera pas :p ) : | ||
+ | * <code> | ||
+ | # chown opendkim:opendkim /etc/opendkim/keys/domaine1.com/*private | ||
+ | # chmod 400 /etc/opendkim/keys/domaine1.com/*private | ||
+ | # chown opendkim:opendkim /etc/opendkim/keys/domaine2.net/sous/*private | ||
+ | # chmod 400 /etc/opendkim/keys/domaine2.net/sous/*private | ||
+ | </code> | ||
* Dans le cas ou votre postfix tourne dans un chroot (debian/ubuntu/..), il faut créer le répertoire qui contiendra le socket de communication entre postfix et dkim :<code> | * Dans le cas ou votre postfix tourne dans un chroot (debian/ubuntu/..), il faut créer le répertoire qui contiendra le socket de communication entre postfix et dkim :<code> | ||
- | # mkdir /var/spool/postfix/var/run/opendkim/ | + | # mkdir -p /var/spool/postfix/var/run/opendkim/ |
# chgrp opendkim /var/spool/postfix/var/run/opendkim/ | # chgrp opendkim /var/spool/postfix/var/run/opendkim/ | ||
# chmod g+w /var/spool/postfix/var/run/opendkim/ | # chmod g+w /var/spool/postfix/var/run/opendkim/ | ||
</code> puis ajouter l'utilisateur postfix au groupe opendkim :<code> | </code> puis ajouter l'utilisateur postfix au groupe opendkim :<code> | ||
# adduser postfix opendkim</code> | # adduser postfix opendkim</code> | ||
- | * On peut vérifier que le socket a bien été créé : <code>ls -l /var/spool/postfix/var/run/opendkim/</code> | ||
===== Ajouter les clefs publiques aux zones DNS ===== | ===== Ajouter les clefs publiques aux zones DNS ===== | ||
Ligne 85: | Ligne 93: | ||
EOF | EOF | ||
</code> | </code> | ||
- | * Créer le fichier **/etc/opendkim/KeyTable** avec le contenu suivant : (adapatez les selector et le chemin des fichiers de clefs)<code> | + | <note>Ne pas oublier que **seuls les mails provenant des noms DNS/adresses IPs contenues dans ce fichier seront effectivement signés (sans authentification préalable)** : il peut donc êre utile de faire coïncider le contenu de ce fichier avec le //mynetworks// de votre postfix</note> |
+ | * Créer le fichier **/etc/opendkim/KeyTable** avec le contenu suivant : (adaptez les selector et le chemin des fichiers de clefs)<code> | ||
key.for.domaine1.com domaine1.com:mx1-20150403:/etc/opendkim/keys/domaine1.com/mx1-20150403.private | key.for.domaine1.com domaine1.com:mx1-20150403:/etc/opendkim/keys/domaine1.com/mx1-20150403.private | ||
key.for.sous.domaine2.net sous.domaine2.net:mx1-20150402:/etc/opendkim/keys/domaine2.net/sous/mx1-20150402.private | key.for.sous.domaine2.net sous.domaine2.net:mx1-20150402:/etc/opendkim/keys/domaine2.net/sous/mx1-20150402.private | ||
</code> | </code> | ||
<note>L'utilisateur averti aura remarqué que chaque ligne est de la forme : <code>nom_donne_a_la_clef domaine:selector:/chemin/complet/vers/clef.private</code></note> | <note>L'utilisateur averti aura remarqué que chaque ligne est de la forme : <code>nom_donne_a_la_clef domaine:selector:/chemin/complet/vers/clef.private</code></note> | ||
- | * Enfin créer le fichier de concordance domaines/clefs reprenant les noms ci dessus :<code> | + | * Enfin créer le fichier de concordance domaines/clefs **/etc/opendkim/SigningTable** reprenant les noms ci dessus :<code> |
- | *@domaine1.com key.for.lists.domaine1.com | + | *@domaine1.com key.for.domaine1.com |
*@sous.domaine2.net key.for.sous.domaine2.net | *@sous.domaine2.net key.for.sous.domaine2.net | ||
</code> | </code> | ||
* Il ne reste plus qu'a redémarrer opendkim :<code># service opendkim restart</code> | * Il ne reste plus qu'a redémarrer opendkim :<code># service opendkim restart</code> | ||
+ | * On peut vérifier que le socket a bien été créé : <code>ls -l /var/spool/postfix/var/run/opendkim/</code> | ||
===== Paramétrage postfix pour utiliser DKIM ===== | ===== Paramétrage postfix pour utiliser DKIM ===== | ||
Ligne 130: | Ligne 140: | ||
</code> | </code> | ||
</note> | </note> | ||
- | ==== Vérification du fonctionnement ==== | + | ===== Vérification du fonctionnement ===== |
Pour vérifier le fonctionnement : | Pour vérifier le fonctionnement : | ||
* cherchez les logs d'opendkim dans vos logs de serveur mail | * cherchez les logs d'opendkim dans vos logs de serveur mail | ||
Ligne 138: | Ligne 148: | ||
Et bien sur une fois que tout fonctionne pensez à diminuer les logs opendkim (voir plus haut) | Et bien sur une fois que tout fonctionne pensez à diminuer les logs opendkim (voir plus haut) | ||
- | ==== Références ==== | + | ===== Aller plus loin ===== |
+ | Vous voudrez peut être jeter un coup d’œil a [[sysadmin:tips:mailman|cette page sur l'utilisation de mailman avec DKIM]] | ||
+ | |||
+ | ===== Références ===== | ||
* https://www.tty1.net/blog/2014/dkim-with-postfix_en.html | * https://www.tty1.net/blog/2014/dkim-with-postfix_en.html | ||