Domaines virtuels avec Postfix
Par Pierre le mardi 8 novembre 2005, 23:58 - Linux - Lien permanent
Une petite modif de la configuration de mon Postfix afin d'héberger plusieurs domaines
Suite à l'hébergement d'un nouveau domaine pour le site Web de mon petit frère Thomas pour le BDE de son école, j'ai reçu un mail destiné à webmaster@domaine.com mais qui, vu la configuration sommaire de ma messagerie.. a fini dans ma boîte aux lettres...
Heureusement il n'y en a eu qu'un, mais ceci m'a conforté dans le fait qu'il fallait que je fasse quelque chose !
J'ai donc fait quelques recherches sur la toile et après avoir laissé de côté les diverses solutions à base de MySQL et autres LDAP que je trouvais un peu lourdes dans le cadre d'un serveur personnel... Je suis tombé sur le Howto qui va bien : hébergement de sites virtuels avec Postfix.
Grosso modo, la problématique est simple... J'héberge 3 domaines sur ma machine : toto.com, titi.com, tata.com et dans la configuration qui était en place, quelque soit le domaine, un mail envoyé à un utilisateur user@toto.com arrivait dans la même boîte aux lettres que user@titi.com ou user@tata.com. Mon but étant bien entendu de distinguer ces 3 adresses pour qu'un mail envoyé à ces trois adresses arrive dans trois boîtes aux lettres différentes... !
Dans un premier temps j'ai donc modifié le fichier /etc/postfix/main.cf en remplaçant la ligne
mydestination = $mydomain, $myhostname, localhost.$mydomain, $myhostname.toto.com titi.com tata.com
par
mydestination = $mydomain, $myhostname, localhost.$mydomain, $myhostname.toto.com
ou $mydomain=toto.com
j'ai ensuite créé les deux domaines virtuels titi.com et tata.com en ajoutant les lignes suivantes :
virtual_mailbox_domains = titi.com tata.com virtual_mailbox_base = /virtual virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_minimum_uid = 100 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_alias_maps = hash:/etc/postfix/virtual
Le domaine toto.com n'est pas impacté par l'ensemble de ces manipulations.
Une fois ces lignes ajoutées, les messages à destination des domaines titi.com et tata.com seront délivrés en toute indépendance des utilisateurs Unix du serveur.
Lorsqu'un mail va arriver à destination de user@titi.com, Postfix va aller consulter ces deux maps /etc/postfix/vmailbox et /etc/postfix/virtual afin de savoir ce qu'il faut faire.
on renseigne donc ces deux fichiers :
cat /etc/postfix/vmailbox webmaster@titi.com titi.com/webmaster/Maildir/ admin@titi.com titi.com/admin/Maildir/ webmaster@tata.com tata.com/webmaster/Maildir/ admin@tata.com tata.com/admin/Maildir/
cat /etc/postfix/virtual @tata.com user@tutu.com mailing@titi.com user1@domain1.com, user2@domain2.com, user3@domain3.com
on crée l'arobrescence /virtual/titi.com ...
mkdir -p /virtual/titi.com/webmaster /virtual/tata.com/webmaster /virtual/titi.com/admin /virtual/tata.com/admin
puis les Maildir pour chaque utilisateur virtuel (dans le cas de Mailbox, seul /virtual/titi.com/ /virtual/tata.com/ sont à créer à priori)
maildirmake /virtual/tata.com/webmaster/Maildir/ ...
L'utilisateur Unix propriétaire de ces répertoires est alors créé
groupadd -g 5000 vmail useradd -g vmail -u 5000 vmail -d /virtual -m
Et enfin Postfix est redémarré :
/etc/init.d/postfix restart
A la suite de ça, si tout a été fait correctement, les comportements vont être les suivants :
- les mails à destination de user@toto.com seront délivrés comme ils l'étaient avant.
- Les mails à destination de webmaster@titi.com, admin@titi.com, webmaster@tata.com et admin@tata.com seront déposées dans les boîtes aux lettres virtuelles correspondantes
- Tous les autres mails à destination du domaine tata.com seront reroutés vers l'adresse user@tutu.com
- Les mails à destination de mailing@titi.com seront reroutés vers user1@domain1.com, user2@domain2.com et user3@domain3.com
- Tous les autres mails à destination de titi.com seront notifiés "User Unknown" par le système de messagerie.
En ce qui me concerne, j'ai pour l'instant laissé de côté la partie boîtes virtuelles, il faut en effet que je potasse la configuration du serveur IMAP que j'utilise : Courier-Imap. Donc pour le moment, c'est uniquement un systèe de redirections que j'utilise. Vu que la majorité des mails sont pour moi, je vais pas non plus multiplier les compte de messageries...! Par contre, c'est pratique car ça permet de multiplier les adresses mail afin de savoir d'où provient le mail et de pouvoir faire du tri et du filtrage facilement :
Par exemple, pour chaque site où je rentre mon mail, je mets le nom du site en lieu et place de ma véritable adresse, cela permet de déceler par quel intermédiaire mon adresse a pu être spammée (par exemple) ou de classer mes mails en fonction du destinataire... Et bien d'autres choses encore... 
Commentaires