date: 29 Oct 2009 title: Home serveur : configuration du serveur IMAP - Dovecot tags: dovecot, auto-hébergement, mail, planet-libre xrefs: home-serveur-tri-du-courrier-avec-sieve.txt, home-serveur-installation-du-serveur-web.txt, home-serveur-premiers-reglages.txt, home-serveur-proteger-son-serveur-configuration-du-pare-feu.txt, home-serveur-proteger-son-serveur-configuration-de-fail2ban.txt, home-serveur-recuperer-ses-mail-avec-fetchmail.txt, home-serveur-installation.txt, home-serveur-quelques-astuces-bien-utiles.txt, home-serveur-configuration-du-serveur-de-mail-postfix.txt, home-serveur-utilisation-de-cles-pour-ssh.txt, home-serveur-openssh.txt, home-serveur-sauvegarde-des-maildirs.txt On commence d'abord par installer Dovecot : sudo apt-get install dovecot-imapd ## Création de la boîte mail Nous allons utiliser le format maildir au lieu de mbox, ce qui permet d'avoir un fichier par mail. Il faut donc créer un boîte mail par utilisateur du système (vous pouvez bien sûr l'appeler comme vous voulez) : maildirmake.dovecot ~/mails Si vous avez plusieurs utilisateurs, répétez l'opération pour chaque compte, en précisant à ce moment, le propriétaire du répertoire : sudo maildirmake.dovecot ~/mails user Si vous comptez ajouter des utilisateurs par la suite, il est pratique de créer une boîte mail dans /etc/skel/. /etc/skel contient tous les fichiers qui devront être copiés dans le home du futur utilisateur (si vous regardez, il contient par exemple le .bashrc, le .profile, ...). Dans ce cas, exécutez sudo maildirmake.dovecot /etc/skel/mails Une fois la boite mail créée, éditez le fichier main.cf de Postfix pour rajouter le chemin de la boite mail : home_mailbox = mails/ Par la même occasion, commentez la ligne "mailbox_command = procmail -a "$EXTENSION"" car nous n'avons pas encore configuré procmail, et il vas nous gêner pour faire les tests. Pour voir si jusque là tout marche, envoyez vous un mail sur login@mon-domaine.tld. Vous devrez le retrouver dans le fichier ~/mails/new/xxx. Si c'est bon, c'est que le serveur smtp et la distribution locale du courrier fonctionnent, et qu'on peut alors s'attaquer à IMAP ## Configuration de Dovecot Ouvrez le fichier de configuration de Dovecot, /etc/dovecot/dovecot.conf et modifiez le paramètre mail_location comme suit : mail_location = maildir:~/mails:LAYOUT=fs Le "LAYOUT=fs" permet de faire en sorte que les dossiers que vous créez pour trier vos mails (dans votre logiciel ou le futur webmail qu'on installera) soient de vrais dossiers au niveau du système de fichier. Je trouve ça personnellement mieux. Selon la doc de dovecot, pour avoir de meilleures performances, changer ce paramètre à yes : maildir_copy_with_hardlinks = yes ## Authentification Rappelez vous, dans le billet précédent, on avait installé un serveur d'authentification, SASL, pour Postfix. Nous allons le réutiliser pour Dovecot. À la section Authentification du fichier de conf de Dovecot, recherchez la ligne "auth default {". Recherchez alors le sous ensemble "socket listen {", décommentez le et remplissez le comme ceci : socket listen { client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } Retournez encore dans le fichier /etc/postfix/main.cf pour rajouter ces 2 lignes : smtpd_sasl_path = private/auth smtpd_sasl_type = dovecot ## TLS Comme avec postfix, nous allons utiliser TLS pour sécuriser les transferts entre les clients et le serveur. Mais cette fois c'est beaucoup plus simple, car, à l'installation, dovecot a déjà généré un certificat et une clé privée. En plus, TLS est activé par défaut dans la configuration, donc vous n'avez rien à faire ! ## Ouverture du port IMAP Vous l'aurez deviné, il faut encore ouvrir un port. C'est la même procédure qu'avant. Rajoutez ces 2 lignes à la configuration d'iptables : # Autorise les connections IMAP iptables -A INPUT -p tcp --dport 143 -j ACCEPT ## Fail2ban Si vous regardez les filtres disponibles, fail2ban ne contient rien pour Dovecot. Ce n'est pas un problème, il suffit d'en créer un à l'aide d'expressions régulières. Prenons celui de la [doc de Dovecot](http://wiki.dovecot.org/HowTo/Fail2Ban) : Créez un nouveau fichier qui contiendra le filtre : sudo vim /etc/fail2ban/filters.d/dovecot-pop3imap et mettez y le contenu suivant : [Definition] failregex = (?: pop3-login|imap-login): (?:Authentication failure|Aborted login \(auth failed|Disconnected \(auth failed).*rip=(?P\S*),.* ignoreregex = Vous pouvez alors l'utiliser dans jail.conf : [dovecot-pop3imap] enabled = true filter = dovecot-pop3imap action = iptables-multiport[name=dovecot-pop3imap, port="pop3,imap", protocol=tcp] logpath = /var/log/maillog maxretry = 20 findtime = 1200 bantime = 1200 N'oubliez pas bien sûr de redémarrer un peu tous les services dont la conf à été modifiée, c'est à dire fail2ban, sasl, postfix et dovecot.