« LINUX:Dovecot » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 133 : | Ligne 133 : | ||
Comme défini dans la configuration de POSTFIX, le format est "maildir" et se situe dans le répertoire "Maildir" situé à la racine de l'espace de l'utilisateur noté par le tilde "~/". On modifie la première ligne en conséquence à l'option "mail_location". | Comme défini dans la configuration de POSTFIX, le format est "maildir" et se situe dans le répertoire "Maildir" situé à la racine de l'espace de l'utilisateur noté par le tilde "~/". On modifie la première ligne en conséquence à l'option "mail_location". | ||
Le paramètre ":UTF-8" permet que tout dossier créé par le client de messagerie de type IMAP | Le paramètre ":UTF-8" permet que tout dossier créé par le client de messagerie de type IMAP, sera créé et apparaîtra sous LINUX avec le format UTF-8. | ||
A la base, le protocole IMAP crée sur le serveur des fichiers et répertoires selon le codage "UTF-7-IMAP". Cette option ":UTF-8" redirige le codage "UTF-7-IMAP" vers le codage "UTF-8" utilisé sous Linux. | |||
Si cette option n'était pas mise, la création du répertoire "Privé" sous IMAP créerait le répertoire sous Linux ".Priv&AOk-" dans le sous-répertoire "Maildir" de l'espace de l'utilisateur. Ce codage affecte la très grande majorité des caractères imprimables autres que ceux de la table ASCII 7 bits autrement dit anglais. | |||
Dans son principe, les caractères de l'alphabet classique latin sans accent plus les chiffres (et quelques caractères spéciaux) restent inchangés. Mais si un caractère accentué (français,...) ou étranger (cyrillique, arabe,...) est rencontré, sa représentation Unicode est transformée selon le codage Base64 et pour être repérable, il est entouré en début par le caractère "&" et en fin par le caractère "-". Donc dans notre exemple, le caractère "é" devient "&AOK-". | |||
On peut utiliser la commande suivante pour passer d'un codage à l'autre: | |||
echo -n "Priv&AOk-" | iconv -f UTF-7-IMAP -t UTF-8 | |||
va donner: "Privé" et inversement la commande suivante effectue l'opération inverse: | |||
echo -n "Privé" | iconv -f UTF-8 -t UTF-7-IMAP | |||
Version du 28 octobre 2025 à 12:29
→ retour au menu de concernant la messagerie
But
Dovecot est un serveur permettant aux clients de récupéré leurs messages électroniques que Postfix, le serveur de messageries a convoyé et mis dans leur boîte postale.
Nous ne considèrerons que les protocole POP et IMAP:
- POP : port 110 (non crypté ou partiellement)
- POPS : port 995 (crypté)
- IMAP : port 143 (non crypté ou partiellement)
- IMAPS : port 993 (crypté)
POP est chargé de récupérer les messages chez le client. Et IMAP sert à consulter et gérer les messages se trouvant sur le serveur.
Le schéma suivant donne un aperçu des interactions entre Postfix, Dovecot et les clients.

Dovecot permet l'utilisation d'autres protocoles tels Submission et LMTP. Ces deux derniers seront gérés par Postfix. Nous ne les aborderons pas ou indirectement.
Installation
Pour installer Dovecot, on lance la commande d'installation du package:
dnf install dovecot
Configuration
Les fichiers de configuration se trouve dans le répertoire "/etc/dovecot". Le fichier de configuration principal est "/etc/dovecot/dovecot.conf". Il fait appel aux fichiers se trouvant dans le sous-répertoire "/etc/dovecot/conf.d".
Nous allons en premier lieu, supprimer toutes les lignes en commentaires dans ces fichiers et ensuite tous les blocs de configuration qui n'ont pas de paramètres ainsi que les fichiers qui n'ont pas de paramètres et auxquels on ne fait pas référence pour les deux protocoles retenus: POP et IMAP.
Il existe une grande variété de méthodes d'authentification. Nous ne retiendrons que celle qui utilise celle de Linux via les fichiers "/etc/passwd" et "/etc/shadow".
Fichier "dovecot.conf"
Après nettoyage du fichier "/etc/dovecot/dovecot.conf", il reste:
protocols = imap pop3 listen = * !include conf.d/*.conf
Explications:
- protocols : définit les protocoles activés. On ne garde que POP3 et IMAP comme désiré.
- listen : On ne garde que l'étoile qui ne permet que la couche IPV4
- !include : On inclut dans la configuration, les fichiers de type ".conf" du sous-répertoire "conf.d". Dans ce répertoire "/etc/dovecot/conf.d", on y trouvera une série de fichiers de configurations qui regroupent chacun une partie de la configuration par thème et dans certains cas, des renvoies vers des fichiers de configurations secondaires (extensions ".ext").
Le nom de ce sous-répertoire et de ses fichiers peuvent être changés. Pour ma part, je renvoie vers un autre répertoire où je ne reprends que les fichiers et paramètres utilisés. Ceci me permet d'avoir une vision plus claire, épurée. Les fichiers du répertoire d'origine, intouché, pourront être adaptés par les mises à jour et ainsi servir de référence et d'exemple.
Fichiers du sous-répertoire "conf.d"
Nous garderons que quelques fichiers de ce sous-répertoire car après nettoyage, on s'aperçoit que nombre d'entre eux ne sont pas utilisés ou n’apportent rien car ils ne comportent aucune option.
Fichier "10-master.conf"
Ce fichier est important car les options qui nous concernent, y sont reprises par défaut:
service imap-login {
inet_listener imap {
port = 143
ssl = no
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service pop3-login {
inet_listener pop3 {
port = 110
ssl = no
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
service auth {
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
Il définit les n° de ports des protocoles POP3 et IMAP sans ou avec cryptage SSL.
Le dernier bloc permet aux processus de type SMTP (Submission et SMTPS) de Postfix d'utiliser l'authentification mise en place par Dovecot.
Fichier "10-ssl.conf"
Comme son nom l'indique, il concerne le cryptage SSL.
ssl = required ssl_cert = </etc/pki/home/certs/home.pem ssl_key = </etc/pki/home/private/home.key ssl_cipher_list = PROFILE=SYSTEM
Comme désiré, le cryptage est activé à la première ligne qu'on a modifié ("ssl=yes") et donc les autres options existantes doivent être adaptées sont nos certificats.
Fichier "10-auth.conf"
On aborde ici la méthode d'authentification qui est explicitée dans le fichier "auth-system.conf.ext" inclus.
disable_plaintext_auth = no auth_mechanisms = plain login !include auth-system.conf.ext
A la première ligne, on active le transfert du mot de passe en clair par la méthode "PLAIN". L'autre méthode est "LOGIN". Elles sont utilisables en fonction des protocoles utilisés: sans cryptage ou STARTTLS.
Fichier "auth-system.conf.ext"
La méthode d'authentification utilise celle d'Unix pilotée par la couche PAM. On ne change rien à ce fichier.
passdb {
driver = pam
}
userdb {
driver = passwd
}
Fichier "10-mail.conf"
Ce fichier défini l'emplacement des messages de l'utilisateur.
mail_location = maildir:~/Maildir:UTF-8
Comme défini dans la configuration de POSTFIX, le format est "maildir" et se situe dans le répertoire "Maildir" situé à la racine de l'espace de l'utilisateur noté par le tilde "~/". On modifie la première ligne en conséquence à l'option "mail_location".
Le paramètre ":UTF-8" permet que tout dossier créé par le client de messagerie de type IMAP, sera créé et apparaîtra sous LINUX avec le format UTF-8.
A la base, le protocole IMAP crée sur le serveur des fichiers et répertoires selon le codage "UTF-7-IMAP". Cette option ":UTF-8" redirige le codage "UTF-7-IMAP" vers le codage "UTF-8" utilisé sous Linux.
Si cette option n'était pas mise, la création du répertoire "Privé" sous IMAP créerait le répertoire sous Linux ".Priv&AOk-" dans le sous-répertoire "Maildir" de l'espace de l'utilisateur. Ce codage affecte la très grande majorité des caractères imprimables autres que ceux de la table ASCII 7 bits autrement dit anglais.
Dans son principe, les caractères de l'alphabet classique latin sans accent plus les chiffres (et quelques caractères spéciaux) restent inchangés. Mais si un caractère accentué (français,...) ou étranger (cyrillique, arabe,...) est rencontré, sa représentation Unicode est transformée selon le codage Base64 et pour être repérable, il est entouré en début par le caractère "&" et en fin par le caractère "-". Donc dans notre exemple, le caractère "é" devient "&AOK-".
On peut utiliser la commande suivante pour passer d'un codage à l'autre:
echo -n "Priv&AOk-" | iconv -f UTF-7-IMAP -t UTF-8
va donner: "Privé" et inversement la commande suivante effectue l'opération inverse:
echo -n "Privé" | iconv -f UTF-8 -t UTF-7-IMAP
Fichier "15-mailboxes.conf"
Il définit les noms de quelques dossiers standards dans une messagerie. Ils sont utilisés dans le protocole IMAP.
namespace inbox {
inbox = yes
type = private
prefix =
separator = .
subscriptions = yes
mailbox Drafts {
special_use = \Drafts
auto = subscribe
}
mailbox Junk {
special_use = \Junk
auto = subscribe
}
mailbox Trash {
special_use = \Trash
auto = subscribe
}
mailbox Sent {
special_use = \Sent
auto = subscribe
}
mailbox Archives {
special_use = \Archive
auto = subscribe
}
}
Les messages arrivent dans l'espace de noms "inbox".
- Cette endroit est spécifié par l'option "inbox = yes".
- Cet espace est de type privé (option: "type = private").
- Tout dossier qui sont créés pour cet espace de noms sous Linux sous le répertoire "Maildir" de l'espace de l'utilisateur Linux, commence par un ".". Par exemple, le dossier des SPAMs ("Junk") pour l'utilisateur "pdupont" sera nommé "/home/pdupont/Maildir/.Junk".
- L'option "prefix =" sans argument spécifie que dans le client de messagerie de type IMAP, les différents dossiers seront présents directement dans l'arborescence des dossiers.
Explication des dossiers:
- Inbox : dossier de réception des messages, non individualisé et implicite, se situe sous Linux directement dans le répertoire "Maildir" de l'utilisateur.
- Drafts : dossier des brouillons
- Junk : dossier pour les SPAMs
- Trash : dossier des messages détruits
- Sent : dossier pour les messages envoyés
- Archive : dossier d'archivage
Options des dossiers:
- Les noms de l'option "special_use" sont des noms réservés qui sont standardisé et compris normalement par les clients de messagerie (sauf Microsoft Office Outlook).
- L'option "auto = subscribe" provoque la création du dossier sous Linux dans l'arborescence de l'utilisateur dans le répertoire "Maildir" dès que le client de messagerie de type IMAP se connecte. En outre ce dossier est automatiquement coché comme "abonné" dans le client de messagerie. A noter que les noms de dossiers standardisés qui sont en anglais, sont automatiquement traduit dans la langue de l'utilisateur (sauf Microsoft Office Outlook). Par exemple, le dossier "Trash" apparaîtra sous le nom "Corbeille".
Activer et lancer le service
Le service à lancer est DOVECOT. La première commande active le service pour qu'à chaque démarrage du serveur, le service se lance. La seconde lance directement le service. La troisième relance le service.
systemctl enable dovecot systemctl start dovecot systemctl restart dovecot
Configurer le mur de feu ou FireWall
Vous avez sûrement activé le FireWall du serveur. Dans l'exemple, l'adressage de notre LAN est 192.168.1.0 avec un masque de 255.255.255.0 ou de 24 bits. Comme c'est un service proposé, il faut ouvrir diverses portes. Tout dépend des services proposés et des services distants souhaités. Dans notre cas, nous nous sommes limités au protocoles POP3 (port 110, 995) et IMAP (port 143, 993) cryptés ou non.
Les lignes à ajouter dans le fichier de configuration d'IPTABLES "/etc/sysconfig/iptables" sont les suivantes:
-A INPUT -p tcp -m tcp --dport 110 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT -A INPUT -p tcp -m tcp --dport 143 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT -A INPUT -p tcp -m tcp --dport 995 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT -A INPUT -p tcp -m tcp --dport 993 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
Vérification
Après démarrage du service, la commande suivante affiche les ports en écoute:
netstat -ntpl | grep dovecot
qui donne:
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 6633/dovecot tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 6633/dovecot tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 6633/dovecot tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 6633/dovecot
→ retour au menu de concernant la messagerie