Postfix master.cf contro main.cf


12

Vedo molte volte che le stesse impostazioni possono essere specificate sia in main.cf, sia in master.cf usando il prefisso -o.

La mia domanda è: uno sostituisce l'altro e, in caso affermativo, a quale file viene data priorità se la stessa impostazione (con un valore diverso) viene trovata in entrambi?

Ad esempio, se

smtpd_tls_auth_only=yes

è stato specificato in main.cf, ma

-o smtpd_tls_auth_only=no 

è stato specificato in master.cf, a quale si dovrebbe porre attenzione postfix?

Risposte:


12

Come documentato ,

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

main.cfimposta i valori predefiniti utilizzati da tutti i servizi definiti in master.cf; -o le opzioni in master.cf possono sovrascriverle in base al servizio.


4

Fondamentalmente le impostazioni in main.cf sono valide e utilizzate a livello globale a meno che non vengano sovrascritte in master.cf per demoni Postfix specifici (smtpd, trivial-rewrite, cleanup, pickup, ...). È possibile specificare, ad esempio, smtp_tls_security_level = mayin main.cf e disabilitarlo per la porta di invio associata a localhost per il smtpddemone:

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

Ma per la porta di invio su un indirizzo IP esterno è possibile applicare la crittografia:

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

In alcune situazioni potrebbe essere necessario sostituire un'impostazione globale, ad esempio quando si utilizza Amavisd, i mapping degli indirizzi (espansione alias, ecc.) Devono essere disabilitati quando si invia posta attraverso il smtpddemone Amavisd . Altrimenti i destinatari potrebbero ricevere messaggi duplicati:

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

Naturalmente, durante il normale funzionamento, al di fuori di Amavis, si desidera mappare gli indirizzi, quindi per impostazione predefinita sono abilitati in main.cf.


1
Non è possibile semplicemente impostare un nuovo IP: porta per un servizio; questo crea una seconda istanza del servizio, con lo stesso nome (potenzialmente confuso), ed è più che probabile al di fuori dell'ambito dei PO. Se si eseguono servizi duplicati, impostare sempre -o syslog_name=secondserviceper distinguere il servizio nei registri.
adattamento

Grazie per il commento, ma ne sono ben consapevole. Sono necessarie più istanze di servizi quando si ospitano più domini con certificati SSL diversi e quindi indirizzi IP diversi. Ho semplicemente dato un esempio del mondo reale in cui uno avrebbe sovrascritto le impostazioni da main.cf in master.cf.
daff,

Non ha risposto alla domanda del PO e non ha incluso la modifica syslog_name che ho spiegato sopra. Non prenderei in considerazione questo "mondo reale" e non riuscirei a vedere dove "certificati SSL" entrano in esso.
adattamento

Ho risposto alla domanda di OP nella mia prima frase. E sì, è un esempio reale, tratto da uno dei nostri server Postfix che ospita 18 domini. I "certificati SSL" vi entrano perché Postfix (in pratica) non offre servizi di hosting virtuale basati su nomi SSL, quindi è necessario assegnare un indirizzo IP per dominio. Altrimenti non è possibile presentare ai client certificati SSL corretti. Per fare questo più istanze del smtpdSono necessari servizi, ciascuno con impostazioni diverse per myhostname, smtpd_tls_key_file, smtpd_tls_cert_filee così via. Tali impostazioni sono sostituite da main.cf.
daff,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.