Postfix, Cyrus, etc.

Pour passer à l'étape supérieure, celle qui consiste à pouvoir « facilement » gérer :

  • plusieurs domaines de messagerie sur la même structure ;
  • plusieurs centaines de comptes de messagerie ;
  • les alias ;
  • les redirections ;
  • d'autres choses encore…

il va nous falloir quelque chose d'un peu plus sophistiqué. Nous allons voir pourquoi dans le détail, il est intéressant de construire une structure qui dispose de :

  1. une interface graphique un peu conviviale pour gérer les domaines, les comptes, etc.
  2. une base de données qui contienne toutes les informations concernant les comptes, leur(s) alias, leur(s) redirection(s), les mots de passe associés aux comptes ;
  3. un serveur POP et/ou IMAP capable de s'appuyer sur cette base pour authentifier les clients, capable aussi de gérer plusieurs domaines de messagerie ;
  4. un MTA qui sache chercher les informations dont il a besoin dans cette base de données, capable aussi de refiler simplement les messages destinés aux comptes dont nous avons la charge.

Ce qui existe

L'interface graphique

Il n'existe pas une infinité d'interfaces dans le monde libre. L'usage d'une telle interface n'est certes pas une obligation, un jeu de scripts en ligne de commande peut parfaitement faire l'affaire, mais dans le cas d'un « wrapper » en php par exemple, il faudra choisir le reste des composants en fonction.

  1. Qmailadmin, par exemple, imposera le choix de Qmail + Vpopmail + ezmlm. Ce peut être un bon choix, si l'on est satisfait par Qmail) ;
  2. Postfix.admin en PHP implique, comme son nom l'indique, l'emploi de Postfix, mais aussi de MySQL et d'un serveur POP/IMAP comme Dovecot ou Courier. A voir si l'on ne veut pas de Cyrus ;
  3. Open-Xchange est bien plus qu'une simple interface de gestion de messagerie, il s'agit d'une solution complète de travail collaboratif. Cette solution s'appuie sur Postfix, MySQL et Cyrus pour la partie messagerie ;
  4. Openmailadmin présente un intérêt certain, mais nécessite une version récente de PHP5 (Debian Lenny). Ce choix induit Postfix, MySQL et Cyrus, très proche donc de la solution adoptée ici ;
  5. Web-Cyradm est également une interface graphique en php. Bien que ce projet ne semble pas jouir d'une vitalité exemplaire, il offre les fonctionnalités nécessaires. Sa licence GPL permettra aussi de l'adapter en toute liberté à chacun des besoins spécifiques. Ce sera notre choix final.

Les bases de données

MySQL ne se présente plus. Mais il est possible d'envisager l'emploi d'autres solutions, comme PostgreSQL ou encore l'annuaire OpenLDAP.

Un annuaire LDAP n'est pas une chose facile à gérer. A moins de vouloir y centraliser d'autres informations que celles réservées à la messagerie, comme les comptes utilisateurs, les carnets d'adresses etc. ce n'est sans doute pas la solution idéale.

Serveurs POP et IMAP

Il en existe de nombreux. Les plus connus et aussi les plus utilisés sont probablement :

  • Dovecot, déjà vu sur ce site dans le chapitre « 020postfix2 ». C'est sans doute un excellent choix ;
  • Courier-imap fait partie de la suite courier-mta, il en est le constituant probablement le plus employé. Idéal avec Qmail et tout à fait exploitable avec Postfix ;
  • Cyrus imap est une solution lourde mais riche. Il gère complètement les domaines et tout l'archivage des messages. Il suffit d'indiquer au MTA comment lui transmettre les messages locaux. De plus, Cyrus permet la mise en place de dossiers partagés IMAP et de serveurs de news. Ces composants sont surtout intéressants dans le cadre du travail collaboratif.

Les MTA

Là encore il y a du choix :

  • Courier-mta. Je n'en connais que le composant Courier-imap et ne saurais comparer cette solution aux autres ;
  • Exim est le MTA proposé par défaut sur les distributions Debian. Il est hautement configurable, mais pas très simplement. Sa conception monolithique peut déplaire, mais il n'est pas connu pour ses failles de sécurité. Ce peut être un choix judicieux ;
  • Postfix est certainement le MTA qui a la meilleure presse. Il est flexible, plutôt facilement configurable, monte bien en charge et son architecture lui permet d'avoir la réputation d'une grande robustesse.

Laissons reposer Sendmail en paix. Il existe encore d'autres solutions, mais celles-ci sont certainement les plus utilisées.

Le choix proposé

Soyons clairs. Le choix proposé ici n'est pas forcément le meilleur. Nous l'avons vu, le contexte, les goûts personnels, les éventuelles évolutions du système peuvent amener à d'autres choix.

  1. Cyrus est un serveur POP/IMAP de qualité, qui présente de nombreuses possibilités, des outils de maintenance efficaces, et, si nous envisageons d'évoluer vers des solutions de travail collaboratif comme Open Xchange, un choix pertinent ;
  2. Postfix est un MTA de qualité, modulaire, relativement facile à configurer, également choisi dans la solution Open Xchange ;
  3. MySQL (MariaDB) est une base de données réputée et facile à maintenir ;
  4. Web-cyradm bien qu'accusant son âge, est conçu justement pour exploiter ces composants :-D

Reste à mettre tout ceci en pratique. Il nous faudra aussi quelques accessoires comme SASL, PAM, TLS pour l'authentification et la sécurisation. Également un Apache et les librairies PHP pour l'interface d'administration. Notons que l'excellent nginx accompagné du php-fpm ferait tout aussi bien l'affaire.