GNU/Linux >> Tutoriels Linux >  >> Cent OS

Installer et configurer OpenDKIM sur le serveur de messagerie CentOS 8/RHEL 8

Auparavant, je vous ai montré comment configurer SPF et DKIM sur le serveur de messagerie CentOS/RHEL. OpenDKIM et Amavis sont deux logiciels courants capables de signer et de vérifier DKIM sous Linux. Dans ce tutoriel, j'ai utilisé Amavis, car à l'époque OpenDKIM n'est inclus dans aucun référentiel CentOS 8/RHEL 8. À partir de maintenant, OpenDKIM est inclus dans le référentiel EPEL. Certaines personnes préfèrent utiliser OpenDKIM, je vais donc vous montrer comment faire dans ce tutoriel.

Qu'est-ce que DKIM ?

DKIM (DomainKeys Identified Mail) est un type d'enregistrements TXT dans le DNS qui peut aider à empêcher l'usurpation d'e-mails et à envoyer des e-mails légitimes dans la boîte de réception du destinataire au lieu du dossier spam. DKIM utilise une clé privée pour ajouter une signature aux e-mails envoyés depuis votre domaine . Les serveurs SMTP de réception vérifient la signature à l'aide de la clé publique correspondante, qui est publiée dans les enregistrements DNS de votre domaine.

Désactiver DKIM dans Amavis

Si vous avez suivi mon précédent tutoriel Amavis, mais que vous souhaitez maintenant utiliser OpenDKIM, vous devez désactiver DKIM dans Amavis. Modifiez le fichier de configuration principal.

sudo nano /etc/amavisd/amavisd.conf

Trouvez les lignes suivantes.

$enable_dkim_verification = 1;  # enable DKIM signatures verification
$enable_dkim_signing = 1;       # load DKIM signing code, keys defined by dkim_key

Ajouter un # caractère au début de chaque ligne pour les commenter.

#$enable_dkim_verification = 1;  # enable DKIM signatures verification
#$enable_dkim_signing = 1;       # load DKIM signing code, keys defined by dkim_key

Enregistrez et fermez le fichier. Puis redémarrez Amavis.

sudo systemctl restart amavisd

Étape 1 :Installez et configurez OpenDKIM sur CentOS 8/RHEL8

Activez d'abord le référentiel EPEL (Extra Packages for Enterprise Linux) et installez OpenDKIM.

sudo dnf install epel-release

sudo dnf install opendkim

Modifier le fichier de configuration principal d'OpenDKIM.

sudo nano /etc/opendkim.conf

Trouvez la ligne suivante.

Mode     v

Par défaut, OpenDKIM s'exécute en mode de vérification (v), qui vérifiera la signature DKIM des e-mails entrants. Nous devons signer les e-mails sortants. Remplacez donc cette ligne par la suivante pour activer le mode de signature.

Mode           sv

Trouvez ensuite les lignes suivantes.

## Specifies whether or not the filter should generate report mail back
## to senders when verification fails and an address for such a purpose
## is provided. See opendkim.conf(5) for details.
SendReports yes

## Specifies the sending address to be used on From: headers of outgoing
## failure reports. By default, the e-mail address of the user executing
## the filter is used ([email protected]).
# ReportAddress "Example.com Postmaster" <[email protected]>

Lorsqu'une vérification de signature échoue et que la signature incluait une demande de rapport ("r=y") et que le domaine de signature annonce une adresse de rapport (c'est-à-dire ra=utilisateur) dans un enregistrement de rapport dans le DNS, OpenDKIM enverra un rapport structuré à cette adresse contenant les détails nécessaires pour reproduire le problème. Vous pouvez utiliser une adresse e-mail d'expéditeur particulière pour envoyer le rapport. Décommentez le ReportAddress paramètre et modifier l'adresse e-mail. Notez que cela ne créera pas de problème de rétrodiffusion, car les e-mails de rapport seront envoyés à une adresse e-mail spécifiée dans l'enregistrement DNS du domaine de l'expéditeur.

Trouvez la ligne suivante et commentez-la, car nous utiliserons des clés distinctes pour chaque nom de domaine.

KeyFile   /etc/opendkim/keys/default.private

Ensuite, trouvez les 4 lignes suivantes et décommentez-les.

# KeyTable            /etc/opendkim/KeyTable

# SigningTable        refile:/etc/opendkim/SigningTable

# ExternalIgnoreList  refile:/etc/opendkim/TrustedHosts

# InternalHosts       refile:/etc/opendkim/TrustedHosts

Enregistrez et fermez le fichier.

Étape 2 :Créer une table de signature, une table de clés et un fichier d'hôtes de confiance

Modifier la table de signature fichier.

sudo nano /etc/opendkim/SigningTable

Ajoutez la ligne suivante à la fin de ce fichier. Cela indique à OpenDKIM que si un expéditeur sur votre serveur utilise un @your-domain.com adresse, alors elle doit être signée avec la clé privée identifiée par 20200308._domainkey.your-domain.com .

*@your-domain.com    20200308._domainkey.your-domain.com

20200308 est le sélecteur DKIM. Un nom de domaine peut avoir plusieurs clés DKIM. Le sélecteur DKIM vous permet de choisir une clé DKIM particulière. Vous pouvez utiliser n'importe quel nom pour le sélecteur DKIM, mais j'ai trouvé qu'il est pratique d'utiliser la date actuelle (8 mars 2020) comme sélecteur DKIM. Enregistrez et fermez le fichier. Modifiez ensuite la table de clés fichier.

sudo nano /etc/opendkim/KeyTable

Ajoutez la ligne suivante, qui spécifie l'emplacement de la clé privée DKIM.

20200308._domainkey.your-domain.com     your-domain.com:20200308:/etc/opendkim/keys/your-domain.com/20200308.private

Enregistrez et fermez le fichier. Ensuite, modifiez le fichier des hôtes de confiance.

sudo nano /etc/opendkim/TrustedHosts

127.0.0.0.1 et ::1 sont inclus dans ce fichier par défaut. Ajoutez maintenant la ligne suivante. Cela indique à OpenDKIM que si un e-mail provient de votre propre nom de domaine, OpenDKIM ne doit pas effectuer de vérification DKIM sur l'e-mail.

*.your-domain.com

Enregistrez et fermez le fichier.

Étape 3 :Générer une paire de clés privée/publique

Étant donné que DKIM est utilisé pour signer les messages sortants et vérifier les messages entrants, nous devons générer une clé privée pour la signature et une clé publique pour le vérificateur à distance. La clé publique sera publiée dans le DNS.

Créez un dossier séparé pour le domaine.

sudo mkdir /etc/opendkim/keys/your-domain.com

Générer des clés en utilisant opendkim-genkey outil.

sudo opendkim-genkey -b 2048 -d your-domain.com -D /etc/opendkim/keys/your-domain.com -s 20200308 -v

La commande ci-dessus créera des clés de 2048 bits. -d (domain) spécifie le domaine. -D (directory) spécifie le répertoire où les clés seront stockées. J'utilise 20200308 comme sélecteur DKIM. Une fois la commande exécutée, la clé privée sera écrite dans 20200308.private fichier et la clé publique seront écrites dans 20200308.txt fichier.

Par défaut, seul root peut lire et écrire dans les fichiers de clé. Faire opendkim en tant que propriétaire de la clé privée.

sudo chown opendkim:opendkim /etc/opendkim/keys/ -R

Étape 4 :Publiez votre clé publique dans les enregistrements DNS

Afficher la clé publique

sudo cat /etc/opendkim/keys/your-domain.com/20200308.txt

La chaîne après le p paramètre est la clé publique.

Dans votre gestionnaire DNS, créez un enregistrement TXT, entrez 20200308._domainkey dans le champ du nom. (Vous devez remplacer 20200308 par votre propre sélecteur DKIM.) Revenez ensuite à la fenêtre du terminal, copiez tout entre parenthèses et collez-le dans le champ de valeur de l'enregistrement DNS. Vous devez supprimer tous les guillemets doubles et les sauts de ligne dans le champ de valeur. Si vous ne les supprimez pas, le test de clé à l'étape suivante échouera probablement.

Étape 5 :Tester la clé DKIM

Entrez la commande suivante sur votre serveur CentOS 8/RHEL 8 pour tester votre clé.

sudo opendkim-testkey -d your-domain.com -s 20200308 -vvv

Si tout est OK, vous verrez la key OK message.

opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key '20200308._domainkey.linuxbabe.com'
opendkim-testkey: key OK

Notez que votre enregistrement DKIM peut avoir besoin d'un certain temps pour se propager sur Internet. Selon le bureau d'enregistrement de domaine que vous utilisez, votre enregistrement DNS peut être propagé instantanément, ou sa propagation peut prendre jusqu'à 24 heures. Vous pouvez aller sur https://www.dmarcanalyzer.com/dkim/dkim-check/, entrez 20200308 en tant que sélecteur et entrez votre nom de domaine pour vérifier la propagation des enregistrements DKIM.

Si vous voyez "Clé non sécurisée", ne paniquez pas. C'est parce que DNSSEC n'est pas activé sur votre nom de domaine. DNSSEC est une norme de sécurité pour les requêtes DNS sécurisées. La plupart des noms de domaine n'ont pas activé DNSSEC. Vous pouvez continuer à suivre ce guide.

Nous pouvons maintenant démarrer le service opendkim.

sudo systemctl start opendkim

Et activez le démarrage automatique au démarrage.

sudo systemctl enable opendkim

OpenDKIM écoute sur 127.0.0.1:8891 .

Étape 6 :Connectez Postfix à OpenDKIM

Modifier le fichier de configuration principal de Postfix.

sudo nano /etc/postfix/main.cf

Ajoutez les lignes suivantes à la fin de ce fichier, afin que Postfix puisse appeler OpenDKIM via le protocole milter. Notez que vous devez utiliser 127.0.0.1 comme adresse. N'utilisez pas localhost .

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters

Enregistrez et fermez le fichier. Ajoutez ensuite postfix utilisateur à opendkim groupe.

sudo gpasswd -a postfix opendkim

Redémarrez postfix services.

sudo systemctl restart postfix

Étape 7 :Vérification SPF et DKIM

Vous pouvez désormais utiliser votre client de messagerie de bureau ou votre client de messagerie Web pour envoyer un e-mail de test à [email protected] et obtenez un rapport d'authentification de messagerie gratuit. Voici le rapport que j'ai reçu de port25.com.

Vous pouvez également envoyer un e-mail de test depuis votre serveur de messagerie vers votre compte Gmail pour voir si les contrôles SPF et DKIM sont réussis. Sur le côté droit d'un e-mail ouvert dans Gmail, si vous cliquez sur show original dans le menu déroulant, vous pouvez voir les résultats de l'authentification.

Si votre message n'est pas signé et que la vérification DKIM a échoué, vous pouvez vérifier le journal postfix (/var/log/maillog ) pour voir ce qui ne va pas dans votre configuration.

Votre serveur de messagerie effectuera également une vérification DKIM sur les e-mails entrants. Vous pouvez voir les résultats dans les en-têtes des e-mails. Voici la vérification SPF et DKIM d'un expéditeur utilisant Gmail.

Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::c2d; helo=mail-yw1-xc2d.google.com; [email protected]; receiver=<UNKNOWN> 
Authentication-Results: email.linuxbabe.com;
	dkim=pass (2048-bit key; unprotected) header.d=gmail.com [email protected] header.b="XWMRd2co";
	dkim-atps=neutral

Comment configurer OpenDKIM pour plusieurs domaines

J'ai écrit un guide pour héberger plusieurs domaines sur le serveur de messagerie CentOS 8/RHEL 8 avec PostfixAdmin. Dans cet article, j'ai utilisé Amavis pour la signature et la vérification DKIM. Si vous utilisez OpenDKIM, vous devez ignorer l'étape 3 de cet article.

Pour configurer OpenDKIM pour plusieurs domaines, vous devez ajouter les autres domaines dans la table de signature, la table des clés et le fichier des hôtes de confiance comme ci-dessous.

Table de signature :

*@domain1.com       20200308._domainkey.domain1.com
*@domain2.com       20200308._domainkey.domain2.com

Tableau des clés :

20200308._domainkey.domain1.com     domain1.com:20200308:/etc/opendkim/keys/domain1.com/20200308.private
20200308._domainkey.domain2.com     domain2.com:20200308:/etc/opendkim/keys/domain2.com/20200308.private

Hôtes de confiance :

127.0.0.1
localhost

*.domain1.com
*.domain2.com

Générez ensuite la paire de clés privée/publique DKIM et ajoutez la clé publique DKIM dans le DNS comme indiqué aux étapes 3, 4 et 5 pour les autres domaines. Redémarrez OpenDKIM et vous avez terminé.

sudo systemctl restart opendkim

Étape suivante

J'espère que ce tutoriel vous a aidé à installer et à configurer OpenDKIM sur le serveur de messagerie CentOS 8/RHEL 8. Vous pouvez maintenant lire le didacticiel suivant pour configurer OpenDMARC afin de bloquer l'usurpation d'e-mails.

  • Configurer OpenDMARC avec Postfix sur CentOS/RHEL pour bloquer l'usurpation d'e-mails

Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir plus de conseils et d'astuces. Prenez soin de vous 🙂


Cent OS
  1. Comment installer le serveur de messagerie postfix sur RHEL 8 / CentOS 8

  2. Installer et configurer HAProxy sur RHEL 8 / CentOS 8 Linux

  3. Installer et configurer le serveur FTP sur CentOS 7 / RHEL 7 - (vsftpfd)

  4. CentOS / RHEL 7 :Comment installer et configurer le serveur ftp (vsftpd)

  5. CentOS / RHEL 5 :Comment installer et configurer le serveur vsftpd

Comment installer et configurer le serveur VNC dans CentOS 7 / RHEL 7

Installer et configurer Check_MK Server sur CentOS 7

Partie 4 :Configurer SPF et DKIM avec Postfix sur le serveur de messagerie CentOS 8/RHEL 8

Comment installer et configurer le serveur OpenVPN dans CentOS 8/7

Comment installer et configurer le serveur VNC (TigerVNC) dans CentOS / RHEL 7

Comment installer et configurer VNC Server sur CentOS/RHEL 8