web-dev-qa-db-ja.com

Postfix master.cfとmain.cf

Main.cfとmaster.cfの両方で-oプレフィックスを使用して同じ設定を指定できることがよくあります。

私の質問は、一方が他方をオーバーライドするかどうか、そしてその場合、同じ設定(異なる値を持つ)が両方で見つかった場合、どちらのファイルが優先されるかです。

たとえば、

smtpd_tls_auth_only=yes

main.cfで指定されましたが、

-o smtpd_tls_auth_only=no 

master.cfで指定されましたが、postfixが注意を払うのはどれですか?

12
Dale Anderson

ドキュメントどおり

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

main.cfは、master.cfで定義されているすべてのサービスで使用されるデフォルト値を設定します。 master.cfの-oオプションは、サービスごとにこれらをオーバーライドできます。

12
adaptr

基本的にmain.cfの設定は有効で、特定のPostfixデーモン(smtpd、trivial-rewrite、cleanup、pickupなど)のmaster.cfでオーバーライドされない限り、グローバルに使用されます。たとえば、main.cfでsmtp_tls_security_level = mayを指定して、smtpdデーモンのlocalhostにバインドされた送信ポートに対して無効にすることができます。

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

ただし、外部IPアドレスの送信ポートについては、暗号化を適用できます。

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

特定の状況では、haveを使用してグローバル設定を上書きすることができます。たとえば、Amavisdを使用する場合、Amavisd smtpdデーモンを介してメールを送信するときにアドレスマッピング(エイリアス拡張など)を無効にする必要があります。 。そうしないと、受信者が重複したメッセージを受信する可能性があります。

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

もちろん、Amavis以外の通常の運用では、アドレスマッピングが必要なので、デフォルトではmain.cfで有効になっています。

4
daff