Postfix master.cf so với main.cf


12

Tôi thấy rất nhiều thời gian mà các cài đặt tương tự có thể được chỉ định trong cả main.cf và cả trong master.cf bằng cách sử dụng tiền tố -o.

Câu hỏi của tôi là, cái này có ghi đè lên cái kia không, và nếu vậy, tập tin nào được ưu tiên nếu cùng một cài đặt (với một giá trị khác) được tìm thấy trong cả hai?

Ví dụ, nếu

smtpd_tls_auth_only=yes

đã được chỉ định trong main.cf, nhưng

-o smtpd_tls_auth_only=no 

đã được chỉ định trong master.cf, cái nào sẽ được postfix chú ý đến?

Câu trả lời:


12

Theo tài liệu ,

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

main.cfđặt các giá trị mặc định được sử dụng bởi tất cả các dịch vụ được xác định trong master.cf; -o tùy chọn trong master.cf có thể ghi đè các tùy chọn này trên cơ sở mỗi dịch vụ.


Aha! Vì vậy, nó là màu đen và trắng. Tôi chỉ không đọc đủ xa về nó. : - /
Dale Anderson

4

Về cơ bản các cài đặt trong main.cf là hợp lệ và được sử dụng trên toàn cầu trừ khi chúng bị ghi đè trong master.cf cho các trình nền Postfix cụ thể (smtpd, viết lại tầm thường, dọn dẹp, lấy, ...). Bạn có thể chỉ định, ví dụ, smtp_tls_security_level = maytrong main.cf và vô hiệu hóa nó cho cổng gửi được liên kết với localhost cho smtpddaemon:

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

Nhưng đối với cổng gửi trên địa chỉ IP bên ngoài, bạn có thể thực thi mã hóa:

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

Trong một số trường hợp nhất định, bạn có thể phải ghi đè cài đặt toàn cục, ví dụ: khi sử dụng Amav điều khiển, ánh xạ địa chỉ (mở rộng bí danh, v.v.) cần phải bị vô hiệu hóa khi gửi thư qua smtpdtrình nền Amav điều khiển . Nếu không, người nhận có thể nhận được tin nhắn trùng lặp:

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

Tất nhiên, trong quá trình hoạt động thường xuyên, bên ngoài Amavis, bạn muốn ánh xạ địa chỉ, do đó theo mặc định, chúng được bật trong main.cf.


1
Bạn không thể chỉ cần đặt một IP: port mới cho một dịch vụ; điều này tạo ra một phiên bản thứ hai của dịch vụ, có cùng tên (có khả năng gây nhầm lẫn) và nhiều khả năng nằm ngoài phạm vi của OP. Nếu bạn thực hiện các dịch vụ trùng lặp, luôn được đặt -o syslog_name=secondserviceđể phân biệt dịch vụ trong nhật ký của bạn.
thích nghi

Cảm ơn cho nhận xét, nhưng tôi nhận thức rõ về điều đó. Nhiều phiên bản dịch vụ là cần thiết khi lưu trữ nhiều tên miền với các chứng chỉ SSL khác nhau và do đó địa chỉ IP khác nhau. Tôi chỉ đơn giản đưa ra một ví dụ trong thế giới thực, nơi người ta sẽ ghi đè cài đặt từ main.cf trong master.cf.
daff

Nó không trả lời câu hỏi của OP và không bao gồm thay đổi syslog_name mà tôi đã giải thích ở trên. Tôi không xem xét "thế giới thực" này và không thấy "chứng chỉ SSL" nhập vào đâu.
thích nghi

Tôi trả lời câu hỏi của OP trong câu đầu tiên của tôi. Và vâng, đó là một ví dụ trong thế giới thực, được lấy từ một trong các máy chủ Postfix của chúng tôi lưu trữ 18 tên miền. "Chứng chỉ SSL" nhập vào vì không có thứ gọi là lưu trữ ảo dựa trên tên SSL trong Postfix (trong thực tế), do đó, người ta cần chỉ định một địa chỉ IP cho mỗi tên miền. Nếu không, không có cách nào để xuất trình chứng chỉ SSL chính xác cho khách hàng. Để làm điều đó nhiều trường hợp của các smtpddịch vụ là cần thiết, có thể thiết lập khác nhau cho myhostname, smtpd_tls_key_file, smtpd_tls_cert_filevà vân vân. Những cài đặt đó được ghi đè lên main.cf.
daff
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.