我有一个专门的服务器,里面有一些 VPS 供我的客户使用。我想立即停止/暂停任何发送大量电子邮件的 VPS。
我知道有一种方法可以监控端口 25 上的 SMTP 连接,但如果 VPS 配置为使用另一个端口发送电子邮件,则此方法不起作用。
mail()
不过,如果客户端使用 PHP 中的函数,我不确定该方法是否有效。
我很想听听您对有效防止垃圾邮件的可用方法的看法。
感谢您的分享!
附加信息:
我正在使用 Proxmox,我的客户有 openVZ VPS 和 LXC 容器。我可以访问访客系统,但不喜欢使用访问权限,因为客户端可以按照他们想要的方式重新配置任何内容。
答案1
例如,对于 OpenVZ 和 LXC 来说,这比 KVM 容易得多。您可以使用一些已经编写的工具,例如这和这(FastVPS 专门针对 OpenVZ VPS)。
此外,访问访客系统后,您不仅可以监控外部流量,还可以监控内部的 smtp 队列。这会更有效率。根据我的实践,我可以说通常您会安装非常常见的 MTA(sendmail/exim/postfix)。
您可以编写脚本来跳转到容器中,检测使用的 MTA 并获取队列大小。有了这些数据,您将能够看到异常活动,并且通过 phpmail()
函数,您还能够检测到从X-PHP-Originating-Script
标头发送垃圾邮件的特定脚本(请参阅这里)。
遗憾的是,对抗垃圾邮件没有灵丹妙药。因此,您需要尽可能地实现自动化。为此,您可以从 smap-in-queue-detecting 脚本向您和 VPS 所有者发送警报。在大多数情况下,一些感染是由过时或配置错误的 CMS(如 Wordpress 或 Joomla)引起的,而向 VPS 所有者提供一些减少垃圾邮件的建议(如更新 CMS、运行maldet
等)可以帮助您。
编辑:
对于 KVM 或您无法访问访客系统的任何其他情况,没有方便的方法来减少垃圾邮件活动,但您仍然有一些选择。由于隐私政策,其中一些是不可接受的。
- 为具有预安装监控代理的 KVM 和/或导入公钥的用户提供操作系统映像,用于监控和控制垃圾邮件。如果您可以接受此选项,那么您可以使用与 OpenVZ 相同的步骤来监视队列并检测生成垃圾邮件的 php 脚本。
- 阻止或限制从公共 IP 和 SMTP 协议通用端口(通常为 25)发出的流量。一些大型提供商(例如 Amazon)默认启用端口 25 的速率限制,要禁用它,您需要编写请求来支持您的用例描述。