Postfix master.cfとmain.cf


12

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

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

たとえば、

smtpd_tls_auth_only=yes

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

-o smtpd_tls_auth_only=no 

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

回答:


12

記載されているように

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

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


ああ!だからそれは白黒です。私はそれを十分に読んでいませんでした。:-/
デールアンダーソン

4

基本的にmain.cfの設定は有効で、特定のPostfixデーモン(smtpd、trivial-rewrite、cleanup、pickupなど)のmaster.cfでオーバーライドされない限り、グローバルに使用されます。たとえば、smtp_tls_security_level = maymain.cfで指定して、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 ...

特定の状況では、可能性が持っているの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で有効になっています。


1
単にサービスに新しいIP:ポートを設定することはできません。これにより、同じ名前で(混乱を招く可能性がある)サービスの2番目のインスタンスが作成され、OPの範囲外になる可能性が高くなります。サービスを複製する場合は、常に-o syslog_name=secondserviceログでサービスを区別するように設定してください。
アダプタ2013年

コメントをありがとう、しかし私はそれをよく知っています。異なるSSL証明書、したがって異なるIPアドレスで複数のドメインをホストする場合、サービスの複数のインスタンスが必要です。私は単に、master.cfのmain.cfからの設定を上書きする実際の例を示しました。
ダフ2013年

OPの質問には答えず、上で説明したsyslog_nameの変更も含まれていませんでした。私はこの「現実の世界」を考慮せず、「SSL証明書」がどこに入るのかを確認できません。
アダプタ2013年

最初の文でOPの質問に答えました。そして、はい、これは18のドメインをホストしているPostfixサーバーの1つから取った実際の例です。Postfixには(実際には)SSL名ベースの仮想ホスティングなどがないため、「SSL証明書」がその中に含まれ、ドメインごとに1つのIPアドレスを割り当てる必要があります。それ以外の場合、正しいSSL証明書をクライアントに提示する方法はありません。そのためには、smtpdサービスの複数のインスタンスが必要であり、それぞれmyhostnamesmtpd_tls_key_filesmtpd_tls_cert_fileなどの設定が異なります。これらの設定はmain.cfのオーバーライドです。
ダフ2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.