LINUX:Postfix-Configuration des serveurs de messagerie latérale

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

Postfix et Dovecot-Configuration de gestion


But

Cet article traite de la configuration des autres serveurs de messagerie Postfix qui vont envoyer leurs messages au serveur central. Dans le schéma, c'est ma machine B (ou C et suivantes) qui est concernée.

Rappelons que le but est de transférer les messages de gestion locaux sur la machine maître (A). Il n'a pas pour objectif d'envoyer des messages vers un autre prestataire d'Internet ni entre utilisateurs de notre famille ou entreprise. On n'accepte que les messages de la machine; donc le serveur SMTP n'est pas actif (port 25). De même comme nous travaillons en interne, en vase clos et pas soucis de simplification, nous n'utiliserons pas de cryptage.


Fichiers de configuration

Comme vu précédemment, les fichiers de configuration de Postfix se trouvent dans le répertoire "/etc/postfix". Nous n'utiliserons que des trois fichiers strictement nécessaires:

  • main.cf : contenant les paramètres généraux de Postfix
  • master.cf : contenant la liste des programmes intervenant dans le fonctionnement de Postfix

Le fichier "/etc/aliases" qui intervient dans "main.cf", sera traité en fin d'article.

Leur configuration est fort similaire à celle du maître.


Configuration du fichier "main.cf"

Après nettoyage du fichier "/etc/postfix/main.cf", on garde la partie suivante:


compatibility_level = 3.6
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
meta_directory = /etc/postfix
shlib_directory = /usr/lib64/postfix


Les lignes suivantes peuvent être désactivées car inutiles ou non nécessaires car liées au cryptage.


#manpage_directory = /usr/share/man
#sample_directory = /usr/share/doc/postfix/samples
#readme_directory = /usr/share/doc/postfix/README_FILES
#smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem
#smtpd_tls_key_file = /etc/pki/tls/private/postfix.key
#smtpd_tls_security_level = may
#smtp_tls_CApath = /etc/pki/tls/certs
#smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
#smtp_tls_security_level = may

On les met en commentaire ou plus simplement, on les éliminent.


Les lignes suivante sont modifiées ou ajoutées. La première est nécessaire.


inet_interfaces = all
mynetworks_style = host
inet_protocols = ipv4

Explications:

  • inet_interfaces : permet d'accepter les messages venant de tous les interfaces réseaux alors que la configuration de base n'acceptait que ceux de la machine locale.
  • mynetworks_style : permet de n'accepter pour un transfert vers un autre serveur de messagerie que les message de la machine locale. Cette option est optionnelle.
  • inet_protocols : est aussi optionnel. Elle permet de se limiter à IPV4.


Configuration du fichier "master.cf"

Après un léger nettoyage, nous obtenons le contenu suivant:


# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (no)    (never) (100)
# ==========================================================================
#smtp      inet  n       -       n       -       -       smtpd
pickup    unix  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
        -o syslog_name=postfix/$service_name
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
#virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -       n       -       1       scache
postlog   unix-dgram n  -       n       -       1       postlogd


La première ligne n'est pas active:


#smtp      inet  n       -       n       -       -       smtpd

La réception de messages venant du réseau n'est pas possible. Le port SMTP (25) ne se retrouve pas dans la liste des ports en écoute, au contraire du maître. La commande:

netstat -ntpl | grep master

ne donnera rien.


On remarque plus bas la ligne désactivée mise en commentaire.


#virtual   unix  -       n       n       -       -       virtual

Elle est inutile car on n'héberge pas de domaines virtuels, seul le domaine correspondant au nom de la machine est actif.

Ces deux lignes peuvent être effacées.


On remarque quatre lignes désactivées en les mettant en commentaire.


#smtp      unix  -       -       n       -       -       smtp
#relay     unix  -       -       n       -       -       smtp
#        -o syslog_name=postfix/$service_name
#virtual   unix  -       n       n       -       -       virtual

La première désactive l'envoi de message à d'autres machines dont le serveur de messagerie est connu. Les deux suivantes désactivent le "relay", c'est à dire le transfert des messages non délivrés car le destinataire est inconnu. Ces lignes peuvent être effacées. La dernière est inutile car on n'héberge pas de domaines virtuels, seul le domaine correspondant au nom de la machine est actif. Si notre machine porte le nom "servermail.home.dom" comme indiquée dans le schéma, l'adresse mail de l'utilisateur 'root" sera "root@servermail.home.dom".







Postfix et Dovecot-Configuration de gestion