Home Contact Download

asyd.net

Welcome to Bruno Bonfils's (aka asyd homepage).

Introduction

Vue d'ensemble

Légende :

Ellipse jaune Programmes
Carré jaune Fichier ou queue
Carré bleue map
  • Les programmes qui sont dans le carré noir sont contrôlés par le programme master de postfix

Pour garder ce schéma lisible, certains points ont été omis :

  • Les outils CLI de Postfix
  • Le programme master
  • Les requêtes DNS effectuées par smtpd et smtp
  • La rééecriture d'adresse
  • Le flux des messages transférés par le MDA
  • Les notifications
  • Les triggers

Les fichiers de configuration

main.cf

Ce fichier contient la déclaration des variables de configurations au niveau globale.

myhostname = mail.asyd.net
mydestination = localhost, $myhostname

Note il n'est malheureusement pas possible de définir ses propres variables

master.cf

Ce fichier - utilisé par le daemon master - déclare tous les daemons et programmes qui seront utilisés par postfix.

Voici le contenu d'un fichier master.cf basique

service type private unpriv chroot wakeup maxproc command + args
smtpinetn----smtpd
pickupfifon--60 1 pickup
cleanupunixn--- 0 cleanup
qmgrfifon-- 300 1 qmgr
rewriteunix-----trivial-rewrite
bounceunix----0bounce
deferunix----0bounce
traceunix----0bounce
verifyunix----1verify
flushunixn--1000?0flush
proxymapunix--n--proxymap
smtpunix-----smtp
relayunix-----smtp
showqunixn----showq
errorunix-----error
localunix-nn--local
virtualunix-nn--virtual
lmtpunix--n--lmtp
anvilunix--n-1anvil
tlsmgrunix---1000?1tlsmgr
scacheunix----1scache
discardunix-----discard

smptd

smtpd est le daemon qui reçoit les connexions respectant les protocoles SMTP et ESMTP. Par défaut, une seule instance de ce daemon est executé, cette instance est déclarée dans le fichier master.cf de la façon suivante :

smtp      inet  n       -       -       -       -       smtpd

Les nombreuses options de ce daemon sont décrites dans la page de manuel smtpd(8). Celles-ci sont généralement définies de manière globale dans le fichier main.cf mais peuvent être redéfinies (pour chaque instance) dans le fichier master.cf en utilisant l'option -o

Les options principales

mydestination

Liste des domaines considérés comme locaux qui seront traité via l'agent de transport local (variable $local_transport).

Exemple

mydestination = localhost, localhost.localdomain, asyd.net, solaris-fr.org

mynetworks

Liste des réseaux de confiance. Typiquement les réseaux depuis lesquels le relai est autorisé par défaut.

Exemple

mynetworks = 127.0.0.0/8, 192.168.1.0/24

Les restrictions

Les MDA (delivery agents)

Les locaux

local

virtual

procmail

Courier (maildrop)

Cyrus

Les maps

Une map permet à partir d'une clée d'obtenir une ou plusieurs informations. Pour que postfix puisse utiliser une map sous format fichier, il faut la compiler à l'aide de l'outil postmap.

Pour chaque map, on peut utiliser plusieurs sous couches, on peut citer : (liste non exhausive)

  • un fichier texte
  • un annuaire supportant le protocole LDAP
  • une base mysql
  • une base postgresql

Pour les types de map avancées (autre que fichier), certaines déclarations sont nécessaires (le serveur, etc..). Certaines permettent d'écrire soient même les requêtes (LDAP), d'autres utilises des requêtes écrites en dure (mysql, à verifier néanmoins), obligeant l'administrateur à utiliser une structure de donnée fixe.

transport

La map transport permet de définir quelle sous couche utilisée pour transférer (délivrer) le message. Par défaut, la même action est effectuée pour tous les messages, mais il est possible de spécifier l'action en fonction de l'adresse de destination.

Une entrée dans la map transport est définie comme suit :

masque_de_recherche          action

Plusieurs masques de recherche sont possibles :

  • utilisatateur+extension@domaine
  • utilisateur@domaine
  • domaine
  • .domaine

Une action est définie de la manière suivante

méthode_de_transport:hôte_suivant

La méthode de transport doit être défiie dans le fichier master.cf. Le type de l'argument (optionel) hôte_suivant est dépendant de la méthode de transport choisie. Par exemple, pour un transport de type SMTP, le champ hôte suivant correspond au nom du serveur où transférer le message (via le protocole SMTP).

Exemple

FIXME

alias

access