LINUX:Postfix-Configuration - redirection des mails en interne
→ retour au menu de Postfix-Configuration
But
Dans ce chapitre, nous désirons transférer les mails à un autre serveur de messagerie interne, privé. Cette approche a pour but de rassembler les mails des serveurs privés sur un seul qui dispose d'une infrastructure complète avec IMAP ou POP afin de pouvoir les consulter facilement
Table TRANSPORT
Nous introduisons l'utilisation de la table TRANSPORT.. Cette table permet de définir le mode de traitement des mails qui arrive sur notre serveur en fonction du domaine auquel le mail appartient. Nous avons recours à cette approche, même si à ce stade, il existe d'autres alternatives. Elle nous permettra une généralisation par la suite et une meilleure compréhension de cette partie du système Postfix.
Il est constitué de deux colonnes:
- La première correspond en une adresse mail ou une partie de celle-ci. Il peut prendre trois valeurs:
- Une adresse mail
- Un nom de domaine
- Une étoile ("*") pour symboliser toute adresse; ce type d’entrée doit être unique
- La seconde colonne correspond au domaine vers lequel le mail est redirigé en précisant le type de service et le port de communication; il a la forme SERVICE:MACHINE:PORT
Nous nommerons cette table "/etc/postfix/transport".
Dans le fichier de configuration des options "/etc/postfix/main.cf", nous devons ajouter une ligne:
transport_maps = hash:/etc/postfix/transport
Comme pour la table ALIASES, cette table doit être "compilée" par la commande suivante:
postmap /etc/postfix/transport
Il faudra évidemment relancer le service Postfix quand la configuration sera finalisée.
Mails locaux
Dans la configuration du chapitre précédent, on définissait les mails qui devaient être distribués localement via l'option "mydestination" reprise dans le fichier "/etc/postfix/main.cf". On va éliminer cette entrée et reporter son équivalent dans la table TRANSPORT.
Si on se souvient, sur le schéma du fonctionnement de base de Postfix, à droite, nous avons un processus nommé "local" qui distribue les mails qui doivent rester localement, dans les boîtes locales.
Dans le fichier de gestion des processus "/etc/postfix/master.cf", ce processus est repris au niveau du service "local". (voir le chapitre précédent)
Nous avons le nécessaire pour amender la table TRANSPORT.
Si dans le fichier "/etc/postfix/main.cf, nous avons la ligne:
myorigin = serverdb.home.dom
la ligne à ajouter dans le fichier "/etc/postfix/transport" est:
serverdb.home.dom local:
Si par contre dans le fichier "/etc/postfix/main.cf, cette ligne devient:
myorigin = home.dom
la ligne à ajouter dans le fichier "/etc/postfix/transport" sera:
home.dom local:
De la même façon, pour:
myorigin = adbweb.gslb.eu
on y verra:
adbweb.gslb.eu local:
Redirection de certains domaines vers un autre serveur privé
Supposons que nous ayons un autre serveur de messagerie interne, privé qui a pour rôle de centraliser les mails et de les rendre disponibles aux clients via des interfaces de type IMAP, POP ou WebMail. Nous nommerons ce serveur "serverdbmail.interne.dom"; il a pour adresse IP 192.168.1.110 et il gère deux domaines: "interne.dom" et "externe.dom".
Si on regarde, sur le schéma du fonctionnement de base de Postfix, à droite, nous avons un processus nommé "smtp" qui distribue les mails sur le réseau vers d'autres serveurs de messagerie..
Dans le fichier de gestion des processus "/etc/postfix/master.cf", ce processus est repris au niveau du service "smtp". (voir le chapitre précédent)
Donc dans le fichier "/etc/postfix/transport", nous ajoutons deux lignes à l'existant:
serverdb.home.dom local: interne.dom smtp:[192.168.1.110]:25 externe.dom smtp:[192.168.1.110]:25
Ce serveur distant accepte les mails dont les adresses des destinataires ont la forme user@interne.dom et user@externe.dom. Ces deux entrées permet la redirection de tous les mails pour ces deux domaines. C'est le service "smtp" via le processus "smtp" qui entre en action via le port réseau 25, port par défaut du protocole SMTP.
Le serveur destinataire est renseigné par sont adresse IP et est entre crochets. Si nous avions un serveur DNS interne et utilisé et où le serveur de messagerie y est renseigné par son nom, son adresse IP (A record) et sa fonction de serveur de messagerie (MX record), on pourrait se passer de ces lignes ou on pourrait remplacer l'adresse IP par son nom de machine sans crochet. Le fichier aurait la forme:
serverdb.home.dom local: interne.dom smtp:serverdbmail.interne.dom:25 externe.dom smtp:serverdbmail.interne.dom:25
Redirection par défaut vers un autre serveur privé
Une autre alternative serait de renvoyer tous les mails à destination non locale vers notre serveur de messagerie distante. Le fichier "/etc/postfix/transport" devient alors:
serverdb.home.dom local: * smtp:[192.168.1.110]:25
Ce serveur distant devient un relais, à lui de gérer tous les mails qui arrivent. Cette entrée doit être unique.
Table ALIASES
Jusqu'à maintenant, tous les mails du système sont envoyés à l'utilisateur "root" local par défaut. Ces mails vont être traités localement et vont se stocker dans le fichier "/var/mail/root".
Mais nous désirons les envoyer directement vers notre serveur central où nous pourrons les consulter par exemple, via IMAP. Pour y arriver, nous allons ajouter une ligne dans le fichier "/etc/postfix/aliases":
root: administrateur@interne.dom
Par cette commande, nous transformons le destinataire local "root" par un destinataire distant "administrateur@interne.dom". Au lieu d'utiliser la première ligne du fichier "/etc/postfix/transport" (service "local"), on utilise la seconde ligne (service "smtp" pour le domaine "interne.dom"). Notons que cette table ALIASES n'intervient que pour les utilisateurs locaux.
Ne pas oublier de la "recompiler" avec la commande:
newaliases
→ retour au menu de Postfix-Configuration