Постфикс 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, на какой постфикс следует обратить внимание?

Дейл Андерсон
источник

Ответы:

12

Как задокументировано ,

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

main.cfустанавливает значения по умолчанию, используемые всеми службами, определенными в master.cf; -o опции в master.cf могут переопределять их отдельно для каждой службы.

adaptr
источник
4

В основном настройки в main.cf являются действительными и используются глобально, если они не переопределены в master.cf для определенных демонов Postfix (smtpd, trivial-rewrite, cleanup, pickup, ...). Вы можете указать, например, smtp_tls_security_level = mayв main.cf и отключить его для порта отправки, привязанного к localhost для smtpdдемона:

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, отображение адресов (расширение псевдонимов и т. Д.) Должно быть отключено при отправке почты через smtpdдемон Amavisd . В противном случае получатели могут получить повторяющиеся сообщения:

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: порт для службы; это создает второй экземпляр службы с тем же именем (что может привести к путанице) и, скорее всего, выходит за рамки ОП. Если вы делаете дубликаты сервисов, всегда устанавливайте, -o syslog_name=secondserviceчтобы различать сервис в ваших журналах.
Адаптер
Спасибо за комментарий, но я хорошо это знаю. При размещении нескольких доменов с разными сертификатами SSL и, следовательно, с разными IP-адресами необходимо несколько экземпляров служб. Я просто привел пример из реальной жизни, где можно переопределить настройки из main.cf в master.cf.
Дафф
Он не ответил на вопрос OP и не включал изменение syslog_name, которое я объяснил выше. Я бы не стал рассматривать этот «реальный мир» и не смог бы увидеть, где в него входят «SSL-сертификаты».
Адаптер
Я ответил на вопрос OP в моем первом предложении. И да, это реальный пример, взятый с одного из наших серверов Postfix с 18 доменами. В него входят «SSL-сертификаты», поскольку в Postfix (на практике) не существует такого понятия, как виртуальный хостинг на основе имен SSL, поэтому для каждого домена необходимо назначить один IP-адрес. В противном случае невозможно предоставить правильные SSL-сертификаты клиентам. Для того, чтобы сделать что несколько экземпляров smtpdслужб необходимы, с разными настройками для myhostname, smtpd_tls_key_file, smtpd_tls_cert_fileи так далее. Эти настройки переопределяют main.cf.
Дафф