Authentification SMTP par Dovecot après passage de Ubuntu 11.04 à 11.10

English:
English: (Photo credit: Wikipedia)

La mise à jour de mon système ne s’est pas déroulée sans anicroche. On a vu au billet précédent que la mise à jour de Dovecot n’est pas exempte d’imperfection. Je fus par ailleurs au regret de constater que l’accès SMTP avec authentification depuis mon N900 ne fontionnait plus non plus.

La configuration de serveur SMTP Postfix utilise Dovecot comme authentification. Comme je souhaite utiliser une authentification sécurisée (indentifiant et mot de passe pas en clair), on doit indiquer à Dovecot l’utilisation de la methodes login. Pour cela dans le fichier /etc/dovecot/conf.d/10-auth.conf

auth_mechanisms = plain login

Dovecot et Roundcube sous Ubuntu 11.10

Screenshot of Ubuntu 11.10 (Oneiric Ocelot)
Screenshot of Ubuntu 11.10 (Oneiric Ocelot) (Photo credit: Wikipedia)

Depuis plusieurs mois Ubuntu 11.10est sorti mais  j’ai repoussé la mise à jour de ma version 11.04 car étant donné que ma  machine me sert également de serveur, le moindre hic aurait engendré des interruptions de services essentiels quand on héberge comme moi sa propre messagerie. Cependant la version 12.04 est sur le point de sortir, aussi pour ne pas être en retard de trop, j’ai franchi le pas en mettant à jour mon Ubuntu 11.04 vers la 11.10 !

J’ai bien pris soin de conserver mes fichiers de configuration pour les logiciels n’ayant évolué que dans des versions de correction de bug et le système redémarra parfaitement. Il faut dire que la présence du raid1 me fait toujours un peu peur. Les applications web fonctionnaient de nouveau (Elgg, status.net) mais ce n’était pas le cas de la messagerie ! En effet, la réception de mail était cassée ainsi que le webmail Roundcube.

Comme la 11.10 était sortie il y a presque 6 mois, mes problèmes ont déjà dû être résolus pensais-je. Effectivement, la réception de mail ne marche plus en 11.10 qui remplace Dovecot 1.2 par Dovecot 2.0. La faute en incombe à un appel qui utilise un paramètre obsolète. Je trouve cela dommage car c’est un problème interne à Dovecot que la procédure de mise à jour ne gère pas. L’installation de Ubuntu 11.10 from scratch n’a semble-t-il pas cet inconvénient. La solution préconisée ici consiste à exécuter la commande suivante:

sudo postconf -e "mailbox_command = /usr/lib/dovecot/deliver -c
/etc/dovecot/conf.d/01-mail-stack-delivery.conf -m "${EXTENSION}""

Le problème avec Roundcube était moins loquace. La base de donnée était devenue inaccessible (?) et devant l’incohérence de la documentation en ligne de Roundcube (version 0.7.2) avec ce qui est installé sur mon poste (version 0.5.4), je préférai opter pour une installation manuelle de la version la  plus récente. Pour une plus grande facilité il est préférable de télécharger la version complète (pas la GPL only).  Ainsi une création de base plus tard et quelques cliques plus loin, mon webmail Roundcube était de nouveau fonctionnel et apte à me rendre de grands services.

Serveur mail personnel

SMTP transfer model Blue arrows can be impleme...
Image via Wikipedia

Le webmail c’est pratique. Un navigateur suffit pour accéder à toute sa correspondance numérique. Malheureusement quand l’accès à internet est défaillant ou que le fournisseur de service est en panne, on ne peut pas consulter ses mails. On se rend compte alors de l’intérêt d’un client lourd qui rappatrie en local les mails.

La client lourd n’est cependant pas la solution à tous les maux. En effet les mails sont toujours hébergés sur un serveur, celui du webmail ou de son FAI. La boîte aux lettres de l’utilisateur n’est pas sur son poste mais toujours située ailleur. Ainsi quand le mail est réputé livré, il n’est en fait que dans la boite au lettre au bout du jardin ou dans le hall de l’immeuble, il faut encore que l’utilisateur aille relever le courrier. Que se passe-t-il si il n’y a pas d’internet à ce moment là ? Où que le fournisseur de mail est défaillant ?

La solution réside dans la mise en place d’un serveur mail personnel. C’est-à-dire avoir chez soi son MTA/MDA. Ainsi dès qu’un mail est réputé livré i.e. quand un utilisateur envoie un mail et qu’il n’a pas de retour qui l’insulte, le mail doit effectivement avoir été remis dans la boite de son destinataire. Comme le MDA est chez le destinataire on a résolu le problème.

Le programme Postfix couvre ce besoin. Ainsi Postfix est capable d’envoyer des mails soit directement via sendmail soit via SMTP quand l’utilisateur n’est pas sur la machine où s’exécute Postfix. De même Postfix va recevoir les mails qu’on nous envoi et qui proviennent par exemple du MTA du FAI de notre correspondant, et ira les mettre dans la boîte du bon utilisateur local à la machine. Postfix nous permet d’être autonome en envoi et en réception des mails.

L’installation de Postfix se fait naturellement depuis le dépôt et il ne reste qu’à modifier le fichier /etc/mailname pour y mettre le nom du serveur mail. Par exemple si notre adresse mail sera toto@monmail.com alors il faudra mettre monmail.com dans ce fichier.

Afin que nos correspondant puissent indiquer notre adresse toto@monmail.com dans le champ destinataire des mails, il faut que le domaine monmail.com soit enregistré comme champ MX (Mail Exchange) des entrées DNS. Ainsi quand le MTA de notre correspondant cherchera à qui s’adresser pour envoyer le mail à toto@monmail.com il trouvera quelle machine (IP) contacter. Commençons par déclarer un nom DNS de type adresse (A) qui associe à mx.monmail.com (nom arbitraire dans le domaine) notre adresse internet publique i.e. l’adresse de notre box ADSL en général. Puis créons une entrée de type Mail Exchange (MX) qui pointe vers mx.monmail.com.

A ce stade notre correspondant ou plus précisément son fournisseur de mail (google ou leur FAI par ex) va contacter notre box ADSL. IL reste à paramétrer le routeur de notre box ADSL (cas de la Freebox) pour rediriger les entrées sur le port 25 vers l’IP de notre machine qui fait office de serveur de mail.

A ce stade Postfix sera contacté et le mail va atterrir dans la boîte local de l’utilisateur toto i.e. /var/mail/toto. Nous pourrions en rester là car la commande mail permet de consulter ses mail en ligne de commande et un client lourd comme Evolution peut se paramétrer pour recevoir les mails en provenance du fichier mbox /var/mail/toto et envoyer les mails via sendmail. De ce fait envoi et réception passe par notre serveur mail Postfix.

Cependant nous voulons aussi pouvoir utiliser une machine différente de notre serveur mail pour envoyer (écrire) et recevoir (lire)  des messages. Autrement dit il faut que notre serveur mail soit accessible depuis n’importe quelle machine connectée à internet. Pour la lecture des mail cela peut être fait par le protocole IMAP et pour ce faire on doit installer un serveur IMAP tel que Dovecot. L’installation de Dovecot se fait naturellement depuis le dépot en faisant un

sudo apt-get install dovecot-postfix

Sous Ubuntu 11.04 la configuration par défaut est pleinement fonctionnelle: IMAP, authentification sécurisée et SSL (IMAP4S). L’authentification se base sur les utilisateurs locaux du serveur mail. L’envoi de mail se fera en SMTP et Postfix a été automatiquement reconfiguré pour que l’accès au MTA depuis l’extérieur soit possible pour n’importe quelle adresse de destinataire uniquement si l’authentification est correcte. Donc notre MTA ne sera pas un relais SMTP exploitable par des pirates spammeurs.

Nous avons alors une solution complète…pour l’utilisation d’un client lourd. Comme nous sommes exigeant nous voulons aussi avoir l’argent du beurre afin d’accéder à notre messagerie depuis n’importe quel navigateur. Nous devons installer un webmail. Roundcube est un webmail qui s’installe en un clin d’oeil. L’écran de connexion demande les identifiants utilisé pour le compte IMAP et le serveur IMAP qu’il faudra renseigné à localhost si le webmail s’exécute sur la même machine que le serveur IMAP.

Postfix, Dovecot et RoundCube nous donnent ainsi une solution complète et autonome de messagerie.