« LINUX:Postfix-Configuration autonome » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 207 : | Ligne 207 : | ||
''->[[LINUX:Postfix-Configuration|retour au menu de Postfix-Configuration]]'' | ''->[[LINUX:Postfix-Configuration|retour au menu de Postfix-Configuration]]'' | ||
__NOEDITSECTION__ | __NOEDITSECTION__ | ||
[[Category:LINUX]] |
Version du 3 décembre 2020 à 14:13
But
On démarre par la configuration fournie par défaut à l'installation. Cette configuration de base est principalement axée sur l'envoi de mail en local. Si vous avez un serveur DNS privé configuré correctement et auquel les machines locales font référence, il peut leur envoyer des messages.
Fichiers de configuration de base
Il y a trois fichiers de configuration de base tous situés dans le répertoire "/etc/postfix":
- master.cf: fichier de configuration des processus
- main.cf: fichier de configuration par défaut des options
- aliases: fichier de redirection des utilisateurs locaux
Notons que le fichier "aliases" se trouve historiquement dans le répertoire "/etc" mais nous l'avons mis dans le même répertoire que tous les fichiers de configuration de Postfix.
Nettoyage des commentaires
Pour une question de lisibilité, on a enlevé tous les commentaires et les lignes désactivées. Avant de commencer, sauvez toujours ces fichiers avant toute modification. Par exemple:
cp /etc/postfix/main.cf /etc/postfix/main.cf.original
Mais ces commentaires sont utiles pour vous expliquer leur utilité.
La commande suivante peut vous y aider:
#!/bin/bash FICHIERIN=/etc/postfix/main.cf.orginal FICHIEROUT=/etc/postfix/main.cf grep -v '^space:*\#' ${FICHIERIN} | grep -v '^space:*$' > ${FICHIEROUT}
La première partie supprime toutes les lignes commençant par un dièse ("#"); La seconde partie supprime les lignes vides
Configuration des processus
Le fichier de configuration des processus se nomme "/etc/postfix/master.cf".
Contenu du fichier:
# ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (no) (never) (100) # ========================================================================== smtp inet n - n - - smtpd smtp unix - - n - - smtp local unix - n n - - local 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 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 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 a en début de ligne, le nom du service et en fin de la ligne, le nom du programme. Les lignes qui suivent mais en retrait, reprennent des options qui écrasent les options du fichier de configuration des options "/etc/postfix/main.cf". La seconde colonne nous informe du type de service: "inet" signifie qu'il va écouter le réseau, "unix" écoute au niveau de la machine locale. J'ai regroupé dans les trois premières lignes, les services qui nous intéressent particulièrement.
La première concerne le service "smtp" qui va écouter le réseau "inet" et le processus est "smtpd"; c'est lui qui va recueillir les mails venant du réseau. Nombre d'options commencent par "smtpd_"; elles sont liées à ce processus.
A l'inverse, la seconde ligne concerne l'envoi de mails; c'est le processus "smtp". Nombre d'options commencent par "smtp_"; elles sont liées à ce processus.
La troisième "local" est chargée de le distribution des mails en local.
Voyez le schéma donné dans la page principale.
Configuration des options
Le fichier de configuration des options personnelles se nomme "/etc/postfix/master.cf".
Il existe de nombreuses options. Pour avoir un relevé de leur existence et de leur valeur, exécutez la commande suivante:
postconf > postconf.log
Elle confine les options et leur valeur par défaut qui sont amendées avec les options et leur valeur inscrites dans le fichier "/etc/postfix/main.cf"
Pour vérifier votre configuration, exécutez la commande suivante:
postfix check
Nous allons passer en revue les paramètres qui nous intéressent par groupe.
Le premier groupe concerne un ensemble d'options qui seront toujours présentes et ne changeront pas. Ils sont dans le fichier d'origine.
compatibility_level = 2 queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix unknown_local_recipient_reject_code = 550 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 manpage_directory = /usr/share/man debugger_command = PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont; echo where) | gdb $daemon_directory/$process_name $process_id 2>&1 >$config_directory/$process_name.$process_id.log & sleep 5
Partie des définitions des alias ou redirection des utilisateurs locaux.
alias_maps = hash:/etc/postfix/aliases alias_database = hash:/etc/postfix/aliases
On voit que le fichier aliases a été déplacé dans le répertoire "/etc/postfix". Il doit être "compilé" par la commande:
newaliases
Si on le laisse dans son lieu d'origine "/etc", on adapte le chemin dans cette configuration.
Pour sécuriser le serveur, on n'affiche pas le nom du logiciel ni sa version afin de rendre plus difficile le travail d'un pirate éventuel. On peut mettre ce que l'on veut.
smtpd_banner = A-D-B-1 mail_name = ADB1 mail_version=6.5.4.3.2.1
Dans cette partie, on limite le trafic réseau à la IPV4. IPV6 est désactivé. En seconde ligne, il n'accepte que les mails locaux.
inet_protocols = ipv4 inet_interfaces = 127.0.0.1
Autre alternative, si "inet_interfaces" avait pour valeur "all", le serveur accepterait les mails de toute provenance. (sauf filtrage du pare-feu) On ajoute un filtrage pour le réseau local à la troisième ligne si désiré.
inet_protocols = ipv4 inet_interfaces = all mynetworks = 192.168.1.0/24, 127.0.0.1/32
L'option suivante définit les domaines dont les mails sont acceptés localement. (valeur de l'option par défaut)
mydestination = $myhostname, localhost.$mydomain, localhost
On peut, pour la suite, ajouter la valeur "$mydomain".
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
Si le nom du serveur est "serverdb.home.dom", les trois options suivantes ont, par défaut, les valeur suivantes:
myhostname = serverdb.home.dom mydomain = home.dom myorigin = serverdb.home.dom
Selon la valeur de l'option "myorigin", une adresse mail locale sera de la forme, par exemple pour l'utilisateur "root", "root@serverdb.home.dom".
Si on change cette valeur par soit "home.dom" ou "$mydomain" (ce qui est équivalent), l'adresse mail locale devient "root@home.dom". Ajoutons alors la valeur "$mydomain" à l'option "mydestination" comme montré ci-dessus.
myhostname = serverdb.home.dom mydomain = home.dom myorigin = $mydomain
Pour aller plus loin, si vous avez un nom de domaine officiel et un nom de serveur enregistré (A record) dans le DNS mondial et qu'il y est déclaré comme serveur de messagerie (MX record), on peut adapter ces options en conséquence. Par exemple, si notre nom de domaine est "adbweb.gslb.eu" et notre machine "mail.adbweb.gslb.eu", les options deviennent.
myhostname = mail.adbweb.gslb.eu mydomain = adbweb.gslb.eu myorigin = adbweb.gslb.eu
Et notre adresse mail locale devient: "root@adbweb.gslb.eu".
Avec cette configuration, les mails locaux se stockeront dans le répertoire "/var/mail".
Configuration des redirections locales
Ce fichier détermine comment les messages destinés aux utilisateurs locaux, repris dans le fichier "/etc/passwd", sont redirigés. Nous donnons un extrait de ce fichier ci-dessous:
apache: root postfix: root mysql: root
Nous remarquons que les mails destinés aux utilisateurs "apache", "postfix" et mysql" sont redirigés vers l'utilisateur local "root".
Après toute modification dans ce fichier, il faut le "compiler" via la commande:
newaliases
Ce traitement est fait d'office au lancement de Postfix.
Remarque
Après tout changement dans ces fichiers de configuration, il faut relancer le service Postfix:
systemctl restart postfix
Vérifiez qu'il est bien lancé:
systemctl status postfix