我正在寻找一个 Postfix 配置选项,smtpd_enforce_tls
但它允许我根据电子邮件来自哪个域有选择地强制执行 TLS。我需要允许来自除某些选定的原始域之外的所有域的非 TLS 传入电子邮件。
这可能吗?我知道选择性地对电子邮件强制实施 TLS 很简单出去来自 Postfix,但我谈论的是收到的电子邮件。
答案1
是的,你可以——只需一点工程:)
由于您说要根据发件人域强制执行 TLS,因此您可以在 smtpd_sender_restrictions 中添加 check_sender_access 限制,如下所示:
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/enforced_tls
以及/etc/postfix/enforced_tls
:
@example.org reject_plaintext_session
@example.net reject_plaintext_session
不要忘记对文件进行 postmap,并在完成后重新加载 postfix。
答案2
/etc/postfix/enforced_tls
必须采用以下格式:
example.org reject_plaintext_session
example.net reject_plaintext_session
答案3
我甚至建议采用更严格的版本,要求发送服务器提供有效证书,如下所示:
/etc/postfix/main.cf
:
... smtpd_tls_ask_ccert = 是 smtpd_sender_restrictions = check_sender_access 哈希:/etc/postfix/enfoced_tls ...
/etc/postfix/enforced_tls
:
example.org rejection_plaintext_session,permit_tls_all_clientcerts,拒绝 例如.net rejection_plaintext_session,permit_tls_all_clientcerts,拒绝
当无法通过 中的 CA 验证连接服务器的证书时,这也应该拒绝会话smtpd_tls_CAfile
,在这种情况下,CA 可以安全地包含系统默认 CA。如果我在这里弄错了,请纠正我。