apt install opendkim opendkim-tools
S'assurer de la présence des répertoires suivants, sinon les créer et leur donner les droits corrects :
mkdir -p /etc/opendkim/keys chmod 700 /etc/opendkim/keys chmod opendkim:opendkim -R /etc/opendkim
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 UserID opendkim:opendkim Socket inet:8892@localhost UMask 0002 Syslog yes SyslogSuccess yes LogWhy yes Canonicalization relaxed/simple SignatureAlgorithm rsa-sha256 OversignHeaders From RemoveOldSignatures yes
RSA-SHA-1
mais il est préférable d'utiliser RSA-SHA256
Créer les fichiers :
127.0.0.1 localhost 192.168.0.1/24 *.domain.tld
Adapter à votre config : l'IP LAN + la liste complète des domaines à gérer
default._domainkey.domain.tld domain.tld:mail:/etc/opendkim/keys/domain.tld/default.private
*@domain.tld default._domainkey.domain.tld
On créé le répertoire portant le nom du domaine :
mkdir /etc/opendkim/keys/example.tld cd /etc/opendkim/keys/example.tld
et on utilise l'outil idoine :
opendkim-genkey -h sha256 -b 4096 -d domain.tld -s default -v
sha256
pour le moment, car ECDSA
n'est pas encore supporté par tous les serveurs SMTP tiers qui vérifieront votre clé)Cette commande va créer deux fichiers :
Tout d'abord on donne les bons droits à la clé privée :
chmod 600 default.private && chown opendkim:opendkim default.private
L'autre fichier, lui, contient l'enregistrement DNS à appliquer sur le domaine concerné :
default._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3F9cyVCFx8na1GTzGAJfsl3KupDUhwp8GFqre77HPsE3Zmp+o9Ze1b916g3q6Xcggrk6qot91O9/8IubRheFIvUVZWFt05YeK6bbX5gLDattfgyC4VUHY3ZJzIAAH/S2x4ZfMpo0HpVTgxb7VJEHTlbnyNrXOEd3jxzzE5xKrV4hQG8y9oXYGn9Acolz5E6BBC8j7qid8/TtSq" "wH3p9Gu+M1Zn5Ajjm+NM5hhtQUF3Xt3QGjh673yJS1iZl30/vINCMvnc0AZpyndWv5BhnGRV60FKEvozuBL5pUuK1Mt4f0fPZursfDwEpGW8wQ1rKKzLTZ68VrIOxZMyffyI18ywIDAQAB" ) ; ----- DKIM key default for domain.tld
Pour bind, les 3 lignes peuvent êtres fusionnées en une, à condition de ne pas retirer les guillemets.
Editer la conf de postfix et prendre en compte ces paramètres :
smtpd_milters = inet:127.0.0.1:8892 non_smtpd_milters = inet:127.0.0.1:8892 milter_protocol = 2 milter_default_action = accept in_flow_delay = 0s
DKIM-Signature
à tous les messages sortants (option s d'openDKIM)On va régler le service opendkim à attendre 5 secondes avant de redémarrer Il faut créer un fichier override pour systemd :
[Service] RestartSec=5s
puis
systemctl daemon-reload
Ne pas oublier de démarrer/redémarrer les services opendkim et postfix
systemctl restart opendkim.service postfix.service