Postfix master.cf versus main.cf

12

Ich sehe oft, dass die gleichen Einstellungen sowohl in main.cf als auch in master.cf mit dem Präfix -o angegeben werden können.

Meine Frage ist, überschreibt eine die andere und wenn ja, welche Datei hat Priorität, wenn in beiden dieselbe Einstellung (mit einem anderen Wert) gefunden wird?

Zum Beispiel, wenn

smtpd_tls_auth_only=yes

wurde in main.cf angegeben, aber

-o smtpd_tls_auth_only=no 

wurde in master.cf angegeben, auf welches würde man postfix achten?

Dale Anderson
quelle

Antworten:

12

Wie dokumentiert ,

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

main.cfLegt die Standardwerte fest, die von allen in master.cf definierten Diensten verwendet werden. -o Optionen in master.cf können diese pro Service überschreiben.

adaptr
quelle
Aha! So ist es in schwarz und weiß. Ich habe einfach nicht weit genug hineingelesen. : - /
Dale Anderson
4

Grundsätzlich sind die Einstellungen in main.cf gültig und werden global verwendet, sofern sie nicht in master.cf für bestimmte Postfix-Daemons (smtpd, trivial-rewrite, cleanup, pickup, ...) überschrieben werden. Sie können beispielsweise smtp_tls_security_level = mayin main.cf angeben und für den an localhost gebundenen Übermittlungsport für den smtpdDaemon deaktivieren :

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

Für den Übermittlungsport einer externen IP-Adresse können Sie jedoch die Verschlüsselung erzwingen:

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

In bestimmten Situationen könnten Sie haben eine globale Einstellung, beispielsweise außer Kraft setzen, wenn Amavisd, Adresszuordnungen (alias Expansion, usw.) müssen mit Behinderungen sein , wenn E - Mails über den Amavisd Senden smtpdDaemon. Andernfalls erhalten Empfänger möglicherweise doppelte Nachrichten:

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

Während des regulären Betriebs außerhalb von Amavis möchten Sie natürlich Adresszuordnungen, sodass diese standardmäßig in main.cf. aktiviert sind.

daff
quelle
1
Sie können nicht einfach einen neuen IP: -Port für einen Dienst festlegen. Dies erstellt eine zweite Instanz des Dienstes mit demselben Namen (möglicherweise verwirrend) und liegt höchstwahrscheinlich außerhalb des Zuständigkeitsbereichs des OP. Wenn Sie doppelte Dienste ausführen -o syslog_name=secondservice, müssen Sie den Dienst immer in Ihren Protokollen unterscheiden.
Adaptr
Danke für den Kommentar, aber mir ist das bewusst. Beim Hosten mehrerer Domänen mit unterschiedlichen SSL-Zertifikaten und daher unterschiedlichen IP-Adressen sind mehrere Instanzen von Diensten erforderlich. Ich habe einfach ein Beispiel aus der Praxis gegeben, bei dem Einstellungen aus main.cf in master.cf überschrieben werden.
daff
Die Frage des OP wurde nicht beantwortet und die oben erläuterte Änderung von syslog_name wurde nicht berücksichtigt. Ich würde diese "reale Welt" nicht in Betracht ziehen und nicht sehen, wo "SSL-Zertifikate" hineingehen.
Adaptr
Ich beantwortete die Frage von OP in meinem ersten Satz. Und ja, es ist ein Beispiel aus der Praxis, das von einem unserer Postfix-Server stammt, auf denen 18 Domains gehostet werden. "SSL-Zertifikate" werden eingegeben, da es in Postfix (in der Praxis) kein auf SSL-Namen basierendes virtuelles Hosting gibt. Daher muss pro Domain eine IP-Adresse zugewiesen werden. Andernfalls gibt es keine Möglichkeit, Clients korrekte SSL-Zertifikate vorzulegen. Um sicherzustellen, dass mehrere Instanzen des do - smtpdService benötigt werden , die jeweils mit unterschiedlichen Einstellungen für myhostname, smtpd_tls_key_file, smtpd_tls_cert_fileund so weiter. Diese Einstellungen sind Überschreibungen von main.cf.
Daff