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/opendkim7 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:opendkimCré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/defaultLe 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.comLe 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.comLe 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”).
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.