Chapitre 13. Serveurs de courrier

Red Hat Enterprise Linux offre de nombreuses applications avancées pour servir et accéder aux courriers électroniques. Ce chapitre décrit les protocoles de courriers électroniques modernes utilisés de nos jours, ainsi que certains des programmes conçus pour envoyer et recevoir des courriers électroniques.

13.1. Protocoles de courrier électronique

De nos jours, les courriers électroniques sont distribués en utilisant une architecture client/serveur. Un courrier électronique est créé à l'aide d'un programme de client de messagerie. Le serveur transfère ensuite le message sur le serveur de courrier du destinataire, où le message est finalement remis au client de messagerie du destinataire
Pour activer ce processus, une variété de protocoles réseau standard autorisent différentes machines, exécutant souvent différents systèmes d'exploitation, et utilisant différents programmes de courrier électronique à envoyer et recevoir des courriers électroniques.
Les protocoles dont il est question sont les plus couramment utilisés lors des transferts de courriers électroniques.

13.1.1. Protocoles de transport de courrier

La distribution du courrier à partir d'une application cliente sur un serveur, et à partir d'un serveur d'origine sur un serveur destinataire, est gérée par SMTP (Simple Mail Transfer Protocol).

13.1.1.1. SMTP

Le but principal de SMTP est de transférer les courriers électroniques entre serveurs de courrier. Cependant, ceci est critique pour les clients de courrier également. Pour envoyer un courrier, le client envoie le message sur un serveur de courrier sortant, qui contactera par la suite le serveur de courrier destinataire pour le lui remettre, donc il faut spécifier un serveur SMTP lors de la configuration d'un client de messagerie.
Dans Red Hat Enterprise Linux, un utilisateur peut configurer un serveur SMTP sur la machine locale pour gérer la remise de courrier. Il est également possible de configurer des serveurs SMTP distants pour le courrier sortant.
Un point important à souligner sur le protocole SMTP est qu'il ne nécessite pas d'authentification. Ceci permet à n'importe qui sur Internet d'envoyer des courriers électroniques à une personne ou à de grands groupes de personnes. C'est cette caractéristique de SMTP qui rend les courriers électroniques indésirables, ou spam possibles. Imposer des restrictions de relais limite les utilisateurs aléatoires envoyant des courriers électroniques via votre serveur SMTP vers d'autres serveurs sur internet. Les serveurs qui n'imposent pas de telles restrictions sont appelés des serveurs relais ouverts.
Red Hat Enterprise Linux 7 fournit les programmes Postfix et Sendmail SMTP.

13.1.2. Protocoles d'accès au courrier

Deux protocoles principaux sont utilisés par les applications clientes de courrier pour récupérer le courrier électronique en provenance des serveurs de courrier : POP (Post Office Protocol), et le protocole IMAP (Internet Message Access Protocol).

13.1.2.1. POP

Le serveur POP par défaut sous Red Hat Enterprise Linux se nomme Dovecot et est fourni par le paquet dovecot.

Note

Pour utiliser Dovecot, commencez par vous assurer que le paquet dovecot soit effectivement installé sur votre système en exécutant la commande suivante en tant qu'utilisateur root :
~]# yum install dovecot
Pour obtenir davantage d'informations sur l'installation de paquets avec Yum, veuillez consulter la Section 8.2.4, « Installation de paquets ».
Lors de l'utilisation d'un serveur POP, les messages électroniques sont téléchargés par les applications clientes de courrier. Par défaut, la plupart des clients de courrier POP sont automatiquement configurés pour supprimer le message sur le serveur de courrier une fois son tranfert réussi. Ce paramètre peut toutefois être modifié.
POP est totalement compatible avec les standards de messagerie Internet importants, tels que MIME (Multipurpose Internet Mail Extensions), qui permet d'ajouter des pièces jointes aux courriers électroniques.
POP fonctionne mieux pour les utilisateurs qui possèdent un système sur lequel lire les courriers électroniques. Celui-ci fonctionne également mieux pour les utilisateurs qui ne possèdent pas de connexion persistante sur Internet ou sur le réseau contenant le serveur de courrier. Malheureusement, pour les personnes dont les connexions réseau sont lentes, POP exige que les programmes clients téléchargent la totalité du contenu de chaque message une fois l'authentification effectuée. Ceci peut prendre un long moment si un courrier contient une pièce jointe de grande taille.
La version la plus courante du protocole POP standard est POP3.
Cependant, il existe également des variantes moins utilisées du protocole POP :
  • APOPPOP3 avec une authentification MD5. Un hachage chiffré du mot de passe utilisateur est envoyé à partir du client de messagerie vers le serveur, plutôt que d'envoyer un mot de passe non chiffré.
  • KPOPPOP3 avec authentification Kerberos.
  • RPOPPOP3 avec authentification RPOP. Ceci utilise un ID par utilisateur, similairement à un mot de passe, mais pour authentifier les requêtes POP. Cependant, cet ID n'est pas chiffré, et RPOP n'est ainsi pas plus sécurisé que le protocole POP standard.
Pour une meilleure sécurité, il est possible d'utiliser le chiffrement SSL (Secure Socket Layer) pour l'authentification de client et les sessions de transferts de données. Ceci peut être activé en utilisant le service pop3s, ou en utilisant l'application stunnel. Pour obtenir davantage d'informations sur la sécurisation des communications par courrier électronique, veuillez consulter la Section 13.5.1, « Sécuriser les communications ».

13.1.2.2. IMAP

Le serveur IMAP par défaut sous Red Hat Enterprise Linux se nomme Dovecot et est fourni par le paquet dovecot. Veuillez consulter la Section 13.1.2.1, « POP » pour obtenir des informations sur la manière d'installer Dovecot.
Lors de l'utilisation d'un serveur de courrier IMAP, les messages électroniques restent sur le serveur, les utilisateurs peuvent donc les lire ou les supprimer. IMAP autorise également les applications clientes à créer, renommer, ou supprimer des répertoires de courrier sur le serveur pour organiser et stocker les courriers électroniques.
IMAP est particulièrement utile pour les utilisateurs accédant à leur courrier électronique à partir de plusieurs machines. Le protocole est également utile pour les utiisateurs se connectant au serveur de courrier via une connexion lente, car jusqu'à ce que le courrier soit ouvert, seules les informations de l'en-tête des courriers électroniques sont téléchargées, économisant ainsi de la bande passante. L'utilisateur a également la possibilité de supprimer des messages sans les voir ou sans les télécharger.
Pour plus de commodité, les applications clientes IMAP sont capables de mettre en cache des copies de messages localement, permettant ainsi à l'utilisateur de parcourir des messages précédemment lus sans pour autant être directement connecté au serveur IMAP.
IMAP, tout comme POP, est complètement compatible avec les standards de messagerie Internet importants, tels que MIME, qui autorise l'ajout de pièces jointes.
Pour une meilleure sécurité, il est possible d'utiliser le chiffrement SSL pour l'authentification de client et les sessions de transfert de données. Ceci peut être activé en utilisant le service imaps, ou en utilisant le programme stunnel. Pour obtenir davantage d'informations sur la sécurisation des communications par courrier électronique, veuillez consulter la Section 13.5.1, « Sécuriser les communications ».
D'autres clients et serveurs IMAP gratuits ou de type commercial sont également disponibles, et nombre d'entre eux étendent le protocole IMAP et fournissent des fonctionnalités supplémentaires.

13.1.2.3. dovecot

Les processus imap-login et pop3-login qui implémentent les protocoles IMAP et POP3 sont engendrés par le démon dovecot maître inclus dans le paquet dovecot. L'utilisation d'IMAP et de POP est configurée via le fichier de configuration /etc/dovecot/dovecot.conf ; par défaut dovecot exécute IMAP et POP3 avec leur version sécurisée en utilisant SSL. Pour configurer dovecot de manière à utiliser POP, veuillez appliquer les étapes suivantes :
  1. Modifiez le fichier de configuration /etc/dovecot/dovecot.conf de manière à vous assurer que la variable protocols ne se trouve pas dans un commentaire (supprimez le caractère dièse (#) au début de la ligne) et qu'elle contienne bien l'argument pop3. Exemple :
    protocols = imap pop3 lmtp
    Lorsque la variable protocols ne se trouve plus dans un commentaire, dovecot utilisera les valeurs par défaut comme décrit ci-dessus.
  2. Rendre le changement opérationnel pour la session actuelle en exécutant la commande suivante en tant qu'utilisateur root :
    ~]# systemctl restart dovecot
  3. Rendre le changement opérationnel après le prochain redémarrage en exécutant la commande :
    ~]# systemctl enable dovecot
    Created symlink from /etc/systemd/system/multi-user.target.wants/dovecot.service to /usr/lib/systemd/system/dovecot.service.

    Note

    Veuillez remarquer que dovecot rapporte uniquement qu'il a démarré le serveur IMAP, mais il lance également le serveur POP3.
Contrairement à SMTP, IMAP et POP3 nécessitent de connecter les clients pour s'authentifier en utilisant un nom d'utilisateur et un mot de passe.. Par défaut, les mots de passe de ces deux protocoles sont passés à travers le réseau de manière non-chiffrée.
Pour configurer SSL sur dovecot :
  • Modifiez le fichier de configuration /etc/dovecot/conf.d/10-ssl.conf pour vous assurer que la variable ssl_protocols est bien décommentée et contient les arguments !SSLv2 !SSLv3 :
    ssl_protocols = !SSLv2 !SSLv3
    Ces valeurs permettent de s'assurer que dovecot évite SSL versions 2 et 3, qui sont toutes deux connues pour ne pas être sécurisées. Ceci est dû à la vulnérabilité décrite dans POODLE: SSLv3 vulnerability (CVE-2014-3566). Veuillez consulter la Résolution de la vulnérabilité SSL 3.0 POODLE (CVE-2014-3566) dans Postfix et Dovecot pour obtenir davantage de détails.
  • Modifiez le fichier de configuration /etc/pki/dovecot/dovecot-openssl.cnf selon vos préférences. Cependant, dans une installation typique, ce fichier ne requiert pas de modification.
  • Renommez, déplacez ou supprimez les fichiers /etc/pki/dovecot/certs/dovecot.pem et /etc/pki/dovecot/private/dovecot.pem.
  • Exécutez le script /usr/libexec/dovecot/mkcert.sh qui crée les certificats auto-signés dovecot. Ces certificats sont copiés dans les répertoires /etc/pki/dovecot/certs et /etc/pki/dovecot/private. Pour implémenter les changements, redémarrez dovecot en exécutant la commande suivante en tant qu'utilisateur root :
    ~]# systemctl restart dovecot
Davantage de détails sur dovecot peuvent être trouvés en ligne sur http://www.dovecot.org.