Postfix master.cf versus main.cf

12

Saya melihat banyak waktu bahwa pengaturan yang sama dapat ditentukan di kedua main.cf, dan juga di master.cf menggunakan awalan -o.

Pertanyaan saya adalah, apakah yang satu menimpa yang lain, dan jika demikian, file mana yang diprioritaskan jika pengaturan yang sama (dengan nilai yang berbeda) ditemukan di keduanya?

Misalnya, jika

smtpd_tls_auth_only=yes

dispesifikasikan di main.cf, tetapi

-o smtpd_tls_auth_only=no 

dispesifikasikan dalam master.cf, yang mana yang akan diperhatikan postfix?

Dale Anderson
sumber

Jawaban:

12

Seperti yang didokumentasikan ,

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

main.cfmenetapkan nilai default yang digunakan oleh semua layanan yang didefinisikan dalam master.cf; Opsi -o di master.cf dapat menimpanya pada basis per layanan.

adaptr
sumber
4

Pada dasarnya pengaturan di main.cf valid dan digunakan secara global kecuali jika ditimpa master.cf untuk daemon Postfix tertentu (smtpd, trivial-rewrite, cleanup, pickup, ...). Anda dapat menentukan, misalnya, smtp_tls_security_level = maydi main.cf dan menonaktifkannya untuk port pengiriman yang terikat ke localhost untuk smtpddaemon:

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

Tetapi untuk port pengiriman pada alamat IP eksternal Anda dapat menerapkan enkripsi:

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

Dalam situasi tertentu Anda mungkin harus mengganti pengaturan global, misalnya saat menggunakan Amavisd, pemetaan alamat (alias ekspansi, dll.) Harus dinonaktifkan ketika mengirim email melalui smtpddaemon Amavisd . Kalau tidak, penerima mungkin menerima pesan duplikat:

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

Tentu saja, selama operasi reguler, di luar Amavis, Anda ingin memetakan alamat, jadi secara default mereka diaktifkan di main.cf.

Daff
sumber
1
Anda tidak bisa begitu saja mengatur IP baru: port untuk layanan; ini menciptakan turunan kedua dari layanan, dengan nama yang sama (berpotensi membingungkan), dan kemungkinan besar berada di luar lingkup OPs. Jika Anda melakukan layanan duplikat, selalu atur -o syslog_name=secondserviceuntuk membedakan layanan di log Anda.
adaptr
Terima kasih atas komentarnya, tetapi saya sadar akan hal itu. Beberapa contoh layanan diperlukan ketika hosting beberapa domain dengan sertifikat SSL yang berbeda dan karenanya alamat IP yang berbeda. Saya hanya memberikan contoh dunia nyata di mana orang akan menimpa pengaturan dari main.cf di master.cf.
Daff
Itu tidak menjawab pertanyaan OP, dan tidak termasuk perubahan syslog_name yang saya jelaskan di atas. Saya tidak akan menganggap ini "dunia nyata" dan gagal melihat di mana "sertifikat SSL" masuk ke dalamnya.
adapttr
Saya menjawab pertanyaan OP dalam kalimat pertama saya. Dan ya, ini adalah contoh dunia nyata, diambil dari salah satu server Postfix kami yang menampung 18 domain. "Sertifikat SSL" masuk ke dalamnya karena tidak ada yang namanya hosting virtual berbasis nama SSL di Postfix (dalam praktiknya), jadi orang perlu menetapkan satu alamat IP per domain. Kalau tidak, tidak ada cara untuk menyajikan sertifikat SSL yang benar kepada klien. Untuk melakukan itu beberapa contoh dari smtpdlayanan yang diperlukan, masing-masing dengan pengaturan yang berbeda untuk myhostname, smtpd_tls_key_file, smtpd_tls_cert_filedan sebagainya. Pengaturan tersebut adalah override dari main.cf.
Daff