我们的服务器为不同的客户托管多个网站。托管服务提供商在检测到我们的专用服务器正在发送垃圾邮件后封锁了端口 25。
我检查了 Qmail 日志,没有发现任何可疑之处。Spamassassin 乍一看似乎没有为我的问题提供太多解决方案。
答案1
如何追踪发送垃圾邮件的脚本?
由于您的托管服务提供商阻止您发送邮件,您可以检查邮件日志和邮件队列以寻找线索:
根据您的系统设置脚本在记录的唯一客户端 ID 下运行,从而缩小了托管帐户的范围。
查看邮件队列,这取决于如何以及使用哪些脚本,许多更好的脚本在标题中包含脚本名称,而当情况并非如此时,通常会设置
Reply-to
或From
标题,这允许您缩小客户端帐户的范围。与网络访问日志关联,通常很容易找到有问题的脚本。
可能是邮件队列不包含任何垃圾邮件,并且您的邮件服务器日志也没有表明您正在发送垃圾邮件;那么垃圾邮件发送者可以上传直接连接到远程邮件服务器的自定义脚本/程序,完全绕过 Qmail,而不是滥用现有的脚本/邮件功能。在这种情况下:我该如何处理受到感染的服务器?
答案2
您是否知道 Plesk 也提供了非常详细的文档?您可以考虑阅读并关注:
=> 在 Qmail 邮件服务器上打击垃圾邮件 ( Plesk Onyx - 在线文档 - 高级管理指南,Plesk for Linux)
编辑(按要求):您可能会发现有用的命令,例如:
/var/qmail/bin/qmail-qstat
检查 Qmail 队列中有多少封邮件
/var/qmail/bin/qmail-qread
阅读邮件标题,它会显示发件人和收件人。收件人太多通常是垃圾邮件的征兆。
find /var/qmail/queue/mess/ -name 1234567
通过 ID 查找邮件并检查标题。您可以调查用户是否通过 CGI(例如脚本)发送了大量邮件,这是垃圾邮件的另一个指标。
更多信息可在上述链接中找到。:-)
答案3
grep Received\: /var/log/maillog | grep --color invoked\ by\ uid
出现的 uid 应该与受感染的 vhost 相同。如果 uid 为 0,那你就麻烦大了。
您没有提供足够的详细信息让我确定您是否登录了 /var/log/maillog。例如,在 plesk 中,maillog 位于其他地方。
答案4
您可以考虑与您的托管服务提供商联系,看看他们可以为您提供什么帮助 - 他们可能会根据某些原因切断您的端口 25 流量,了解那是什么会很有帮助。
值得注意的是,我会向他们核实这是否是数量问题或内容问题 - 每种情况下的修复方法可能会略有不同。
我还会检查您的 /var/log/mail (或等效文件)以尝试识别主要发件人 - 值得注意的是,我会检查显示nrcpt
大于 1 的使用您托管的域的条目。
我建议您确保您的每个域/网站都以其自己的(本地)用户身份运行 - 这样,如果您发现问题来自单个域,您可以更轻松地阻止该本地用户发送任何内容(如果您在同一个用户下运行所有网站,您将必须进行域匹配等)。
由于您有 SpamAssassin,我还会确保您扫描外发电子邮件(是否根据垃圾邮件阻止它们取决于您,但我会确保它们根据垃圾邮件程度评分)。查看每个域(或发件人,如果有必要)的统计信息,看看这是否有助于您获得一些见解。