Pansebete

Une note autocollante repositionable sur une tête de bois

Installer un serveur mail avec Postfix et Dovecot

06/07/2014 ⋅ Aucun commentaire

Par bendia

A y est, je dispose de mon propre serveur mail. J'ai rien inventé et d'autres ont écrit sur le sujet avant moi (merci à eux d'ailleurs ;) ). Je ne vais donc indiquer ici que quelques précisions que je n'ai pas trouvées dans les différents tutos que j'ai suivis et qui m'ont permis d'arriver jusqu'ici et vous renvoyer vers les tutos en question pour le reste.

Les différentes solutions


Dans le couple, Postfix est le MTA (pour Mail Transfert Agent). C'est lui qui envoie et reçoit les courier via le protocole SMTP. Dovecot, qui, outre son rôle de serveur POP3 et IMAP sert également de MDA (pour mail delivery agent). Il va donc délivrer les mail dans la bonne boite au lettre. En tant que serveur POP3 et IMAP, il va permettre au logiciel de messagerie de récupérer et gérer les mails.
On peut utiliser Postfix pour gérer un très grand nombre de comptes mail via une base de donnée. Cela implique d'en définir l'emplacement, l'architecture et d'indiquer à Postfix les requêtes à effectuer pour réaliser ses opérations. J'ai trouvé ce tuto qui explique cette méthode.

Cependant, après un essai non concluant, j'ai préféré passer à plus simple, à savoir utiliser les comptes système comme comptes mails. C'est parfaitement faisable lorsque le nombre de comptes n'est pas trop important, et on peut même gérer les mails de plusieurs domaines et avoir plusieurs adresses par compte. Pour cela, j'ai suivi le tuto de Thuban. Cependant, quelques détails n'y sont pas expliquer, notamment la validation d'un compte ou l'utilisation d'un client de messagerie.

Utiliser un client de messagerie


Pour se parler entre eux, les serveurs SMTP utilisent le port 25. Cependant, ce port ne doit pas être employé par les clients de messagerie (Evolution, Icedove ...) car il est souvent bloqué par les box des FAI vers d'autre serveur SMTP que le leur. De ce fait, deux autres ports sont utilisés : le port 587 pour le service submission, et le port 465 pour le service smtps. Or, par défaut, postfix ne lance pas ces services. De ce fait, même si, après la configuration de Postfix/Devecot les mails partent bien lorsqu'il sont envoyés directement par le serveur via la commande mail ou une application de type webmail comme Squirel ou Roundcube, on reçoit une erreur lorsqu'on utilise un client de messagerie pour l'envoi.

Il faut donc modifier le fichier /etc/postfix/master.cf, en décommentant les lignes submission et/ou smtps pour indiquer à Postfix d'écouter sur ces ports. Redémarrer le service avec

service postfix restart

Ajouter un compte utilisateur


Pour ajouter un compte mail tout simple, on utilise la commande

 adduser --shell=/bin/false $VOTRE_COMPTE

Pour vérifier le fonctionnement du compte et créer le dossier de réception, on voit souvent mention de l'utilisation de telnet.

telnet serveur.net 25
ehlo serveur.net
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 pansebete.net ESMTP Postfix (Debian/GNU)
ehlo serveur.net
250-serveur.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from: <user@serveur.net>
250 2.1.0 Ok
rcpt to: <user@serveur.net>
250 2.1.5 Ok
quit

L'adresse de l'émetteur et du destinataire doit bien être entre chevron, ce n'est pas une convention d'écriture.

Cependant, avant de me rendre compte de ça et de pouvoir utiliser telnet, j'ai validé les comptes avec la commande mail et ça fonctionne très bien aussi.

Gérer des adresses virtuels


On peut disposer de plusieurs adresses par compte.

Pour gérer des adresses et des comptes virtuels, utiliser virtual_alias_maps= hash:/etc/postfix/virtual dans le fichier /etc/postfix/main.cf.

Il faut alors créer le fichier d'alias /etc/postfix/virtual avec la syntaxe suivante (voir la doc de Postfix

postmaster@serveur.net postmaster
president@serveur.net       jean
tresorier@serveur.net       paul

Mettre à jour avec

postmap /etc/postfix/virtual
postfix reload

Voilà, c'est tout pour l'instant. Je n'ai pas encore mis en place de vérification dkim ni de webmail. Il semble également que Postgrey ait éventuellement besoin d'un peu de configuration mais je n'ai pas encore pris le temps de m'y pencher.

Aucun commentaire