Une fois débarrassé de ses commentaires, le fichier dovecot.conf
semble très simple. Ne nous y trompons pas, il l'est encore une fois à cause des options par défaut (qui sont en très grand nombre ici).
Premier exemple amusant, nous allons tester par telnet (car bien entendu, nous connaissons par cœur les commandes du protocole IMAP), en local, puis à distance.
En local | A distance |
---|---|
~# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK Dovecot ready.
20 capability
* CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES
MULTIAPPEND UNSELECT LITERAL+ IDLE
CHILDREN NAMESPACE LOGIN-REFERRALS
STARTTLS AUTH=PLAIN
20 OK Capability completed.
40 login prof epikoi
40 OK Logged in.
60 logout
* BYE Logging out
60 OK Logout completed.
Connection closed by foreign host.
| chris@pchris2:~$ telnet cyrus.nain-t.net 143 Trying 192.168.0.18... Connected to cyrus.nain-t.net. Escape character is '^]'. * OK Dovecot ready. 20 capability * CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS STARTTLS LOGINDISABLED 20 OK Capability completed. 40 login prof epikoi * BAD [ALERT] Plaintext authentication is disabled, but your client sent password in plaintext anyway. If anyone was listening, the password was exposed. 40 NO Plaintext authentication disabled. 60 logout * BYE Logging out 60 OK Logout completed. Connection closed by foreign host. |
Par défaut, l'authentification en mode « plaintext » fonctionne en local, mais pas à distance. Bien entendu, il est possible de modifier ce comportement, mais ce n'est pas souhaitable.
Vérifions tout ceci avec Thunderbird, sur un poste du réseau. Configurons notre oiseau du tonnerre pour aller lire la boite-aux-lettres de prof sur cyrus.nain-t.net et vérifions que la lecture n'est possible qu'à certaines conditions :
Ben oui, nous étions prévenus. Il est temps de changer ces habitudes et de venir à un système chiffré. IMAP TLS utilise le même port que IMAP, mais envoie la commande STARTTLS
pour débuter un chiffrement de la communication, tandis que IMAP SSL utilise un autre port et chiffre tout l'ensemble de la communication. Il s'agit d'un autre service, à part entière, que nous n'avons d'ailleurs pas démarré, il s'agit de IMAPS. Essayons de cocher « TLS, si possible » ou même « TLS » Dans les paramètres de sécurité des paramètres du serveur du compte IMAP que nous avons créé dans notre Thunderbird, et voyons :
Ici, ça devient sérieux. Nous sommes en mode chiffré, Cyrus nous envoie son certificat, mais il n'est pas signé par une racine de confiance. Dovecot a créé un certificat auto-signé lors de son installation. Voyons ce certificat :
Si nous devions faire du travail de pro, il nous faudrait obtenir un certificat pour Cyrus, signé par une racine de confiance. Nous nous en passerons ici et nous accepterons de façon définitive ce certificat. Eventuellement, nous verrons comment réaliser une autorité racine « maison » et signer nos certificats avec. L'interface TinyCA
permet avec Openssl
de réaliser ces choses assez simplement.
Nous retrouvons bien le message envoyé à « prof » il y a déjà quelques temps.
Nous ne sommes pas ici pour étudier IMAP, c'est déjà fait ailleurs. Il n'est donc pas utile de vérifier que la connexion IMAP est bien chiffrée pour tout ce qui concerne le login et les données, ni que le dialogue IMAP est bien correct. Ça fonctionne, ça nous suffira ici.
C'est du Maildir, nous pouvons créer à distance autant de dossiers dans des dossiers qu'il sera nécessaire pour bien classer nos messages. C'est un vrai serveur IMAP quoi.
Et d'où viennent donc ces certificats, utilisés avec STARTTLS ? Des options par défaut… Mais lisez donc le dovecot.conf
d'usine !