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, на який би постфікс звертали увагу?

Відповіді:


12

Як підтверджено документально ,

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

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


4

В основному, параметри main.cf є дійсними та використовуються у всьому світі, якщо їх не перекрито в master.cf для конкретних демонів Postfix (smtpd, trivial-rewrite, очищення, пікап, ...). Ви можете вказати, наприклад, 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.
daff

Він не відповів на питання ОП і не включав зміну імені syslog_name, яку я пояснив вище. Я б не вважав це "реальним світом" і не бачив, куди входять "SSL сертифікати".
адаптор

Я відповів на питання ОП у своєму першому реченні. І так, це приклад у реальному світі, взятий з одного з наших серверів Postfix, що розміщує 18 доменів. "SSL-сертифікати" вводяться в нього, оскільки в Postfix (на практиці) немає такого поняття, як віртуальний хостинг на основі імен SSL (на практиці), тому потрібно призначити одну IP-адресу для кожного домену. В іншому випадку немає можливості представити правильні SSL сертифікати клієнтам. Для того, щоб зробити що кілька екземплярів smtpdслужб необхідні, з різними настройками для myhostname, smtpd_tls_key_file, smtpd_tls_cert_fileі так далі. Ці параметри є переопределеннями main.cf.
daff
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.