1.2. Mise en place d'un serveur Dovecot avec authentification LDAP
Si votre infrastructure utilise un serveur LDAP pour stocker les comptes, vous pouvez authentifier les utilisateurs de Dovecot sur ce serveur. Dans ce cas, vous gérez les comptes de manière centralisée dans l'annuaire et les utilisateurs n'ont pas besoin d'un accès local au système de fichiers du serveur Dovecot.
Les comptes gérés de manière centralisée sont également un avantage si vous envisagez de mettre en place plusieurs serveurs Dovecot avec réplication afin de rendre vos boîtes aux lettres hautement disponibles.
1.2.1. Installation de Dovecot
Le paquet dovecot
fournit :
-
Le service
dovecot
et les services publics pour le maintenir - Les services que Dovecot démarre à la demande, par exemple pour l'authentification
- Plugins, tels que le filtrage du courrier côté serveur
-
Fichiers de configuration dans le répertoire
/etc/dovecot/
-
Documentation dans le répertoire
/usr/share/doc/dovecot/
Procédure
Installez le paquetage
dovecot
:# dnf install dovecot
NoteSi Dovecot est déjà installé et que vous avez besoin de fichiers de configuration propres, renommez ou supprimez le répertoire
/etc/dovecot/
. Ensuite, réinstallez le paquetage. Sans supprimer les fichiers de configuration, la commandednf reinstall dovecot
ne réinitialise pas les fichiers de configuration dans/etc/dovecot/
.
Prochaine étape
1.2.2. Configuration du cryptage TLS sur un serveur Dovecot
Dovecot fournit une configuration sécurisée par défaut. Par exemple, TLS est activé par défaut pour transmettre des informations d'identification et des données cryptées sur les réseaux. Pour configurer TLS sur un serveur Dovecot, il suffit de définir les chemins d'accès aux fichiers de certificats et de clés privées. De plus, vous pouvez augmenter la sécurité des connexions TLS en générant et en utilisant les paramètres Diffie-Hellman pour fournir un secret parfait (PFS).
Conditions préalables
- Dovecot est installé.
Les fichiers suivants ont été copiés aux emplacements indiqués sur le serveur :
-
Le certificat du serveur :
/etc/pki/dovecot/certs/server.example.com.crt
-
La clé privée :
/etc/pki/dovecot/private/server.example.com.key
-
Le certificat de l'autorité de certification (CA) :
/etc/pki/dovecot/certs/ca.crt
-
Le certificat du serveur :
-
Le nom d'hôte figurant dans le champ
Subject DN
du certificat du serveur correspond au nom de domaine complet (FQDN) du serveur.
Procédure
Définir des autorisations sécurisées pour le fichier de la clé privée :
# chown root:root /etc/pki/dovecot/private/server.example.com.key # chmod 600 /etc/pki/dovecot/private/server.example.com.key
Générer un fichier avec les paramètres Diffie-Hellman :
# openssl dhparam -out /etc/dovecot/dh.pem 4096
En fonction du matériel et de l'entropie du serveur, la génération de paramètres Diffie-Hellman avec 4096 bits peut prendre plusieurs minutes.
Définissez les chemins d'accès aux fichiers de certificats et de clés privées dans le fichier
/etc/dovecot/conf.d/10-ssl.conf
:Mettez à jour les paramètres
ssl_cert
etssl_key
et définissez-les de manière à utiliser les chemins d'accès au certificat et à la clé privée du serveur :ssl_cert = </etc/pki/dovecot/certs/server.example.com.crt ssl_key = </etc/pki/dovecot/private/server.example.com.key
Décommentez le paramètre
ssl_ca
et définissez-le de manière à utiliser le chemin d'accès au certificat d'autorité de certification :ssl_ca = </etc/pki/dovecot/certs/ca.crt
Décommentez le paramètre
ssl_dh
et indiquez-lui le chemin d'accès au fichier des paramètres Diffie-Hellman :ssl_dh = </etc/dovecot/dh.pem
ImportantPour s'assurer que Dovecot lit la valeur d'un paramètre à partir d'un fichier, le chemin d'accès doit commencer par le caractère
<
.
Prochaine étape
Ressources supplémentaires
-
/usr/share/doc/dovecot/wiki/SSL.DovecotConfiguration.txt
1.2.3. Préparer Dovecot à utiliser des utilisateurs virtuels
Par défaut, Dovecot effectue de nombreuses actions sur le système de fichiers en tant qu'utilisateur du service. Cependant, configurer le back-end de Dovecot pour qu'il utilise un utilisateur local pour effectuer ces actions présente plusieurs avantages :
- Dovecot effectue des actions sur le système de fichiers en tant qu'utilisateur local spécifique au lieu d'utiliser l'ID de l'utilisateur (UID).
- Les utilisateurs n'ont pas besoin d'être disponibles localement sur le serveur.
- Vous pouvez stocker toutes les boîtes aux lettres et tous les fichiers spécifiques à l'utilisateur dans un répertoire racine.
- Les utilisateurs n'ont pas besoin d'un UID et d'un GID, ce qui réduit les efforts d'administration.
- Les utilisateurs qui ont accès au système de fichiers du serveur ne peuvent pas compromettre leurs boîtes aux lettres ou leurs index, car ils ne peuvent pas accéder à ces fichiers.
- La mise en place de la réplication est plus facile.
Conditions préalables
- Dovecot est installé.
Procédure
Créez l'utilisateur
vmail
:# useradd --home-dir /var/mail/ --shell /usr/sbin/nologin vmail
Dovecot utilisera par la suite cet utilisateur pour gérer les boîtes aux lettres. Pour des raisons de sécurité, n'utilisez pas les utilisateurs du système
dovecot
oudovenull
à cette fin.Si vous utilisez un chemin différent de celui de
/var/mail/
, définissez le contexte SELinux demail_spool_t
, par exemple :# semanage fcontext -a -t mail_spool_t "<path>(/.*)?" # restorecon -Rv <path>
Accordez les droits d'écriture sur
/var/mail/
uniquement à l'utilisateurvmail
:# chown vmail:vmail /var/mail/ # chmod 700 /var/mail/
Décommentez le paramètre
mail_location
dans le fichier/etc/dovecot/conf.d/10-mail.conf
et attribuez-lui le format et l'emplacement de la boîte aux lettres :mail_location = sdbox:/var/mail/%n/
Avec ce réglage :
-
Dovecot utilise le format de boîte aux lettres
dbox
en modesingle
. Dans ce mode, le service stocke chaque courrier dans un fichier séparé, comme dans le formatmaildir
. -
Dovecot résout la variable
%n
dans le chemin du nom d'utilisateur. Ceci est nécessaire pour s'assurer que chaque utilisateur dispose d'un répertoire séparé pour sa boîte aux lettres.
-
Dovecot utilise le format de boîte aux lettres
Prochaine étape
Ressources supplémentaires
-
/usr/share/doc/dovecot/wiki/VirtualUsers.txt
-
/usr/share/doc/dovecot/wiki/MailLocation.txt
-
/usr/share/doc/dovecot/wiki/MailboxFormat.dbox.txt
-
/usr/share/doc/dovecot/wiki/Variables.txt
1.2.4. Utilisation de LDAP comme backend d'authentification pour Dovecot
Les utilisateurs d'un annuaire LDAP peuvent généralement s'authentifier auprès du service d'annuaire. Dovecot peut l'utiliser pour authentifier les utilisateurs lorsqu'ils se connectent aux services IMAP et POP3. Cette méthode d'authentification présente un certain nombre d'avantages :
- Les administrateurs peuvent gérer les utilisateurs de manière centralisée dans l'annuaire.
- Les comptes LDAP n'ont pas besoin d'attributs particuliers. Ils doivent seulement pouvoir s'authentifier auprès du serveur LDAP. Par conséquent, cette méthode est indépendante du système de stockage des mots de passe utilisé sur le serveur LDAP.
- Les utilisateurs n'ont pas besoin d'être disponibles localement sur le serveur via l'interface Name Service Switch (NSS) et le cadre PAM (Pluggable Authentication Modules).
Conditions préalables
- Dovecot est installé.
- La fonctionnalité des utilisateurs virtuels est configurée.
- Les connexions au serveur LDAP prennent en charge le cryptage TLS.
- RHEL sur le serveur Dovecot fait confiance au certificat de l'autorité de certification (CA) du serveur LDAP.
- Si les utilisateurs sont stockés dans différentes arborescences de l'annuaire LDAP, un compte LDAP dédié à Dovecot existe pour effectuer des recherches dans l'annuaire. Ce compte a besoin de permissions pour rechercher les Distinguished Names (DNs) des autres utilisateurs.
Procédure
Configurer les backends d'authentification dans le fichier
/etc/dovecot/conf.d/10-auth.conf
:Commentez les déclarations
include
pour les fichiers de configuration du backend d'authentificationauth-*.conf.ext
dont vous n'avez pas besoin, par exemple :#!include auth-system.conf.ext
Activez l'authentification LDAP en décommentant la ligne suivante :
!include auth-ldap.conf.ext
Modifiez le fichier
/etc/dovecot/conf.d/auth-ldap.conf.ext
et ajoutez le paramètreoverride_fields
comme suit à la sectionuserdb
:userdb { driver = ldap args = /etc/dovecot/dovecot-ldap.conf.ext override_fields = uid=vmail gid=vmail home=/var/mail/%n/ }
En raison des valeurs fixes, Dovecot ne demande pas ces paramètres au serveur LDAP. Par conséquent, ces attributs n'ont pas non plus besoin d'être présents.
Créez le fichier
/etc/dovecot/dovecot-ldap.conf.ext
avec les paramètres suivants :En fonction de la structure LDAP, configurez l'un des éléments suivants :
Si les utilisateurs sont stockés dans différentes arborescences de l'annuaire LDAP, configurez des recherches dynamiques de DN :
dn = cn=dovecot_LDAP,dc=example,dc=com dnpass = password pass_filter = (&(objectClass=posixAccount)(uid=%n))
Dovecot utilise le DN, le mot de passe et le filtre spécifiés pour rechercher le DN de l'utilisateur s'authentifiant dans l'annuaire. Dans cette recherche, Dovecot remplace
%n
dans le filtre par le nom d'utilisateur. Notez que la recherche LDAP ne doit retourner qu'un seul résultat.Si tous les utilisateurs sont enregistrés sous une entrée spécifique, configurez un modèle DN :
auth_bind_userdn = cn=%n,ou=People,dc=example,dc=com
Activer l'authentification se lie au serveur LDAP pour vérifier les utilisateurs de Dovecot :
auth_bind = yes
Définir l'URL du serveur LDAP :
uris = ldaps://LDAP-srv.example.com
Pour des raisons de sécurité, n'utilisez que des connexions cryptées utilisant LDAPS ou la commande
STARTTLS
sur le protocole LDAP. Dans ce dernier cas, ajouteztls = yes
aux paramètres.Pour que la validation du certificat fonctionne, le nom d'hôte du serveur LDAP doit correspondre au nom d'hôte utilisé dans son certificat TLS.
Activer la vérification du certificat TLS du serveur LDAP :
tls_require_cert = hard
Définissez le DN de base sur le DN où commencer la recherche d'utilisateurs :
base = ou=People,dc=example,dc=com
Définir l'étendue de la recherche :
scope = onelevel
Dovecot recherche avec la portée
onelevel
uniquement dans le DN de base spécifié et avec la portéesubtree
également dans les sous-arbres.
Définir des autorisations sécurisées sur le fichier
/etc/dovecot/dovecot-ldap.conf.ext
:# chown root:root /etc/dovecot/dovecot-ldap.conf.ext # chmod 600 /etc/dovecot/dovecot-ldap.conf.ext
Prochaine étape
Ressources supplémentaires
-
/usr/share/doc/dovecot/example-config/dovecot-ldap.conf.ext
-
/usr/share/doc/dovecot/wiki/UserDatabase.Static.txt
-
/usr/share/doc/dovecot/wiki/AuthDatabase.LDAP.txt
-
/usr/share/doc/dovecot/wiki/AuthDatabase.LDAP.AuthBinds.txt
-
/usr/share/doc/dovecot/wiki/AuthDatabase.LDAP.PasswordLookups.txt
1.2.5. Compléter la configuration de Dovecot
Une fois que vous avez installé et configuré Dovecot, ouvrez les ports requis dans le service firewalld
, puis activez et démarrez le service. Vous pouvez ensuite tester le serveur.
Conditions préalables
Les éléments suivants ont été configurés dans Dovecot :
- Cryptage TLS
- Un backend d'authentification
- Les clients font confiance au certificat de l'autorité de certification (AC).
Procédure
Si vous souhaitez fournir uniquement un service IMAP ou POP3 aux utilisateurs, décommentez le paramètre
protocols
dans le fichier/etc/dovecot/dovecot.conf
et définissez-le en fonction des protocoles requis. Par exemple, si vous n'avez pas besoin de POP3, définissez :protocols = imap lmtp
Par défaut, les protocoles
imap
,pop3
etlmtp
sont activés.Ouvrez les ports dans le pare-feu local. Par exemple, pour ouvrir les ports des protocoles IMAPS, IMAP, POP3S et POP3, entrez :
# firewall-cmd --permanent --add-service=imaps --add-service=imap --add-service=pop3s --add-service=pop3 # firewall-cmd --reload
Activez et démarrez le service
dovecot
:# systemctl enable --now dovecot
Vérification
Utilisez un client de messagerie, tel que Mozilla Thunderbird, pour vous connecter à Dovecot et lire les courriels. Les paramètres du client de messagerie dépendent du protocole que vous souhaitez utiliser :
Tableau 1.2. Paramètres de connexion au serveur Dovecot Protocol Port Sécurité des connexions Méthode d'authentification IMAP
143
STARTTLS
PLAIN[a]
IMAPS
993
SSL/TLS
PLAIN[a]
POP3
110
STARTTLS
PLAIN[a]
POP3S
995
SSL/TLS
PLAIN[a]
[a] Le client transmet des données cryptées via la connexion TLS. Par conséquent, les informations d'identification ne sont pas divulguées.Notez que ce tableau ne liste pas les paramètres pour les connexions non chiffrées car, par défaut, Dovecot n'accepte pas l'authentification en texte clair sur les connexions sans TLS.
Afficher les paramètres de configuration avec des valeurs autres que celles par défaut :
# doveconf -n
Ressources supplémentaires
-
firewall-cmd(1)
page de manuel