Installation et configuration de Postfix

Stéphane RAULT -

Version 0.2 - 28 Février 2004

Version originale : http://www.espace-groupware.com/postfix/index.html

Rédiger une documentation est toujours un travail long et difficile. Vous trouverez sans aucun doute des fautes d'orthographes et peut être même techniques, n'hésitez surtout pas à me les signaler.

Les critiques, suggestions et remerciements sont les bienvenues.

Cette documentation peut être reproduite entièrement ou partiellement mais je vous demanderais juste de me le signaler en m'envoyant un message.


Table des matières

Introduction

Postfix est construit autour de plusieurs programmes indépendants qui remplissent chacun un rôle dans le traitement des messages.

Tous ces programmes sont sous le contrôle du daemon MASTER.

Dans cette documentation, j'essai d'ammener le lecteur à comprendre le fonctionnement et le rôle de chacun de ces programmes puis son intégration dans la chaîne de traitement des messages.

Architecture

Architecture Générale de Postfix

Un serveur Postfix pour quel Rôle ?

Le serveur Postfix peut être utilisé pour les rôles suivants :


Les files d'attentes (queues)

Les files d'attentes de Postfix :


Traitement d'un message entrant

Provenance du message :

Traitement d'un message en arrivé :


Traitement d'un message sortant

Destination du message (livraison) :

Tâches de Postfix

Master

Ce processus est chargé de gérer (lancer, arrêter) tous les autres processus comme le ferait un inetd.

Options d'exécution du daemon :


-c config_dir : Chemin et nom du répertoire contenant les fichiers main.cf et master.cf

-e exit_time  : Ferme le processus master après le nombre de secondes spécifiés.

-D            : Lance le mode debugage et utilise le paramètre debugger_command de main.cf

-t            : Mode test.

-v            : Active le mode 'verbose' pour le debugage (plusieurs -v ajoute des éléments)

Paramètres utilisés :


Qmgr

Ce processus ...

Exemple de l'entrée dans le fichier master.cf pour le processus QMGR :

qmgr      fifo  n       -       n       300     1       qmgr

Emplacement du binaire correspondant :

/usr/libexec/postfix/qmgr

Paramètres utilisés :

Relation avec des fichiers externes :


Cleanup

Ce processus ...

Exemple de l'entrée dans le fichier master.cf pour le processus CLEANUP :

cleanup   unix  n       -       n       -       0       cleanup

Emplacement du binaire correspondant :

/usr/libexec/postfix/cleanup

Paramètres utilisés :

Relation avec des fichiers externes :


Trivial-Rewrite

Ce processus ...

Exemple de l'entrée dans le fichier master.cf pour le processus TRIVIAL-REWRITE :

rewrite   unix  -       -       n       -       -       trivial-rewrite

Emplacement du binaire correspondant :

/usr/libexec/postfix/trivial-rewrite

Paramètres utilisés :

Relation avec des fichiers externes :


Bounce

Ce processus ...

Exemple de l'entrée dans le fichier master.cf pour le processus BOUNCE :

bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce

Emplacement du binaire correspondant :

/usr/libexec/postfix/bounce

Paramètres utilisés :


Local

Ce processus ...

Exemple de l'entrée dans le fichier master.cf pour le processus LOCAL :

local     unix  -       n       n       -       -       local

Emplacement du binaire correspondant :

/usr/libexec/postfix/local

Paramètres utilisés :

Relation avec des fichiers externes :


Pickup

Ce processus ...

Exemple de l'entrée dans le fichier master.cf pour le processus PICKUP :

pickup    fifo  n       -       n       60      1       pickup

Emplacement du binaire correspondant :

/usr/libexec/postfix/pickup

Paramètres utilisés :


Smtp

Ce processus ...

Exemple de l'entrée dans le fichier master.cf pour le processus SMTP :

smtp      unix  -       -       n       -       -       smtp

Emplacement du binaire correspondant :

/usr/libexec/postfix/smtp

Paramètres utilisés :


Smtpd

Ce processus ...

Exemple de l'entrée dans le fichier master.cf pour le processus SMTPD :

smtp      inet  n       -       n       -       -       smtpd

Emplacement du binaire correspondant :

/usr/libexec/postfix/smtpd

Paramètres utilisés :

Répertoires et fichiers de Postfix

Les principaux répertoires et fichiers de Postfix en version RPM :

/etc/postfix/main.cf ...... : Fichier de configuration principal. Contient tous les paramètres de postfix

/etc/postfix/master.cf .... : Fichier de configuration des tâches serveurs (daemons)

/etc/postfix .............. : Répertoire de base pour les fichiers de configuration

/etc/postfix/access ....... : Fichier pour filtrer les accès aux services SMTP

/etc/postfix/aliases ...... : Fichier pour gérer des aliases sur les comptes email locaux

/etc/postfix/canonical .... : Fichier pour effectuer réécrire des adresses email

/etc/postfix/relocated .... : Fichier pour gérer des comptes supprimés ou déplacés

/etc/postfix/transport .... : Fichier pour définir les serveurs SMTP pour les destinations internes

/etc/init.d/postfix ....... : Script de lancement du serveur Postfix

/usr/bin/mailq.postfix .... : Utilitaire de visualisation des messages en attentes dans les queues

/usr/bin/newaliases.postfix : Utilitaire pour mettre à jour le fichier des aliases

/usr/sbin/postmap ......... : Utilitaire pour mettre à jour les autres fichiers de données comme access, transport, etc...

/usr/sbin/postcat ......... : Utilitaire pour visualiser un message en attente ou bloquer dans une queue

/usr/sbin/postconf ........ : Utilitaire de configuration en ligne de commande

/usr/sbin/postfix ......... : Centre de commande postfix. Plusieurs options comme reload, flush, etc...

/usr/sbin/postsuper ....... : Utilitaire de gestion des queues (déblocage, suppression, etc...)

/usr/sbin/sendmail.postfix  : Utilitaire client pour l'envoi d'un message

/var/spool/postfix ........ : Répertoire de base pour les queues.

/usr/share/doc/postfix-2xx  : Ce répertoire contient des très bon exemples et documentations

Remarque : Pour les fichiers access, aliases, canonical, relocated, virtual et transport, vous trouverez 
quelque fois un fichier du même nom mais avec l'extension ".db" n'editez jamais ce dernier car il s'agit 
du fichier original converti en base de données au format Berkeley DB.

Quelques notions sur le fonctionnement de postfix :

Annexe

Les RFC :

http://abcdrfc.free.fr/ http://www.rfc-editor.org/ -------------------------------------------------------------------------------------------------- RFC 821 : STD 10 SMTP - Simple Mail Transfer Protocol http://abcdrfc.free.fr/rfc-vo/rfc0821.txt -------------------------------------------------------------------------------------------------- RFC 822 : STD 11 MSG - Le Format des Messages de l'Internet. Cette RFC est obsolète, remplacée par la RFC 2822 http://abcdrfc.free.fr/rfc-vo/rfc0822.txt RFC 2822 : Le Format des Messages de l'Internet http://www.abcdrfc.free.fr/rfc-vo/rfc2822.txt -------------------------------------------------------------------------------------------------- RFC 2046 : 2ème partie de la spécification MIME : Types de Média. http://www.abcdrfc.free.fr/rfc-vo/rfc2046.txt -------------------------------------------------------------------------------------------------- RFC 2047 : 3ère partie de la spécification MIME : Texte Non-ASCII. http://www.abcdrfc.free.fr/rfc-vo/rfc2047.txt Dans le RFC 2047, norme relative à MIME, il est défini que le texte internationalisé peut être supporté dans les en-têtes de courrier électronique. Ceux-ci étant nécessaires pour l'envoi des messages, c'est dans l'en-tête que l'on trouve l'adresse Internet du destinataire ainsi qu'un champ pour décrire l'objet du message -------------------------------------------------------------------------------------------------- RFC 2045 : 1ère partie de la spécification MIME : Format du Corps de Message. http://www.abcdrfc.free.fr/rfc-vo/rfc2045.txt Corps des messages : Le RFC 2045, qui décrit la norme MIME, définit les spécifications du charset en usage pour le texte dans le corps du message. Ainsi, pour les francophones, le charset ISO-8859 ou ISO 10646 avec encodage UTF-8 est nécessaire afin que le logiciel de courrier électronique puisse accepter et afficher tous les caractères accentués présents dans le corps du message. Le RFC 2046, autre document relatif à MIME, décrète que le charset par défaut est l'ASCII lorsque aucun autre n'est spécifié. Affichage de l'en-tête et du corps de messages : L'affichage d'un courrier électronique avec du texte internationalisé implique que le logiciel de courrier électronique client puisse comprendre le charset et qu'il soit en mesure de l'afficher. L'affichage a une relation directe avec la capacité qu'a le système d'exploitation d'afficher les caractères internationalisés tels que définis dans les charsets. Un logiciel de courrier électronique donné pourrait supporter seulement la compréhension du charset dans le message sans être en mesure d'afficher les caractères internationalisés. Ainsi, un message de courrier électronique échangé entre deux internautes francophones pourrait être rédigé par le premier sous l'environnement Windows 2000 avec spécification du charset UTF-8 et de l'étiquette de langue FR, et serait bien reçu par le destinataire avec le même logiciel de courrier fonctionnant sous un système d'exploitation ne supportant pas UTF-8. Par conséquent, le logiciel de courrier reconnaîtrait le charset en usage, mais il ne serait pas en mesure d'afficher tous les caractères internationalisés. -------------------------------------------------------------------------------------------------- RFC 1034 : STD 13 DNS - Domain Name Server http://abcdrfc.free.fr/rfc-vo/rfc1034.txt RFC 1035 : les specs et l'implémentation des Noms de Domaines http://abcdrfc.free.fr/rfc-vo/rfc1035.txt RFC 2505 : Recommandations pour lutter contre le "spam" http://www.abcdrfc.free.fr/rfc-vo/rfc2505.txt -------------------------------------------------------------------------------------------------- RFC 2231 : MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations - Obsoletes RFC2184, Updates RFC2045, RFC2047, RFC2183 Le RFC 2231 normalise des paramètres et des spécifications pour MIME afin de supporter le charset et les étiquettes de langue pour l'utilisation de caractères internationalisés dans les en-têtes de courrier électronique. Ainsi, par exemple, l'en-tête pourrait contenir la spécification du charset UTF-8 et l'étiquette de langue FR afin que les logiciels de courrier électronique puissent comprendre et afficher des caractères internationalisés dans l'en-tête du message reçu. -------------------------------------------------------------------------------------------------- Le RFC 1652 définit une extension au protocole SMTP afin qu'il puisse supporter nativement des messages 8 bits-MIME par rapport à un usage conventionnel sur 7-bits. Le protocole SMTP, tel que présenté dans le document Problèmes reliés à l'internationalisation d'Internet, dispose maintenant de cette propriété qui rend ses échanges plus souples (support 8-bits et support 7-bits) avec les autres serveurs de courrier électronique dans Internet. Ainsi, tel que mentionné par l'Internet Mail Consortium, il est recommandé que tout nouveau serveur de courrier électronique déployé dans Internet soit conforme au RFC 1652, c'est-à-dire qu'il supporte les échanges 8 bits-MIME sous SMTP. --------------------------------------------------------------------------------------------------


Les codes SMTP :


211 .... : Etat système, ou réponse d'aide système 

214 .... : Message d'aide 

220 .... : Service disponible 

221 .... : Canal de transmission en cours de fermeture 

250 .... : Succès - Action de messagerie effectuée.

251 .... : Utilisateur non local - Redirige le message et averti le client SMTP du changement d'adresse

354 .... : Début de message ; arrêt par <CRLF>.<CRLF>

421 .... : Service non disponible

450 .... : Action non effectuée - boîte-aux-lettres non disponible

451 .... : Action arrêtée : erreur de traitement 

452 .... : Action non effectuée : manque de ressources système.

500 .... : Erreur de syntaxe, commande non reconnue

501 .... : Erreur de syntaxe dans des paramètres ou arguments 

502 .... : Commande non implémentée 

503 .... : Mauvaise séquence de commandes 

504 .... : Paramètre de commande non implémenté 

550 .... : Action non effectuée : boîte-aux-lettres non disponible

551 .... : Utilisateur non local - Refuse le message et averti le client SMTP de la nouvelle adresse

552 .... : Action arrêtée : manque de ressources de stockage 

553 .... : Action non effectuée : nom de boîte-aux-lettres non autorisé

554 .... : Transaction échouée.

Liens