我想完全禁用 Fedora 21 上家庭服务器的 sendmail 上的 AUTH,主要是因为持续的 fail2ban 电子邮件很烦人,它们来自持续的 CRAM-MD5 暴力尝试,试图让我的服务器充当中继。禁用 AUTH 可以消除这一类攻击。我希望中继的唯一授权是文件/etc/mail/access
,并且我的 sendmail 甚至不接受 AUTH 命令。
当我使用 wireshark 建立 SMTP 连接或使用 telnet 测试 sendmail 时,EHLO 之后它会做出响应:
250-<hostname> Hello [<remote host>], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
我的 sendmail 配置有以下注释掉的行:
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
我想知道是否只需配置
TRUST_AUTH_MECH(`')dnl Empty list to disable auth
define(`confAUTH_MECHANISMS', `')dnl Empty list to disable auth
就足够了。我还想知道是否会出现意想不到的副作用,例如无法使用 AUTH 向服务器发送邮件。我曾尝试搜索有关此问题的信息,但我只发现有人想要 AUTH 但无法使其工作,以及客户端存在 AUTH 问题。我不想假设一个空列表可以满足我的要求,而且我找不到任何文档明确说明如何完全禁用 AUTH。
编辑:我可以禁用 fail2ban 电子邮件通知(尽管我发现它很有用)或增加我的禁令时间(对于 AUTH 来说是个好主意,因为在我的服务器上没有合法连接会使用它)。我仍然想禁用 AUTH。我认为这样做会更安全。如果禁用,将来该领域的错误将不会成为我的安全漏洞。