Postfix master.cf contre main.cf

12

Je vois la plupart du temps que les mêmes paramètres peuvent être spécifiés dans les deux main.cf, et aussi dans master.cf en utilisant le préfixe -o.

Ma question est la suivante: l'un remplace-t-il l'autre et, dans l'affirmative, quel fichier est prioritaire si le même paramètre (avec une valeur différente) se trouve dans les deux?

Par exemple, si

smtpd_tls_auth_only=yes

a été spécifié dans main.cf, mais

-o smtpd_tls_auth_only=no 

a été spécifié dans master.cf, auquel postfix ferait attention?

Dale Anderson
la source

Réponses:

12

Comme documenté ,

-o name=value
                 Override  the  named  main.cf  configuration
                 parameter.

main.cfdéfinit les valeurs par défaut utilisées par tous les services définis dans master.cf; Les options -o dans master.cf peuvent les remplacer par service.

adaptr
la source
Ah! C'est donc en noir et blanc. Je ne l'ai tout simplement pas lu assez loin. : - /
Dale Anderson
4

Fondamentalement, les paramètres dans main.cf sont valides et utilisés globalement sauf s'ils sont remplacés dans master.cf pour des démons Postfix spécifiques (smtpd, trivial-rewrite, cleanup, pickup, ...). Vous pouvez spécifier, par exemple, smtp_tls_security_level = maydans main.cf et le désactiver pour le port de soumission lié à localhost pour le smtpddémon:

localhost:submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=none

Mais pour le port de soumission sur une adresse IP externe, vous pouvez appliquer le cryptage:

1.2.3.4:submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o ...

Dans certaines situations, vous devrez peut- être remplacer un paramètre global, par exemple lorsque vous utilisez Amavisd, les mappages d'adresses (extension d'alias, etc.) doivent être désactivés lors de l'envoi de courrier via le smtpddémon Amavisd . Sinon, les destinataires pourraient recevoir des messages en double:

127.0.0.1:10025 inet    n       -       -       -       -       smtpd
  -o content_filter=
  -o ...
  -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
  -o ...

Bien sûr, pendant le fonctionnement normal, en dehors d'Amavis, vous voulez des mappages d'adresses, donc par défaut, ils sont activés dans main.cf.

daff
la source
1
Vous ne pouvez pas simplement définir un nouveau port IP: pour un service; cela crée une deuxième instance du service, avec le même nom (potentiellement déroutant), et est plus que probable en dehors du champ d'application des PO. Si vous effectuez des services en double, définissez toujours -o syslog_name=secondservicede distinguer le service dans vos journaux.
adaptr
Merci pour le commentaire, mais j'en suis bien conscient. Plusieurs instances de services sont nécessaires lors de l'hébergement de plusieurs domaines avec différents certificats SSL et donc des adresses IP différentes. J'ai simplement donné un exemple concret où l'on remplacerait les paramètres de main.cf dans master.cf.
daff
Il n'a pas répondu à la question de l'OP et n'a pas inclus le changement de syslog_name que j'ai expliqué ci-dessus. Je ne considérerais pas ce "monde réel" et je ne vois pas où les "certificats SSL" y entrent.
adaptr
J'ai répondu à la question d'OP dans ma première phrase. Et oui, il s'agit d'un exemple concret, tiré de l'un de nos serveurs Postfix hébergeant 18 domaines. Les "certificats SSL" y entrent car il n'existe pas d'hébergement virtuel basé sur le nom SSL dans Postfix (en pratique), il faut donc attribuer une adresse IP par domaine. Sinon, il n'y a aucun moyen de présenter des certificats SSL corrects aux clients. Pour ce faire plusieurs instances du smtpdservice sont nécessaires, chacun avec des paramètres différents pour myhostname, smtpd_tls_key_file, smtpd_tls_cert_fileet ainsi de suite. Ces paramètres sont des remplacements de main.cf.
daff