Installer le SSL sur Dovecot
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