![sendmail:如何限制仅具有有效证书的客户端的访问?](https://linux22.com/image/504747/sendmail%EF%BC%9A%E5%A6%82%E4%BD%95%E9%99%90%E5%88%B6%E4%BB%85%E5%85%B7%E6%9C%89%E6%9C%89%E6%95%88%E8%AF%81%E4%B9%A6%E7%9A%84%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%9A%84%E8%AE%BF%E9%97%AE%EF%BC%9F.png)
我想拒绝所有未提供有效 SSL/TLS 证书的连接。首先,访问数据库文件是否是需要更改的正确文件?
我已经尝试使用文档中给出的基本规则
证书颁发者:/C=US/ST=California/O=endmail.org/OU=private/CN=Darth+20Mail+20+28Cert+29/[电子邮件保护] 中继
这显然需要一条规则来过滤和拒绝所有未提供证书的邮件?有人能指点我应该使用什么语法吗?通配符?
林晓玲
答案1
我想我已经明白了……好老的奥莱利……
我只需要使用:
TLS_Clt: VERIFY
TLS_Srv: VERIFY
希望这将排除所有无效证书和所有不安全的连接尝试。
答案2
http://www.linuxjournal.com/article/4823
请注意,强制所有 SMTP 客户端使用 TLS 是不明智的,因为它尚未普及。RFC 文档指出,公开引用的 SMTP 服务器(例如域的 MX 服务器)不得拒绝非 TLS 连接。但是,受限访问的 SMTP 服务器(例如企业内联网的服务器)可以使用 TLS 作为访问控制机制。
如果你从 sendmail.mc 中删除 PLAIN,那么应该可以做到:
TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
然后用 m4 重建 sendmail.cf。