Postfix

IMAP sécurisé

1. Vulnérabilités

Par défaut, tous les échanges IMAP s’effectuent en clair : aussi bien la phase d’authentification que la consultation des messages. Pour illustrer ce propos, voici ci-dessous, une capture d’un analyseur de trame lors de l’envoi d’un courriel depuis le client de messagerie Thundirbird.

Dans la capture ci-dessus, on remarquera notamment :

  • À la ligne n°5, la phase d’authentification en clair.
  • Dès la ligne n°8, la navigation dans la boîte de messagerie.

Techniquement, il est possible pur tout équipement se trouvant entre le serveur de messagerie et le client de messagerie de capter et d’interpréter ces données en clair. Ainsi, la sécurisation des échanges n’est pas garantie dans la mesure où :

  • La confidentialité des échanges est violées.
  • L’intégrité des données n’est pas vérifiée : il est possible de les intercepter – les modifier puis les renvoyer au destinataire.
  • Les identifiants de connexion de l’utilisateur peuvent être dérobés.
  • Logiquement, si l’intégrité est compromise et l’authentification caduque alors la non-répudiation n’est plus garantie.

En d’autre terme, ce type d’échange ne respecte pas les principes de cybersécurité. Il est donc essentiel de protéger ces échanges en procédant à un chiffrement des données.

2. Activation de TLS

2.1. Installation des dépendances

  • Installation du paquet courier-imap-ssl :

root@alice.lan: # apt-get install courier-imap-ssl

  • Par défaut, le serveur écoute sur le port tcp/993.

2.2. Génération du certificat

  • Le certificat sera sauvegardé dans le dossier /etc/courier.
  • Maintenant, se positionner dans le dossier /etc/courier créé puis procéder à la génération du certificat :

root@alice.lan: # cd /etc/courier
root@alice.lan:/etc/courier # openssl req -new -outform PEM -out imapd.cert -newkey rsa:2048 -nodes -keyout imapd.key -keyform PEM -days 365 -x509
Generating a 2048 bit RSA private key
………………………………………………………………………+++
………………………………………………………………..+++
writing new private key to ‘imapd.key’


You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.


Country Name (2 letter code) [AU]: FR
State or Province Name (full name) [Some-State]: OCCITANIE
Locality Name (eg, city) []: TOULOUSE
Organization Name (eg, company) [Internet Widgits Pty Ltd]: NCAD
Organizational Unit Name (eg, section) []: DSI
Common Name (e.g. server FQDN or YOUR name) []: 10.0.0.44
Email Address []: tech@ncad.fr

  • D’après le terminal de commande ci-dessus, nous générons un certificat avec une clé RSA d’une longueur de 2048 bits – qui sera valide pour 365 jours et sera généré au format standard x509.
  • Par la suite, le prompt demandera de saisir des informations sur l’entité propriétaire du certificat (localisation géographique, nom de l’entité et adresse mail) mais surtout l’adresse IP ou le nom d’hôte FQDN de la machine qui va utiliser le certificat.

Pour un serveur de messagerie en production, renseigner le nom FQDN du serveur plutôt que son adresse IP.

  • Création du fichier .pem contenant le certificat et la clé privée :

root@alice.lan:/etc/courier # touch imapd.pem
root@alice.lan:/etc/courier # cat imapd.cert > imapd.pem
root@alice.lan:/etc/courier # cat imapd.key >> imapd.pem

2.3. Configuration de Courier-IMAP

  • Editer le fichier de configuration /etc/courier/imapd-ssl/courier-imap-ssl, puis vérifier les lignes ci-dessous :

TLS_PROTOCOL= »TLS1_2:TLS1_3″
TLS_CERTFILE=/etc/courier/imapd.pem
TLS_TRUSTCERTS=/etc/courier/imapd.pem
TLS_VERIFYPEER=NONE

  • Un redémarrage du service IMAPS est nécessaire pour la bonne application des nouveaux paramètres :

root@alice.lan: # service courier-imap-ssl restart

3. Test de la configuration

  • Ouvrir une connexion telnet sur le serveur IMAPS depuis le port tcp/993 :

root@alice.lan: > telnet 10.0.0.44 993
Trying 10.0.0.44… Connected to 10.0.0.44. Escape character is ‘^]’.

  • Le serveur répond bien sur le port tcp/993 ce qui indique qu’il est fonctionnel.
  • Maintenant, configurons un client de messagerie avec le protocole IMAPS de configuré puis observons les trames échangées :
  • Cette fois-ci, les échanges sont chiffrés. Il n’est plus possible de lire les identifiants IMAPS du client ainsi que tout autre information.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *