Dovecot: Serveur IMAP
Transcription
Dovecot: Serveur IMAP
tontonserver Dovecot: Serveur IMAP 1. Installation de dovecot Si votre distribution propose dovecot, installez-le avec votre gestionnaire de paquetages. Vérifiez s'il supporte postgreSQL. Je l'ai personnellement recompilé de cette manière: ./configure --with-pop3d --with-pgsql --with-gnu-ld make su make install Les fichiers de configuration sont situés sous /usr/local/etc/ et s'appellent dovecot*.conf 2. Configuration de dovecot Le fichier principal est très bien commenté. Attention, dans mon cas (recompilation) la plupart des chemins de recherche des binaires contenus dans le fichier sont faux. Par défaut, le fichier de configuration va chercher les binaires sous /usr/libexec. Dans mon cas, ils sont sous /usr/local/libexec. Assurez vous que les chemins correspondent. Je vais m'intéresser dans ce chapitre uniquement à l'aspect POP et IMAP concernant postgreSQL. Fichier /usr/local/etc/dovecot.conf: (...) # User database specifies where mails are located and what user/group IDs # own them. auth_userdb = pgsql /usr/local/etc/dovecot-pgsql-user.conf # Password database specifies only the passwords for users. http://www.tontonserver.com Propulsé par Joomla! Généré: 18 February, 2017, 23:37 tontonserver # http://wiki.dovecot.org/Authentication auth_passdb = pgsql /usr/local/etc/dovecot-pgsql-pass.conf (...) § Le fichier dovecot-pgsql-user.conf Pour ceux qui ont utilisés la libpq-fe.h, les variables ont un air de déjà-vu. Sinon, lire la documentation incluse avec dovecot, dovecot-pgsql.conf. Les variables sont § %u pour l'email complet § %n pour la partie user de user@domain § %d pour la partie domain de user@domain dovecot s'attend à recevoir en retour le chemin complet vers la boîte sous le nom "mail", l'uid propriétaire des fichiers sous 'uid' et le gid sous 'gid'. connect = host=127.0.0.1 dbname=vmail user=lecteur password=lire user_query = SELECT '/var/spool/vhosts/'||nom_domaine||'/'||nom_boite AS mail,5000 AS uid, 5000 AS gid FROM boites WHERE email = '%u' § Le fichier dovecot-pgsql-pass.conf § connect = host=127.0.0.1 dbname=vmail user=lecteur password=lire § default_pass_scheme = PLAIN § password_query = SELECT pw AS password FROM boites WHERE email='%u' Si vous modifiez un de ces deux fichiers, il faut redémarrer http://www.tontonserver.com Propulsé par Joomla! Généré: 18 February, 2017, 23:37 tontonserver dovecot pour qu'il le prenne en compte. Par défaut, il ne va pas les relire. ---FIXME---: la ligne connect= ne semble pas fonctionner (???) par contre, par la socket, cela passe, avec connect = dbname=vmail user=lecteur. Curieux. ---FIXME--- Lancez dovecot. Ajustez le niveau de log jusqu'à obtenir un niveau de verbosité suffisant. Il est possible d'utiliser /dev/stderr comme sortie de logs. Voir le fichier de configuration de dovecot et sa documentation associée. 3. Tests de la configuration Dans le chapitre précédent, nous avons envoyé un mail à l'utilisateur [email protected]. Le mot de passe associé dans la base était le crypt de 'secret'. Vérifions le fonctionnement: kevin@zipslack:~$ telnet localhost 110 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK dovecot ready. user [email protected] +OK pass secret +OK Logged in. list +OK 1 messages: 1 428 http://www.tontonserver.com Propulsé par Joomla! Généré: 18 February, 2017, 23:37 tontonserver . quit +OK Logging out. Connection closed by foreign host. Dovecot nous autorise bien a venir chercher le courrier Envoyez maintenant un mail à l'utilisateur [email protected], par exemple echo hello | mail -s "test" [email protected] Puis testez de nouveau dovecot avec l'utilisateur [email protected] et le mot de passe 'boum'. kevin@zipslack:~$ telnet localhost 110 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK dovecot ready. user [email protected] +OK pass boum +OK Logged in. list http://www.tontonserver.com Propulsé par Joomla! Généré: 18 February, 2017, 23:37 tontonserver +OK 1 messages: 1 507 . quit +OK Logging out. Connection closed by foreign host. kevin@zipslack:~$ dovecot a lu dans la base de données le mot de passe. Il n'a pas reconnu de cryptage (le pw ne commence pas par $1) et retombe en authentification par défaut, c'est à dire PLAINTEXT. 4. Remarques § Faites votre choix de cryptage par défaut de mots de passe. § Si une boite mail est vide, dovecot accepte le login, le pass, puis se déconnecte aussitôt. Cela peut être surprenant. Il est donc conseillé à chaque création de boîte d'envoyer un mail de bienvenue qui aura pour but réel de préparer l'arborescence de l'utilisateur. § Vous pouvez dès à présent lancer un client mail (mutt, thunderbird) et utiliser le serveur en POP ou en IMAP. Dans tous ces tests, j'ai souvent utilisé des valeurs par défaut. Faites attention en adaptant à votre configuration. Les fichiers dovecot-pgsql* contenant des mots de passe, il est conseillé de ne pas les laisser en lecture à tout le monde. Selon votre distribution, arrangez vous pour lancer à chaque démarrage le serveur dovecot. http://www.tontonserver.com Propulsé par Joomla! Généré: 18 February, 2017, 23:37 tontonserver http://www.tontonserver.com Propulsé par Joomla! Généré: 18 February, 2017, 23:37