Configuration DKIM · 5 min read · Oct 14, 2025

Configurer DKIM (DomainKeys Identified Mail) Fonctionnant Avec Postfix Sur CentOS En Utilisant OpenDKIM

Configurer DKIM (DomainKeys Identified Mail) Fonctionnant Avec Postfix Sur CentOS En Utilisant OpenDKIM

Version 1.0
Auteur : Eladio Martinez < [email protected] >
http://twitter.com/mafecsllc

Ce tutoriel montre comment faire fonctionner DKIM sur une machine CentOS exécutant Postfix en utilisant OpenDKIM. Je vais également couvrir quelques conseils de dépannage simples et des conseils pour les futures mises à jour de votre installation OpenDKIM.

1 Exigences

Ce tutoriel suppose que vous avez une installation CentOS entièrement fonctionnelle exécutant les services suivants :

  • Postfix 2.3.3 ou mieux actuellement en cours d’exécution.
  • Sendmail est désactivé.

2 Remarques préliminaires

J’exécute toutes les étapes de ce tutoriel avec des privilèges root, j’exécute actuellement CentOS 6.3 avec OpenDKIM version 2.4.2 et j’utiliserai example.com comme domaine principal pour ce tutoriel.

3 Télécharger et installer OpenDKIM

Vous aurez également besoin d’installer les paquets de développement OpenSSL et Sendmail, car ils contiennent certaines “bibliothèques” nécessaires pour faire fonctionner OpenDKIM.

yum install sendmail-devel openssl-devel

Téléchargez OpenDKIM dans le répertoire /usr/local/src :

cd /usr/local/src
wget http://sourceforge.net/projects/opendkim/files/opendkim-2.4.2.tar.gz

Extrayez, configurez, compilez et installez OpenDKIM avec :

tar zxvf opendkim-2.4.2.tar.gz
cd opendkim-2.4.2
./configure –sysconfdir=/etc –prefix=/usr/local –localstatedir=/var
make
make install

Notez que la commande ./configure inclut quelques options très importantes, qui seront passées au script de démarrage créé lorsque la commande configure s’exécute. La première indique au système où se trouvera le fichier de configuration d’OpenDKIM, la seconde définit le préfixe préféré pour certains autres emplacements de fichiers importants, et la dernière contrôle le répertoire où le fichier PID pour OpenDKIM sera stocké.

4 Créer un nouvel utilisateur

Ajoutez un nouvel utilisateur pour DKIM appelé opendkim avec les options suivantes :

useradd -r -U -s /sbin/nologin opendkim

Cette commande créera un nouveau compte système (-r) et un groupe (-g) appelé opendkim et n’assignera aucun accès shell à cet utilisateur (-s).

5 Créer des répertoires de travail

Créez de nouveaux répertoires pour OpenDKIM et donnez-leur la propriété et les permissions appropriées avec :

mkdir -p /etc/opendkim/keys
chown -R opendkim:opendkim /etc/opendkim
chmod -R go-wrx /etc/opendkim/keys

6 Copier le script de démarrage dans /etc/init.d/

Le paquet source d’OpenDKIM comprend un répertoire contrib qui contient un script d’init personnalisé à utiliser avec tous les systèmes compatibles RedHat, y compris Fedora et CentOS. Vous pouvez le copier dans votre répertoire /etc/init.d/ pour faciliter le démarrage, l’arrêt, le redémarrage et le rechargement d’OpenDKIM :

cp /usr/local/src/opendkim-2.4.2/contrib/init/redhat/opendkim /etc/init.d/

Maintenant, définissez les permissions correctes pour le script d’init :

chmod 755 /etc/init.d/opendkim

7 Générer des clés pour la signature

Vous devez générer une clé privée et une clé publique pour chacun des domaines pour lesquels vous souhaitez signer des e-mails. La clé privée est stockée sur votre serveur, tandis que la clé publique est publiée dans les enregistrements DNS de votre domaine afin que les serveurs de messagerie récepteurs puissent vérifier vos e-mails signés DKIM.

Vous devez maintenant décider quel sera le nom de votre sélecteur. Un sélecteur est un mot-clé unique associé aux deux clés (publique et privée), inclus dans toutes les signatures et publié dans vos enregistrements DNS. Pour simplifier, j’utilise le mot default comme mon sélecteur par défaut. N’hésitez pas à choisir quelque chose de différent, mais si vous le faites, vous devrez l’utiliser de manière cohérente tout au long de votre configuration. De plus, bien que cela ne doive pas être dit, vous devez utiliser votre domaine de messagerie au lieu de example.com dans les étapes suivantes.

Créez vos clés :

mkdir /etc/opendkim/keys/example.com
/usr/local/bin/opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s default
chown -R opendkim:opendkim /etc/opendkim/keys/example.com
mv /etc/opendkim/keys/example.com/default.private /etc/opendkim/keys/example.com/default

Dans cet exemple, j’ai utilisé l’option -D (répertoire), l’option -d (domaine) et les options -s (sélecteur). C’est tout ce dont vous avez besoin pour faire fonctionner cela.

8 Éditer les fichiers de configuration

Vous devez créer ou éditer quatre fichiers :

  • 1 /etc/opendkim.conf –- fichier de configuration principal d’OpenDKIM
  • 2 /etc/opendkim/KeyTable –- une liste de clés disponibles pour la signature
  • 3 /etc/opendkim/SigningTable – une liste de domaines et de comptes autorisés à signer
  • 4 /etc/opendkim/TrustedHosts –- une liste de serveurs à “faire confiance” lors de la signature ou de la vérification

Créez le fichier /etc/opendkim.conf :

vi /etc/opendkim.conf

Assurez-vous que votre fichier ressemble à ceci :

##
## opendkim.conf -- fichier de configuration pour le filtre OpenDKIM
##
AutoRestart             Yes
AutoRestartRate         10/1h
Canonicalization        relaxed/simple
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
LogWhy                  Yes
Mode                    sv
PidFile                 /var/run/opendkim/opendkim.pid
SignatureAlgorithm      rsa-sha256
SigningTable            refile:/etc/opendkim/SigningTable
Socket                  inet:8891@localhost
Syslog                  Yes
SyslogSuccess           Yes
TemporaryDirectory      /var/tmp
UMask                   022
UserID                  opendkim:opendkim

Créez le fichier /etc/opendkim/KeyTable :

vi /etc/opendkim/KeyTable

Assurez-vous que votre fichier ressemble à ceci :

default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default

Le fichier KeyTable indique à OpenDKIM où trouver vos clés. Chaque entrée dans le fichier KeyTable est une seule ligne pour chaque emplacement de clé (par exemple, tout le texte dans l’exemple ci-dessus doit être sur une seule ligne dans votre fichier). Si vous prévoyez d’utiliser plusieurs clés (pour signer des e-mails pour des domaines virtuels avec différentes clés), vous devrez créer une ligne séparée dans le fichier KeyTable pour chaque domaine.

Créez le fichier /etc/opendkim/SigningTable :

vi /etc/opendkim/SigningTable

Assurez-vous que votre fichier ressemble à ceci :

*@example.com default._domainkey.example.com

Le fichier SigningTable indique à OpenDKIM comment utiliser vos clés, c’est-à-dire quels expéditeurs doivent utiliser quels sélecteurs pour leurs signatures. Dans l’exemple ci-dessus, je dis que tout le monde () envoyant des e-mails depuis le serveur “example.com” doit utiliser le sélecteur nommé “default”. Il est important de noter que le symbole wildcard ne fonctionnera que si l’option SigningTable utilise le préfixe refile: avant le nom du fichier.

Créez le fichier /etc/opendkim/TrustedHosts :

vi /etc/opendkim/TrustedHosts

Assurez-vous que votre fichier ressemble à ceci :

127.0.0.1
hostname1.example1.com
example1.com
hostname1.example2.com
example2.com

Le fichier TrustedHosts indique à OpenDKIM qui peut utiliser vos clés. Comme il est référencé par la directive ExternalIgnoreList dans votre fichier de configuration, OpenDKIM ignorera cette liste d’hôtes lors de la vérification des e-mails entrants et, comme il est également référencé par la directive InternalHosts, cette même liste d’hôtes sera considérée comme “interne”, et OpenDKIM signera leurs e-mails sortants.

IMPORTANT : Assurez-vous de lister l’adresse IP pour localhost (127.0.0.1) dans le fichier TrustedHosts ou OpenDKIM ne signera pas les e-mails envoyés depuis ce serveur. Si vous avez plusieurs serveurs sur le même réseau qui relaient des e-mails via ce serveur et que vous souhaitez également signer leurs e-mails, ils doivent être listés dans le fichier TrustedHosts. Mettez chaque entrée sur sa propre ligne. Une entrée peut être un nom d’hôte, un nom de domaine (par exemple, “example.com”), une adresse IP, une adresse IPv6 (y compris une adresse IPv4 mappée) ou une spécification IP de style CIDR (par exemple, “192.168.1.0/24”).

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.