Domaines Virtuels

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

La plupart des systèmes Postfix sont la destination finale de seulement quelques noms de domaine. Ceci inclut le nom de machine, [l'adresse IP] de la machine et parfois le nom du domaine parent. Le reste de ce document se réferera à ces domaines comme domaines canoniques. Ils correspondent généralement à la classe d'adresses "domaine local" de Postfix.

En plus des domaines canoniques, Postfix peut être configuré pour être la destination finale de plusieurs autres domaines. Ces domaines sont appelés "hébergés", car ils ne sont pas directement associés au nom de la machine. Ces domaines hébergés correspondent généralement à la classe d'adresses "domaine virtuel d'alias de postfix et/ou à la classe d'adresses domaine virtuel de boîtes-aux-lettres.

Mais attendez, il y a mieux!. Postfix peut être configuré pour être le serveur MX de secours d'autres domaines. Dans ce cas, Postfix n'est pas la destination finale de ces domaines. Il conserve le courrier lorsque le serveur MX principal ne fonctionne pas, et transfère le courrier dès qu'il fonctionne de nouveau.

Finalement, Postfix peut être configuré comme machine de retransmission du courrier à travers Internet. Evidemment, Postfix n'est pas la destination finale de ces messages.

2 Configuration

Avec l'approche décrite dans ce paragraphe, chaque domaine hébergé peut avoir ses propres informations, adresses électroniques, etc. Toutefois, il utilise toujours les comptes du système UNIX pour ses livraisons locales.

Avec les domaines d'alias virtuels, chaque adresse hébergée est un alias d'un compte du système UNIX ou d'une adresse extérieure. L'exemple suivant montre comment utiliser ce mécanisme pour le domaine exemple.com.

Configuration File /etc/postfix/main.cf
virtual_alias_domains = exemple.com ...autres domaines hébergés...
virtual_alias_maps = hash:/etc/postfix/virtual

Configuration File /etc/postfix/virtual
postmaster@exemple.com postmaster
info@exemple.com       joe
sales@exemple.com      jane
# Décommentez l'entrée suivante pour implémenter une adresse de collecte
# @exemple.com         jim
# ...alias virtuel pour d'autres domaines...

Notes :

  • Ligne 2 : le paramètre virtual_alias_domains indique à Postfix que le domaine exemple.com est un domaine d'alias virtuels. Si vous l'oubliez, Postfix rejetera le courrier (relais interdit) ou ne saura pas le livrer (le courrier pour exemple.com sera renvoyé à la machine elle-même.

Ne listez JAMAIS un domaine d'alias virtuels dans la liste des domaines mydestination!

  • Lignes 3-8 : le fichier /etc/postfix/virtual contient les alias virtuels. Avec cet exemple, le courrier de postmaster@exemple.com est livré au postmaster local alors que celui de sales@exemple.com est envoyé au compte UNIX jane. Le courrier de toutes les autres adresses du domaine exemple.com est rejeté avec le message d'erreur "User unknown".
  • Ligne 10 : l'entrée commentée (texte après #) montre comment implémenter une adresse de collecte qui reçoit tout le courrier des adresses du domaine exemple.com non listées dans le fichier d'alias virtuels. Ce n'est pas sans risque. Les spammers essaient d'envoyer du courrier semblant venir et à destination de n'importe quel nom possible. Une adresse de collecte est susceptible de recevoir de nombreux messages de spam ou de notification de messages envoyés avec une adresse n-importe-quoi@exemple.com.

3 Application des modifications

Lancez la commande suivante après modification du fichier virtual :

Command postmap
postmap /etc/postfix/virtual

Pour vérifier si une de vos adresse fonctionne bien, tapez ceci :

Command postmap
postmap -q user@exemple.com /etc/postfix/virtual

puis lancez cette commande après avoir modifié le fichier main.cf :

Command postfix
postfix reload

Note : les alias virtuels peuvent correspondre à une adresse locale, à une adresse extérieure ou au deux. Ils ne doivent pas nécessairement correspondre à des comptes du système UNIX de votre machine.

Les alias virtuels résolvent un problème : ils permettent à chaque domaine d'avoir ses propres adresses de courrier. Mais il en reste un : chaque adresse virtuelle correspond à un compte UNIX. A chaque nouvelle adresse, vous augmentez les comptes du système UNIX.

4 Utilisation Avancée

4.1 Redireiger tous les mails vers 1 personne

Vou souhaitez peut être pour des tests rediriger tous les mails d'une machine ou tout simplement qui vont taper sur ce serveur sur 1 adresse mail particulière. C'est chose faisable. Pour ça éditer le fichier de conf de postfix :

Configuration File /etc/postfix/main.cf
# on matche les mails qu'on va accepter avec des expression régulières
virtual_alias_maps = regexp:/etc/postfix/virtual

On va créer un fichier virtual :

Configuration File /etc/postfix/virtual
# on redigige tout vers quelqu'un qui va pouvoir lire les mails
/@/	moi@mycompany.com

5 FAQ

5.1 User unknown in virtual alias table

5.1.1 Rejet depuis le serveur interne

Si vous recevez un email du type :

User unknown in virtual alias table

Si c'est un retour de votre serveur interne, c'est qu'il y a un problème au niveau du fichier virtual. Verifiez que c'est bien le même dans "main.cf" et que vous avez correctement effectué la commande postmap.

5.1.2 Rejet depuis le serveur externe

Si vous recevez un email du type :

User unknown in virtual alias table

C'est certainement Amavis qui fait des siennes. Pour corriger ce problème, commentez cette ligne dans /etc/postfix/main.cf :

Configuration File /etc/postfix/main.cf
# receive_override_options = no_address_mappings

6 Ressources

Secure Virtual Mailserver : Postfix + OpenLDAP + Dovecot + Jamm + SASL + SquirrelMail
http://linux-attitude.fr/post/Vers-un-trou-de-ver