Installer le SSL sur Dovecot

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Dovecot et le SSL

Préparation de l'environnement

dans un premier temps, nous allons nous occuper de la conf général de dovecot

Dans le protocole imap, nous allons rajouter un paramètre qui permet de modifier le comportement de Dovecot face à certains clients mails et de leurs bugs éventuels. Pour cela ouvrez le fichier :

root@facteur:~# vi /etc/dovecot/dovecot.conf

protocol imap { imap_client_workarounds = outlook-idle delay-newmail netscape-eoh tb-extra-mailbox-sep }

outlook-idle : Outlook et Outlook Express ne coupent jamais avec une commande IDLE. Si Dovecot ne reçoit rien pendant 30 minutes, il coupe la connexion. C’est correct, mais Outlook Express ne se reconnecte pas et vous ne voyez donc plus l’arrivée de nouveaux messages.

netscape-eoh : force l’ajout d’une ligne vide en fin de header des mails. Normalement cette ligne vide est présente. Mais en la forçant, on en est certain

tb-extra-mailbox-sep : en théorie seulement nécessaire avec des boites au format mailbox

Dovecot envoie par défaut ses logs dans syslog. Pour décharger le fichier et avoir une meilleur vue de ce qui se passe au sein de dovecot, nous allons lui créer son propre fichier de logs Rajouter dans le fichier /etc/dovecot/dovecot.conf la ligne ci-dessous. Et donnez lui les bons droits

info_log_path = /var/log/dovecot-info.log

chown facteur.facteur /var/log/dovecot-info.log && chmod 770 /var/log/dovecot-info.log

Création du fichier de log

root@facteur:~# vi /etc/logrotate.d/dovecot

et inscrivez les lignes ci-dessous dedans

/var/log/dovecot-info.log {

 missingok
 notifempty
 delaycompress
 sharedscripts
 postrotate
   /bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true
 endscript

}

Mise en place du SSL

Nous retournons dans le fichier dovecot.conf pour modifier la section : protocol imap et rajouter à la suite les lignes suivantes

root@facteur:~# vi /etc/dovecot/dovecot.conf

protocol imap { imap_client_workarounds = outlook-idle delay-newmail netscape-eoh tb-extra-mailbox-sep listen = 127.0.0.1:143 ssl_listen = *:993 }

Les certificat SSL ont étés générés lors de l'installation. Mais rien ne vous empêche de mettre vos propres certificats. Les certificats auto-signé de Dovecot se trouvent dans /etc/ssl/certs/dovecot.pem

Vous pouvez les mettre dans la section protocol imap ou dans le fichier global (en début). L'avantage de les mettre dans la section imap, c'est que vous pouvez générer d'autres certificats ou les mettre dans la section protocol pop3. A vous de voir

Modifier la variable disable_plaintext_auth = no dèjà présente ci-dessous à "yes", et ajouter les lignes suivantes.

disable_plaintext_auth = yes auth_mechanisms = plain ssl = yes ssl_cert_file = /etc/ssl/certs/dovecot.pem ssl_key_file = /etc/ssl/private/dovecot.pem

relancer dovecot

root@facteur:~# /etc/init.d/dovecot restart

Faisons quelques petites vérifications.

root@facteur:~# lsof -i tcp:993

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dovecot 3018 root 8u IPv4 6764 0t0 TCP *:imaps (LISTEN) imap-logi 3029 dovecot 5u IPv4 6764 0t0 TCP *:imaps (LISTEN) imap-logi 3030 dovecot 5u IPv4 6764 0t0 TCP *:imaps (LISTEN) imap-logi 3031 dovecot 5u IPv4 6764 0t0 TCP *:imaps (LISTEN)

root@facteur:~# netstat -tulpen | grep LISTEN .... tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 0 6764 3018/dovecot ....

root@facteur:~# openssl s_client -connect 127.0.0.1:993

CONNECTED(00000003) depth=0 /O=Dovecot mail server/OU=facteur.bougnat.org/CN=facteur.bougnat.org/emailAddress=root@facteur.bougnat.org verify error:num=18:self signed certificate verify return:1 depth=0 /O=Dovecot mail server/OU=facteur.bougnat.org/CN=facteur.bougnat.org/emailAddress=root@facteur.bougnat.org verify return:1 --- Certificate chain

0 s:/O=Dovecot mail server/OU=facteur.bougnat.org/CN=facteur.bougnat.org/emailAddress=root@facteur.bougnat.org
  i:/O=Dovecot mail server/OU=facteur.bougnat.org/CN=facteur.bougnat.org/emailAddress=root@facteur.bougnat.org

--- Server certificate


BEGIN CERTIFICATE-----

MIIEdzCCA1+gAwIBAgIJAIUkTR2yA5P0MA0GCSqGSIb3DQEBBQUAMIGDMRwwGgYD ..... 7aBwPRRdyKwgx4Ocz8ab2iWYrQ21N/6aB34DODTaVDLn1IP/h4XgZLBC6w==


END CERTIFICATE-----

.... --- No client certificate CA names sent --- SSL handshake has read 1846 bytes and written 319 bytes --- New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE SSL-Session:

   Protocol  : TLSv1
   Cipher    : DHE-RSA-AES256-SHA
   Session-ID: 193039B58181C09ABBE4364CA961AD3A77F5A4FB0BAA7BA99199C41EE845FBE2
   Session-ID-ctx:
   Master-Key: FB2FFB51A9AC7F82C65FA9A494AE5E8D5F7D6492D3CF50C8444ACBD915F1851F51D07B7997DBE03B5A2B0F2DD7BFC4E9
   Key-Arg   : None
   Start Time: 1311957648
   Timeout   : 300 (sec)
   Verify return code: 18 (self signed certificate)

---

  • OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE AUTH=PLAIN] Dovecot ready.

a1 LOGIN essai@essai.org essai a1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in a2 LIST "" "*"

  • LIST (\HasNoChildren) "." "Sent"
  • LIST (\HasNoChildren) "." "Junk"
  • LIST (\HasNoChildren) "." "Trash"
  • LIST (\HasNoChildren) "." "Drafts"
  • LIST (\HasNoChildren) "." "dovecot.sieve"
  • LIST (\HasNoChildren) "." "INBOX"

a2 OK List completed. a3 EXAMINE INBOX

  • FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
  • OK [PERMANENTFLAGS ()] Read-only mailbox.
  • 11 EXISTS
  • 2 RECENT
  • OK [UNSEEN 10] First unseen.
  • OK [UIDVALIDITY 1307884974] UIDs valid
  • OK [UIDNEXT 12] Predicted next UID
  • OK [HIGHESTMODSEQ 1] Highest

a3 OK [READ-ONLY] Select completed. a4 LOGOUT

  • BYE Logging out

a4 OK Logout completed. closed

Redémarrons les services

root@facteur:~# service dovecot restart

Restarting IMAP/POP3 mail server: dovecotIf you have trouble with authentication failures, enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork This message goes away after the first successful login. . root@facteur:~# service saslauthd restart

Stopping SASL Authentication Daemon: saslauthd. Starting SASL Authentication Daemon: saslauthd.

root@facteur:~# service postfix restart

Stopping Postfix Mail Transport Agent: postfix. Starting Postfix Mail Transport Agent: postfix.

les clients peuvent se connecter au serveur IMAP sur le port 993 et toutes les communications seront chiffrées

Si vous vous connectez au serveur avec outlook express, lors du paramétrage de votre compte, n’oubliez pas de renseigner dans l'onglet "Avancé" le port 993 dans le champ "Courrier entrants (IMAP)" et de cocher "Ce serveur nécessite une connexion sécurisée (SSL)"

Astuces

mettre au debut du fichier /etc/dovecot/dovecot.conf les directives suivantes pour isoler la tâche de login

login_chroot = yes login_user = dovecot login_process_per_connection = yes