Configuration et fichiers de configuration de Postfix

Les outils d'administration et de maintenance sont dans /usr/sbin. Voici les principaux.

  1. postalias sert à maintenir la base de données des alias

  2. newaliases (/usr/bin) assure la compatibilité avec sendmail pour la base de donnes des alias

  3. postcat affiche le contenu des files d'attentes.

  4. postconf affiche les paramètres de Postfix contenus dans fichier main.cf

  5. postlog, sert à gérer les logs (réalisation de scripts)

  6. postqueue, permet de gérer et administrer les files d'attentes.

Les journaux (logs) sont dans /var/log

Configuration - extrait du fichier /etc/postfix/master.cf

Il définit les démons à lancer, leur nombre et les “ transports 

# ===================================================================
# service type  private unpriv  chroot  wakeup  maxproc command args
#               (yes)   (yes)   (yes)   (never) (50)
# ===================================================================
smtp      inet  n       -       y       -       -       smtpd
smtps     inet  n       -       y       -       -       smtpd \
           -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
submission inet n       -       y       -       -       smtpd \
           -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
pickup    fifo  n       n       y       60      1       pickup
cleanup   unix  -       -       y       -       0       cleanup
qmgr      fifo  n       -       y       300     1       qmgr
#qmgr     fifo  n       -       y       300     1       nqmgr
tlsmgr    fifo  -       -       y       300     1       tlsmgr
rewrite   unix  -       -       y       -       -       trivial-rewrite
bounce    unix  -       -       y       -       0       bounce
defer     unix  -       -       y       -       0       bounce
flush     unix  -       -       y       1000?   0       flush
smtp      unix  -       -       y       -       -       smtp
showq     unix  n       -       y       -       -       showq
error     unix  -       -       y       -       -       error
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
[...]

Le fichier de configuration /etc/postfix/main.cf

Si postfix n'a pas été préalablement configuré, vous n'avez pas de fichier de configuration main.cf. Vous pouvez utiliser la commande :

dpkg-reconfigure postfix

Utilisez les paramètres suivants pour une configuration minimale :

#$NOM_MACHINE est le nom d'hôte de votre machine
local only
$NOM_MACHINE
Append Domain		no
Destination		$NOM_MACHINE
Local Network		127.0.0.0/8
Use Procmail		Yes
Siez Mail Box		0
Char Def Local Adress	+

Le fichier main.cf contient tous les paramètres de postfix. Ceux-ci peuvent être affichés avec la commande postconf.

Voici un exmple de main.cf que vous pourrez réutiliser pour les TP

# Vous avez un fichier complet et commenté 
# /usr/share/postfix/main.cf.dist 

command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
setgid_group = postdrop
biff = no
2bounce_notice_recipient = postmaster

# appending .domain is the MUA's job.
append_dot_mydomain = no
myhostname = NomHote.foo.org
mydomain = foo.org
mydestination = $myhostname, localhost.$mydomain $mydomain
myhostname = NomHote.foo.org
myorigin = $mydomain
myorigin = /etc/mailname

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
# /etc/mailname contient l'équivalent de $MYHOSTNAME

mynetworks = 127.0.0.0/8 192.168.0.0/24
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
relay_domains = $mydestination
relayhost = $mydomain
smtpd_recipient_restrictions = permit_mynetworks,check_relay_domains

Pour une configuration initiale remplir myhostname, mydomain, myorigin, mydestination, relayhost.

Le fichier de configuration des aliases /etc/aliases

Il sert à la création des aliases, par exemple jean.dudognon sera l'alias du compte système jddgn. Le courrier sera adressé à jean.dudognon@domaine.dom, mais sera délivré dans la boîte du compte jddgn, c'est à dire physiquement dans /var/spool/mail/jddgn.

Le fichier /etc/postfix/aliases est de type texte. C'est celui-ci que vous modifiez. Après chaque modification du fichier source utiliser la commande newaliases ou postaliases hash:/etc/postfix/aliases qui met à jour le fichier de bases de données /etc/postfix/aliases.db.

Surveillance et maintenance de postfix

La maintenance est réalisée à l'aide des commandes externes. Autrement les transactions sont journalisées par le démon syslogd.

Oct 31 11:23:26 uranus postfix/master[2745]: daemon started

    uranus postfix/smtpd[2753]: connect from unknown[192.168.1.1]
    uranus postfix/smtpd[2753]: 82BF05769B: client=unknown[192.168.1.1]
    uranus postfix/cleanup[2754]: 82BF05769B: 
	   message-id=<20011031102453.82BF05769B@uranus.foo.org>
    uranus postfix/qmgr[2749]: 82BF05769B: 
           from=<mlx@foo.org>, size=318, nrcpt=1 (queue active)
    uranus postfix/local[2756]: 82BF05769B: 
	   to=<mlx@foo.org>, relay=local, delay=94, 
           status=sent ("|/usr/bin/procmail /etc/procmail.rc")
    uranus postfix/smtpd[2753]: disconnect from unknown[192.168.1.1]