David Mercereau : OpenDKIM & Postfix sur debian squeeze
lundi 22 juillet 2013 à 13:40Après mettre passé de Amavis/SpamAssasin à Dspam j’ai voulu ré-implémenter DKIM (que j’avais implémenté avec Amavis) cette fois-ci avec OpenDKIM :
Installation :
$ aptitude install opendkim $ mkdir -p /etc/dkim
Modification du fichier de config postfix (/etc/postfix/main.cf)
> smtpd_milters = inet:127.0.0.1:8891 > non_smtpd_milters = $smtpd_milters > milter_default_action = accept > milter_protocol = 2
Modification de la configuration d’OpenDKIM (/etc/opendkim.conf) :
Socket inet:8891@localhost LogWhy yes MilterDebug 1 # 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 KeyTable /etc/dkim/KeyTable SigningTable /etc/dkim/SigningTable ExternalIgnoreList /etc/dkim/TrustedHosts InternalHosts /etc/dkim/TrustedHosts
Il faut maintenant générer les clefs & ce script va nous y aider :
#!/bin/bash # Script sous licence BEERWARE SELECTOR="mail" REPERTOIRE="/etc/dkim" DOMAINE=$1 USERDKIM="opendkim" GROUPDKIM="opendkim" if ! [ -d "${REPERTOIRE}" ] ; then echo "Le répertoire ${REPERTOIRE} n'existe pas." exit 1 fi if [ -z ${DOMAINE} ] ; then echo "Vous devez avoir renseigner le domaine en argument du script." exit 2 fi if [ -d "${REPERTOIRE}/keys/${DOMAINE}" ] ; then echo "Le répertoire ${REPERTOIRE}/keys/${DOMAINE} existe déjà... vous devez déjà avoir dû lancé le script." exit 3 else mkdir -p ${REPERTOIRE}/keys/${DOMAINE} fi opendkim-genkey -D ${REPERTOIRE}/keys/${DOMAINE} -r -d ${DOMAINE} -s ${SELECTOR} chown ${USERDKIM}:${GROUPDKIM} ${REPERTOIRE}/keys/${DOMAINE}/${SELECTOR}.private echo "${SELECTOR}._domainkey.${DOMAINE} ${DOMAINE}:${SELECTOR}:${REPERTOIRE}/keys/${DOMAINE}/${SELECTOR}.private" >> ${REPERTOIRE}/KeyTable echo "${DOMAINE} ${SELECTOR}._domainkey.${DOMAINE}" >> ${REPERTOIRE}/SigningTable echo "${DOMAINE}" >> ${REPERTOIRE}/TrustedHosts if [ -f ${REPERTOIRE}/keys/${DOMAINE}/${SELECTOR}.txt ]; then cat ${REPERTOIRE}/keys/${DOMAINE}/${SELECTOR}.txt else echo "Une erreur s'est produite !" fi
Exemple d’utilisation du script :
$ ./addDkimKey.sh mercereau.info mail._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEOxRe2sVbsmDYbnB1pRWdx5U6FgZiwUKRl0gPFmsgPNA035P7gBLmhXrmALeJLZv0n7ARkStoIvl/ZNAbUep/YUgMynW5q2fsh4Pa/q82ocPKRKGLBYTxFDa+tyhG0oi5pzI6d37Ji9M40c5DgD/2QqTfyY5ywLqKG47+HuivJQIDAQAB" ; ----- DKIM mail for mercereau.info
Le script vous sort l’enregistrement DNS a ajouter pour terminer la configuration
On redémarre les services :
$ service opendkim restart $ service postfix restart
Et pour finir on test ici ou là.
Il me reste un petit problème : le message est signé par deux fois dans l’entête (même s’il vaut mieux deux fois qu’une) je pense que cela tient au fait qu’il est délivré à DSPAM et que DSPAM lui re-délivre… Si quelqu’un à une idée lumineuse qu’il n’hésite pas !
Ce tuto à été très fortement inspiré par le tuto de isalo.org
Original post of David Mercereau.Votez pour ce billet sur Planet Libre.
Articles similaires
- David Mercereau : ISPconfig – service email : DKIM & Amavis (25/06/2013)
- David Mercereau : [ispconfig] Remplacer Amavis/Spamassassin par Dspam (19/07/2013)
- David Mercereau : [rkhunter] Warning The file properties have changed (09/01/2013)
- David Mercereau : Serveur proxy Squid3 avec SSL (rebuild debian squeeze package) (30/05/2012)
- Openwebtech : Simple install postfix + courier-imap courier-pop + roundcube (21/08/2011)