我有一台 Linux 机器,用作域名托管的虚拟主机。它运行 CentOS 和 Parallels Plesk 9.x。无论接下来如何,垃圾邮件都会以每秒 1-3 的速度不断涌入。
问题解释
xinetd 服务监听 SMTP 连接并转发到 qmail-smtpd。qmail 服务仅处理队列,但不控制进入队列的消息……这就是为什么停止它不起作用的原因。如果您停止 xinetd 和 qmail,然后终止任何打开的 qmail-smtpd 进程,所有邮件流有时会停止。
问题是,qmail-smtpd 不够智能,无法在接受邮件之前检查本地主机上的有效邮箱。因此,它会接受带有伪造回复地址的坏邮件,这些坏邮件会由 qmail 在队列中处理。Qmail 无法在本地投递邮件,因此会退回到伪造的回复地址。
我们认为修复方法是修补 qmail-smtpd 进程,使其能够在接受邮件之前智能地检查本地邮箱是否存在。问题是,当我们尝试编译 chkuser 补丁时,由于 Plesk 控制面板而遇到失败。
是否有人知道我们可以做一些不同或更好的事情?
到目前为止尚未起作用的其他措施:
关闭所有邮件进程(以检查个人帐户是否已被盗用。经核实,事实并非如此。)
关闭邮件和 http 服务器进程(在 formmail 被盗用的情况下)
运行 Exim 代替 qmail(安装简单/快速,但 xinetd 强制关闭 exim 并自行重新启动 qmail)
通过 Plesk GUI 启用了 SPF 保护。没有帮助。
通过 Plesk GUI 启用灰名单。没有帮助。
通过命令行禁用退回通知
可能有效但有并发症的事情:
使用 Postfix 而不是 qmail(对 Postfix 不了解,也不想为它烦恼,除非有人在投入时间之前知道它有潜力很好地处理反向散射)
如上所述,编译chkusr 补丁,我们相信这将停止这个问题,以及 qmail(因为混合了 Plesk,编译每次都会失败,并且 Parallels Plesk 支持没有响应,除非我付钱)
如果我不每晚清除外发邮件队列中的垃圾邮件,那么数百万的垃圾邮件就会堵塞邮件队列,并会降低外发电子邮件服务的性能。
答案1
你可以用以下方式替换现有的 qmail-smtpdqpsmtpd。然后您可以使用插件 check_badrcptto 来验证收件人地址,如果无效则拒绝电子邮件。
答案2
请查看这个有用的补丁:
http://qmail.jms1.net/patches/validrcptto.cdb.shtml
使用 cdb 文件列出有效收件人。可能是使用 qpsmtpd 的良好替代方案。
答案3
作为一名长期的 qmail 管理员,我选择使用这个 'realrcpto' 补丁(http://code.dogmap.org./qmail/#realrcptto) 因为它可以与我的用户现有的 dot-qmail 文件最佳地集成,并且不需要维护任何其他配置文件或数据库。
(如果我们现在在 qmail 前面使用的反垃圾邮件服务器可以通过 SMTP 进行 RCPT 验证...唉!)
答案4
我不知道现在是否仍然如此,但检查有效的 rcpt to 允许某人探测您的网络以获取有效地址。接受邮件然后将其退回需要垃圾邮件发送者付出一些额外的努力。对于您的情况,由于回复标头不好,您只能自食其果。
我不熟悉 Plesk,但使用 tcpserver 而不是 xinetd 的标准 qmail 配置允许您在 qmail-smtpd 之前插入 rblsmtpd。然后您可以将 rblsmtpd 指向黑名单服务之一,这应该会减少您接受的垃圾邮件数量。
再多花点功夫,您就可以处理不断到达的垃圾邮件,解析发送服务器的 IP 地址,并使用 rbldns 创建自己的黑名单。这有助于减少我们接受的垃圾邮件数量,但并不能完全消除。
另一个有用的补丁是检查来自域的邮件以确保其有效,但这需要 DNS 查找,最好运行本地 DNS 缓存。
打击垃圾邮件真是一件痛苦的事!祝你好运!