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.