« LINUX:Postfix-Configuration des serveurs de messagerie latérale » : différence entre les versions
Aucun résumé des modifications Balise : Révocation manuelle |
Aucun résumé des modifications |
||
| (7 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 6 : | Ligne 6 : | ||
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. | 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 | Rappelons que le but est de transférer les messages de gestion locaux vers 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). | On n'accepte que les messages de la machine; donc le serveur SMTP n'est pas actif (port 25). | ||
| Ligne 18 : | Ligne 17 : | ||
Leur configuration est fort similaire à celle du maître. | Leur configuration est fort similaire à celle du maître. | ||
Si vous n'avez pas de serveur DNS local, il faut déclarer les serveurs locaux dans le fichier "/etc/hosts". | |||
Par exemple: | |||
---- | |||
192.168.1.100 server1.home.dom mail.home.dom home.dom | |||
192.168.1.110 server2.externe.dom | |||
---- | |||
| Ligne 23 : | Ligne 30 : | ||
Après nettoyage du fichier "/etc/postfix/main.cf", on garde la partie suivante: | Après nettoyage du fichier "/etc/postfix/main.cf", on garde la partie suivante: | ||
---- | ---- | ||
compatibility_level = 3. | compatibility_level = 3.9 | ||
queue_directory = /var/spool/postfix | queue_directory = /var/spool/postfix | ||
command_directory = /usr/ | command_directory = /usr/bin | ||
daemon_directory = /usr/libexec/postfix | daemon_directory = /usr/libexec/postfix | ||
data_directory = /var/lib/postfix | data_directory = /var/lib/postfix | ||
mail_owner = postfix | mail_owner = postfix | ||
unknown_local_recipient_reject_code = 550 | unknown_local_recipient_reject_code = 550 | ||
debugger_command = | 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 | sendmail_path = /usr/sbin/sendmail.postfix | ||
newaliases_path = /usr/bin/newaliases.postfix | newaliases_path = /usr/bin/newaliases.postfix | ||
mailq_path = /usr/bin/mailq.postfix | mailq_path = /usr/bin/mailq.postfix | ||
setgid_group = postdrop | setgid_group = postdrop | ||
html_directory = no | #html_directory = no | ||
meta_directory = /etc/postfix | meta_directory = /etc/postfix | ||
shlib_directory = /usr/lib64/postfix | shlib_directory = /usr/lib64/postfix | ||
mail_spool_directory = /var/spool/mail | |||
#sample_directory = /usr/share/doc/postfix/samples | |||
#manpage_directory = /usr/share/man | #manpage_directory = /usr/share/man | ||
#readme_directory = /usr/share/doc/postfix/README_FILES | #readme_directory = /usr/share/doc/postfix/README_FILES | ||
debug_peer_level = 2 | |||
'''alias_maps = hash:/etc/aliases''' | |||
'''alias_database = hash:/etc/aliases''' | |||
---- | ---- | ||
Les lignes suivante sont modifiées ou ajoutées | Les lignes suivante sont modifiées ou ajoutées. | ||
---- | ---- | ||
inet_protocols = ipv4 | inet_protocols = ipv4 | ||
mynetworks = 127.0.0.1 192.168.1.110 | |||
inet_interfaces = all | |||
| |||
home_mailbox = Maildir/ | |||
| |||
smtpd_tls_cert_file = /etc/pki/externe/certs/mail.externe.chaine.pem | |||
smtpd_tls_key_file = /etc/pki/externe/private/externe.key | |||
---- | ---- | ||
Explications: | Explications: | ||
* inet_interfaces : permet d'accepter les messages venant de tous les interfaces réseaux | * inet_interfaces : permet d'accepter les messages venant de tous les interfaces réseaux (ici: 192.168.1.110). | ||
* | * mynetworks : accepte les connexions de la machine locale et de l'interface local. | ||
* inet_protocols : est aussi optionnel. Elle permet de se limiter à IPV4. | * inet_protocols : est aussi optionnel. Elle permet de se limiter à IPV4. | ||
* home_mailbox : définit que les messages non délivrés sur la machine centrale, seront dans l'espace disque le l'utilisateur destinataire. Normalement, tous les messages devraient se retrouver sur le serveur central, donc les boîtes locales devraient rester vides. | |||
* les deux dernières définissent les clé et certificat pour l'accès SSL. | |||
=Configuration du fichier "master.cf"= | =Configuration du fichier "master.cf"= | ||
Après un léger nettoyage, nous | Après un léger nettoyage, nous gardons le contenu suivant: | ||
---- | ---- | ||
# ========================================================================== | # ========================================================================== | ||
| Ligne 81 : | Ligne 83 : | ||
# (yes) (yes) (no) (never) (100) | # (yes) (yes) (no) (never) (100) | ||
# ========================================================================== | # ========================================================================== | ||
pickup unix n - n 60 1 pickup | pickup unix n - n 60 1 pickup | ||
cleanup unix n - n - 0 cleanup | cleanup unix n - n - 0 cleanup | ||
| Ligne 94 : | Ligne 95 : | ||
proxymap unix - - n - - proxymap | proxymap unix - - n - - proxymap | ||
proxywrite unix - - n - 1 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 | showq unix n - n - - showq | ||
error unix - - n - - error | error unix - - n - - error | ||
| Ligne 104 : | Ligne 103 : | ||
discard unix - - n - - discard | discard unix - - n - - discard | ||
local unix - n n - - local | local unix - n n - - local | ||
#virtual unix - n n - - virtual | |||
lmtp unix - - n - - lmtp | lmtp unix - - n - - lmtp | ||
anvil unix - - n - 1 anvil | anvil unix - - n - 1 anvil | ||
| Ligne 110 : | Ligne 109 : | ||
postlog unix-dgram n - n - 1 postlogd | postlog unix-dgram n - n - 1 postlogd | ||
---- | ---- | ||
On désactive les services "relay" et "virtual", non nécessaires. | |||
Car nous n'utiliserons pas de serveur intermédiaire pour envoyer le message. | |||
Et nous n'hébergeons pas de domaines virtuels, seul le domaine correspondant au nom de la machine est actif. | |||
Par contre, on ajoute les deux services suivants: | |||
---- | ---- | ||
# SMTP(serveur) - port 25 - STARTTLS - NOLOGIN | |||
smtp inet n - n - - smtpd | |||
# cryptage | |||
-o smtpd_tls_security_level=may | |||
-o smtpd_tls_wrappermode=no | |||
-o smtpd_tls_auth_only=no | |||
-o smtpd_tls_loglevel=2 | |||
# SMTP(client) - port 25 - STARTTLS | |||
smtp unix - - n - - smtp | smtp unix - - n - - smtp | ||
# cryptage | |||
-o smtp_tls_security_level=may | |||
-o smtp_tls_wrappermode=no | |||
-o smtp_tls_loglevel=2 | |||
---- | ---- | ||
* Le premier: le service d'écoute SMTP sur le port 25 de type STARTTLS pour la réception des mails venant sur l'interface réseau. Il propose une réception en claire ou cryptée SSL/TLS de préférence. Il n'y a pas d'authentification. | |||
* La seconde: le service SMTP d'envoi de mails via le port 25 de type STARTTLS. Si le serveur distant accepte un envoi crypté SSL/TLS, il est préféré sinon il sera en clair. | |||
Les options "smtpd_tls_loglevel=2" et "smtp_tls_loglevel=2" permet de suivre cet échange SSL/TLS dans le fichier journal "/var/log/maillog". | |||
La commande: | |||
netstat -ntpl | grep master | |||
donne: | |||
---- | ---- | ||
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2450741/master | |||
---- | ---- | ||
Un message sera destiné à une adresse mail résidant sur la même machine déclarée dans le fichier "/etc/hosts". | |||
| Ligne 194 : | Ligne 153 : | ||
De même dans le Firewall "iptables", il faut ouvrir en sortie le port "smtp" (25) vers la machine maître A. | De même dans le Firewall "iptables", il faut ouvrir en sortie le port "smtp" (25) vers la machine maître A et en entrée sur le port "smtp" (25) de la machine locale. | ||
Ceci se fait dans le fichier "/etc/sysconfig/iptables": | Ceci se fait dans le fichier "/etc/sysconfig/iptables": | ||
-A OUTPUT -p tcp -m tcp --dport 25 -d 192.168.1.100 -j ACCEPT | -A OUTPUT -p tcp -m tcp --dport 25 -d 192.168.1.100 -j ACCEPT | ||
Mais souvent, la configuration en sortie est ouverte à tout et donc | -A INPUT -p tcp -m tcp --sport 25 -s 192.168.1.110 -m conntrack --ctstate NEW -j ACCEPT | ||
Mais souvent, la configuration en sortie est ouverte à tout et donc la première ligne est inutile. | |||
=Configuration du fichier "aliases"= | =Configuration du fichier "aliases"= | ||
Le but final c'est de transférer tout message à la machine A à l'utilisateur " | Le but final c'est de transférer tout message à la machine A à l'utilisateur "pdupont" créé précédemment via son adresse mail "pdupont@home.dom". | ||
On ajoute une ligne au fichier "/etc/aliases" qui va assurer ce transfert: | On ajoute une ligne au fichier "/etc/aliases" qui va assurer ce transfert: | ||
---- | ---- | ||
root: | root: pdupont@home.dom | ||
---- | ---- | ||
Dans ce cas, tous les messages arrivants ou redirigés vers l'utilisateur "root" seront redirigés vers l'utilisateur " | Dans ce cas, tous les messages arrivants ou redirigés vers l'utilisateur "root" seront redirigés vers l'utilisateur "pdupont" se trouvant sur la machine A. Faites de même pour tout autre utilisateur concerné par la réception de messages. | ||
On aurait pu mettre à la place: | On aurait pu mettre à la place: | ||
---- | ---- | ||
root: root@ | root: root@home.dom | ||
---- | ---- | ||
Le transfert se serait fait en deux étapes mais le résultat aurait été identique. | Le transfert se serait fait en deux étapes mais le résultat aurait été identique. | ||
| Ligne 231 : | Ligne 191 : | ||
. | . | ||
On vérifie que le message est bien arrivé dans le répertoire "/home/ | On vérifie que le message est bien arrivé dans le répertoire "/home/pdupont/Maildir/new" de la machine A "mail.home.dom". | ||