![Postfix DDoS 缓解:如何将 IMAP 访问单个邮箱的 IP 列入白名单](https://linux22.com/image/730183/Postfix%20DDoS%20%E7%BC%93%E8%A7%A3%EF%BC%9A%E5%A6%82%E4%BD%95%E5%B0%86%20IMAP%20%E8%AE%BF%E9%97%AE%E5%8D%95%E4%B8%AA%E9%82%AE%E7%AE%B1%E7%9A%84%20IP%20%E5%88%97%E5%85%A5%E7%99%BD%E5%90%8D%E5%8D%95.png)
Postfix 是否有一个选项可以将 IMAP 登录的 IP 或域名列入白名单?仅限特定邮箱?
这是我们想要实现的目标:
- 所有 IP 都可以在端口 993 上打开 IMAP 连接,并且有效 [电子邮件保护]证书
- 所有 IP 都可以在端口 993 上打开 IMAP 连接,并且有效[电子邮件保护]证书
- 只有 1.2.3.4、3.4.5.0/24 和 foo.example.com 可以在端口 993 上打开有效的 IMAP 连接[电子邮件保护]证书
最好是当 4.5.6.7 中的某人尝试使用以下方式打开 IMAP 会话时[电子邮件保护]凭证应返回与由于密码错误或收件人地址不存在而导致登录尝试失败相同的错误,并具有相同的超时时间(例如 10 秒)。
背景:我们的邮件服务器(使用 Postfix 的 Zimbra)正在间歇性地对特定邮箱发起攻击,导致这些邮箱因该邮箱每小时 IMAP 登录尝试失败次数过多而被锁定。登录尝试来自唯一 IP(同一邮箱每分钟登录尝试 2-3 次),因此禁止 IP 并不是解决方案。增加每小时失败尝试次数限制只会让攻击继续进行,并为更大规模的并发攻击打开大门。
防火墙保护 IMAP 端口不是一个选项,因为我们希望保持 VPN/公司网络外部的访问开放,但目前/持续受到攻击的邮箱除外。检查那里的流量也是不可能的,因为它是加密的。
因此,我们正在寻找类似 postscreen_access_list 的东西,但只针对特定的收件人,因为我们希望仅限制对受到攻击的邮箱的访问。
答案1
我会看看失败2ban首先。它非常简单,不需要任何硬件或网络设置。fail2ban 通过查看日志文件然后使用 iptables/nftables 等阻止 IP 来工作。
可以定义在日志文件中查找的模式 - 因此您可以通过在正则表达式中排除某些邮箱的登录来排除它们。
fail2ban 无法缓解所有类型的 DDoS,但它是我会考虑的首选工具。此外,您没有提供有关您的需求以及您面临的攻击类型的更多详细信息。
对于 fail2ban 中的每个“监狱”,都有 failregex 和 ignoreregex。只需在那里插入相应的正则表达式即可。