大家好,我在 CentOS 6 系统上使用 Fail2Ban v0.8.13 来保护我的 Postfix 服务器。基本上,它有效,所以在 SMTP 上 5 次错误登录尝试后,我就被禁止了。
Fail2Ban 监狱会议
[sasl-iptables]
enabled = true
filter = sasl
backend = polling
action = iptables[name=sasl, port=smtp, protocol=tcp]
sendmail-whois[name=sasl, [email protected], [email protected]]
logpath = /var/log/maillog
maxretry = 5
我在 main.cf 中的 sasl 设置
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
我的 smtp.conf (Postfix)
pwcheck_method: saslauthd
mech_list: login CRAM-MD5 DIGEST-MD5
我的 EHLO 状态 (Postfix)
EHLO mail.xxx.ch
250-mail.xxx.ch
250-PIPELINING
250-SIZE 50480000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN CRAM-MD5 DIGEST-MD5
250-AUTH=LOGIN CRAM-MD5 DIGEST-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
我遇到的问题是,当我使用 MS Outlook 2016 成功发送五次邮件时,第六封邮件被阻止。
我认为这是一个问题,因为 Outlook 尝试了多种身份验证方法,其中一些在成功登录 SMTP Postfix 服务器之前失败
有人知道我该如何解决这个问题吗?例如,成功登录后重置 Fail2Ban 的计数器?或者我该如何优化 postfix sasl 设置,以便 outlook 不必尝试多种身份验证方法,直到其中一种方法有效?因此,根据日志文件,它在 MD5 摘要方法上失败,然后切换到登录方法。
从邮件日志中提取(postfix)
Mar 8 23:38:44 postfix/smtpd[9295]: setting up TLS connection from 84-74-210-140.dclient.hispeed.ch[84.74.210.140]
Mar 8 23:38:44 postfix/smtpd[9295]: Anonymous TLS connection established from 84-74-210-140.dclient.hispeed.ch[84.74.210.140]: TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Mar 8 23:38:44 postfix/smtpd[9295]: warning: SASL authentication failure: realm changed: authentication aborted
Mar 8 23:38:44 postfix/smtpd[9295]: warning: 84-74-210-140.dclient.hispeed.ch[84.74.210.140]: SASL DIGEST-MD5 authentication failed: authentication failure
Mar 8 23:38:45 postfix/smtpd[9295]: 0AF2127E0113: client=84-74-210-140.dclient.hispeed.ch[84.74.210.140], sasl_method=LOGIN, sasl_username=xxxx
根据下面讨论的要求,我添加了来自 Fail2ban 的相关过滤器
postfix-sasl.conf
failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/]*={0,2})?\s*$
sasl配置文件
failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/]*={0,2})?\s*$
答案1
我没有找到太多关于 DIGEST-MD5 是否能与 Outlook 和 Postfix 一起正常工作的信息。我发现有关此主题的大多数帖子/讨论都建议从 mech 列表中删除简单的 DIGEST-MD5 方法。
我的 smtp.conf (Postfix)
pwcheck_method: saslauthd
mech_list: login CRAM-MD5