Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Installation et configuration d'un serveur internet
  3. Courrier électronique
Extrait - Installation et configuration d'un serveur internet (BIND, Apache, Nginx, Dovecot, Postfix...)
Extraits du livre
Installation et configuration d'un serveur internet (BIND, Apache, Nginx, Dovecot, Postfix...)
2 avis
Revenir à la page d'achat du livre

Courrier électronique

Introduction

La communication par courriel concerne trois protocoles : le SMTP (en anglais : Simple Mail Transfer Protocol, protocole simple pour le transfert de courrier) pour l’envoi des messages, le POP (en anglais : Post Office Protocol, protocole du bureau de poste) et IMAP (en anglais : Internet Message Access Protocol, protocole pour l’accès aux messages par internet) pour la réception des messages. Ces deux derniers protocoles sont souvent représentés avec leurs indices de version respective : POP3 et IMAP4. Si la communication est cryptée à l’aide de SSL/TLS, ces protocoles deviennent SMTPS, POP3S et IMAPS, le S indiquant Secure (sécurisé).

Le client de messagerie de l’expéditeur distribue le message à un serveur SMTP. Ce serveur, à son tour, distribue le message au serveur SMTP du destinataire qui stocke le message. Ensuite, le client de messagerie du destinataire peut récupérer le message et le stocker sur le PC du destinataire (POP) ou afficher le message sans le déplacer (IMAP). Ceci est une représentation simplifiée du process.

La différence la plus importante entre POP et IMAP est donc que POP déplace les messages du serveur au PC de l’utilisateur, alors qu’IMAP laisse les messages sur le serveur et ne télécharge qu’une copie pour les afficher. Bien qu’IMAP génère plus de trafic réseau - si le client n’a pas été...

DNS

Un enregistrement DNS mx.example.com a déjà été créé. Les trois domaines example.com, example.edu et example.org disposent tous d’un enregistrement MX indiquant mx.example.com comme hôte qui traite le courriel pour ces domaines. 

C’est globalement suffisant. Par contre, il n’est pas seulement plus agréable, mais aussi plus reconnaissable pour les utilisateurs d’avoir quelques alias DNS.

imap      IN  CNAME  mx 
smtp      IN  CNAME  mx 
courriel  IN  CNAME  mx 

Avec ces enregistrements CNAME, ce que l’utilisateur doit saisir dans le client de messagerie pour le serveur IMAP (imap.example.com) et le serveur SMTP (smtp.example.com) est tout à fait clair. L’alias courriel sera employé pour servir une messagerie web sur l’adresse https://courriel.example.com/.

Un avantage supplémentaire de ces alias est qu’ils facilitent le déplacement du serveur IMAP ou du serveur SMTP au moment où le traitement de courriels devient trop exigeant pour un seul serveur. Dans ce cas, un de ces deux daemons peut être déplacé vers un autre serveur et l’enregistrement CNAME corrigé pour la nouvelle adresse IP ; l’utilisateur n’aura pas de paramètres à modifier...

Certificat TLS

Comme le trafic web, le trafic courriel sera aussi crypté. Pour cela, un seul certificat est généré pour IMAP, le SMTP et la messagerie web.

Pour la requête du certificat, le répertoire créé plus tôt est de nouveau utilisé. Comme des enregistrements existent pour mx, imap, smtp et courriel, mais pas encore d’hôte virtuel pour le serveur web, ce dernier retombera sur l’hôte virtuel par défaut, vert.example.com.

# certbot certonly --webroot \ 
    -w /srv/www/rfc5785 \ 
    -d mx.example.com \ 
    -d imap.example.com \ 
    -d smtp.example.com \ 
    -d courriel.example.com 

Le certificat est enregistré sous le nom mx.example.com (le premier nom d’hôte cité dans la commande ci-dessus).

Attention :

Le trafic IMAP et SMTP sera crypté mais cela ne veut pas dire que les messages seront cryptés. La TLS garantit seulement le cryptage de la communication entre le client de messagerie et le serveur. Pour le cryptage des messages eux-mêmes, il est possible d’employer une technologie comme PGP (ceci n’est pas traité dans ce livre).

Internet Message Access Protocol (IMAP)

Comme indiqué plus haut, IMAP est le protocole employé pour accéder aux messages reçus. En utilisant ce protocole, le client de messagerie copie un message vers l’appareil de l’utilisateur dès que l’utilisateur accède à celui-ci ; certains clients enregistrent cette copie localement pour éviter des délais quand le message sera ouvert de nouveau.

En revanche, le message original reste sur le serveur ; si le message est déplacé vers un autre dossier, il l’est aussi sur le serveur ; les marquages comme Lu et Important sont enregistrés sur le serveur. Ainsi, l’utilisateur a toujours la même vue sur son compte de messagerie, quel que soit l’appareil utilisé pour se connecter.

1. Dovecot

Dovecot est le nom d’un serveur IMAP et POP3 qui est stable, solide et relativement facile à configurer et qui supporte tous les standards. Dovecot remplit aussi la fonction du LDA, ce qui veut dire que le serveur SMTP remet les messages entrants à Dovecot pour les faire distribuer localement.

De plus, dans la configuration décrite dans ce livre, Dovecot fonctionne comme serveur SASL (en anglais : Simple Authentication and Security Layer, couche simple pour l’authentification et la sécurité), ce qui signifie que le serveur SMTP emploie Dovecot pour l’authentification et l’autorisation d’utilisateurs (qui peut utiliser ce serveur pour l’envoi des messages et qui ne le peut pas ?). Dovecot, à son tour, utilisera le serveur LDAP configuré plus tôt comme base de données d’utilisateurs.

2. Sieve

Le Sieve est un langage de script utilisé pour le filtrage des messages entrants. Ce filtrage se fait sur le serveur ; comme avec IMAP les messages restent sur le serveur, il n’est pas utile de filtrer sur le client.

Le Sieve est une extension du LDA qui permet par exemple de déplacer des messages vers d’autres dossiers en fonction de l’expéditeur, le destinataire, le sujet ou d’autres caractéristiques. En plus d’être déplacés, les messages peuvent aussi être copiés, supprimés, refusés, marqués ou renvoyés ; des en-têtes peuvent être ajoutés, supprimés...

Simple Mail Transfer Protocol (SMTP)

SMTP est le protocole utilisé pour l’envoi des messages. Ce protocole est employé pour faciliter la communication entre le client de messagerie et le serveur SMTP ainsi que la communication entre deux serveurs SMTP.

Il existe plusieurs serveurs SMTP open source. Le serveur traité dans ce livre s’appelle Postfix ; il est relativement facile à configurer et de bonne réputation.

1. Postfix

Le développement de Postfix a commencé il y a plus de vingt ans pour créer une solution de rechange pour Sendmail qui a été le serveur SMTP standard de facto pendant de longues années. La configuration de Postfix est répartie sur plusieurs fichiers texte et bases de données Berkeley DB ou lmdb, mais malgré cela (ou peut-être même grâce à cela), elle est transparente et claire.

2. Installation

FreeBSD et Debian ont respectivement installé les serveurs SMTP Sendmail et Exim qui doivent être désactivés avant que Postfix puisse être activé.

a. FreeBSD

Il existe plusieurs paquets ayant postfix dans leur nom. Certains d’entre eux sont des versions de Postfix, d’autres sont des extensions de Postfix. La version de Postfix à installer s’appelle simplement postfix. Plus loin dans ce chapitre, quelques extensions seront installées.

freebsd# pkg update 
freebsd# pkg search postfix 
freebsd# pkg install postfix 

Le répertoire de configuration de Postfix est /usr/local/etc/postfix.

Sendmail est le serveur SMTP par défaut sous FreeBSD. Pour remplacer intégralement Sendmail par Postfix, quelques tâches doivent être complétées après l’installation.

Sendmail doit être arrêté.

freebsd# service sendmail stop 
freebsd# nano /etc/rc.conf 

sendmail_enable="NONE" 

 

Sendmail accepte plusieurs variables RC, mais en spécifiant la valeur NONE pour la variable sendmail_enable (au lieu de NO), la valeur de toutes ces variables est mise à NO.

De plus, quelques tâches périodiques de Sendmail doivent être désactivées :

freebsd# nano /etc/periodic.conf 

daily_clean_hoststat_enable="NO" 
daily_status_mail_rejects_enable="NO" 
daily_status_include_submit_mailq="NO" ...