« LINUX:Postfix-Configuration du serveur de messagerie centrale » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 27 : Ligne 27 :
  mydestination = $myhostname, localhost.$mydomain, localhost
  mydestination = $myhostname, localhost.$mydomain, localhost
  unknown_local_recipient_reject_code = 550
  unknown_local_recipient_reject_code = 550
  alias_maps = hash:/etc/aliases
  '''alias_maps = hash:/etc/aliases'''
  alias_database = hash:/etc/aliases
  '''alias_database = hash:/etc/aliases'''
  debug_peer_level = 2
  debug_peer_level = 2
  debugger_command =
  debugger_command =
Ligne 41 : Ligne 41 :
  shlib_directory = /usr/lib64/postfix
  shlib_directory = /usr/lib64/postfix
----
----


Les lignes suivantes sont désactivées car inutiles ou non nécessaires car liées au cryptage.
Les lignes suivantes sont désactivées car inutiles ou non nécessaires car liées au cryptage.
Ligne 55 : Ligne 56 :
----
----
On les met en commentaire ou plus simplement, on les éliminent.
On les met en commentaire ou plus simplement, on les éliminent.


Les lignes suivante sont modifiées ou ajoutées. Les deux premières sont nécessaires.
Les lignes suivante sont modifiées ou ajoutées. Les deux premières sont nécessaires.
Ligne 70 : Ligne 72 :




=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
----




On remarque trois lignes désactivées en les mettant en commentaire.
----
#smtp      unix  -      -      n      -      -      smtp
#relay    unix  -      -      n      -      -      smtp
#        -o syslog_name=postfix/$service_name
----
La première désactive l'envoi de message à d'autres machines dont le serveur de messagerie est connu. Les 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 première ligne active:
----
smtp      inet  n      -      n      -      -      smtpd
----
permet la réception de message. Si vous n'avez pas d'autres machines dont les messages sont à centraliser, vous pouvez la mettre en commentaire, ce qui supprime une porte d'entrée et participe donc à la sécurisation.
Si cette ligne reste active, la commande suivante permet de vérifier que le port 25 (smtp) est sous écoute:
netstat -ntpl | grep master
Elle donne:
tcp        0      0 0.0.0.0:25              0.0.0.0:*              LISTEN      29552/master
On vérifie par la même occasion que l'écoute se fait sur tous les interfaces ("0 0.0.0.0"). "master" est le processus de démarrage de Postfix.
=Remarques=
Comme vu lors de la présentation de Postfix, dès que la configuration est terminée, il faut activer Postfix si ce n'est pas fait:
systemctl enable postfix
et relancer le service:
systemctl restart postfix
De même dans le Firewall "iptables", il faut ouvrir en entrée le port "smtp" (25) si l'écoute est activée aux machines locales dont les messages doivent être centralisés. Ceci se fait dans le fichier "/etc/sysconfig/iptables":
----
-A INPUT -p tcp -m tcp --dport 25 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
----
Ici on l'ouvre à toutes les machines du LAN "192.168.1.0". On peut être plus restrictif.





Version du 2 mai 2022 à 11:07


retour au menu de Postfix-Configuration du serveur de messagerie centrale


But

Cet article traite de la configuration du serveur de messagerie Postfix qui va centraliser les messages de tous les autres serveurs dans son PostOffice.

Rappelons que le but est de de rassembler les messages de gestion locaux et ceux des machines de notre réseau. Il n'a pas pour objectif d'envoyer des messages vers un autre prestataire d'Internet ni entre utilisateurs de notre famille ou entreprise. 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 deux 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é dans un des articles qui suivent.


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 sont 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. Les deux premières sont nécessaires.


inet_interfaces = all
home_mailbox = Maildir/
relay_domains =
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.
  • home_mailbox : défini le format de stockage des messages et l'endroit. Il existe deux format supportés par Postfix et Dovecot. Nous avons choisi le format "Maildir" par facilité d'utilisation. Celui-ci les placent dans le répertoire "Maildir" dans l'espace disque de chaque utilisateur concerné. Chaque message sera rangé dans son fichier propre, ce qui facilite le nettoyage manuel éventuel ou la consultation hors client de messagerie, en mode texte. L'autre format "Mbox" les globalise en un seul fichier.
  • relay_domains : désactive le mode "relay", c'est à dire l'envoi des messages dont le destinataire est inconnu localement vers un autre serveur de messagerie. Cette ligne peut ne pas être prise en compte car le "relay" sera désactivé dans le seconf fichier de configuration. Le mode d'envoi direct sera désactivé également.
  • 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


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


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

La première désactive l'envoi de message à d'autres machines dont le serveur de messagerie est connu. Les 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 première ligne active:


smtp      inet  n       -       n       -       -       smtpd

permet la réception de message. Si vous n'avez pas d'autres machines dont les messages sont à centraliser, vous pouvez la mettre en commentaire, ce qui supprime une porte d'entrée et participe donc à la sécurisation.

Si cette ligne reste active, la commande suivante permet de vérifier que le port 25 (smtp) est sous écoute:

netstat -ntpl | grep master

Elle donne:

tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      29552/master

On vérifie par la même occasion que l'écoute se fait sur tous les interfaces ("0 0.0.0.0"). "master" est le processus de démarrage de Postfix.


Remarques

Comme vu lors de la présentation de Postfix, dès que la configuration est terminée, il faut activer Postfix si ce n'est pas fait:

systemctl enable postfix 

et relancer le service:

systemctl restart postfix


De même dans le Firewall "iptables", il faut ouvrir en entrée le port "smtp" (25) si l'écoute est activée aux machines locales dont les messages doivent être centralisés. Ceci se fait dans le fichier "/etc/sysconfig/iptables":


-A INPUT -p tcp -m tcp --dport 25 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT

Ici on l'ouvre à toutes les machines du LAN "192.168.1.0". On peut être plus restrictif.




retour au menu de Postfix-Configuration du serveur de messagerie centrale