过去 3 个月,我一直收到托管服务提供商的电子邮件,说我的服务器正在发送垃圾邮件,今天我对此进行了研究,发现它确实在发送垃圾邮件。我使用 exim 检查了情况,它使用命令显示了 28 的输出exim -bcp
,然后我使用了exim -bp
并找到了 id 并使用了exim Mvh id
。我测试了所有 ID,但它没有提供脚本的来源。之后,我也尝试检查了exim/main.log
但它没有提供任何输出。
我已经使用防病毒软件扫描了服务器,但什么也没发现。我还格式化了服务器,但仍然没有用。如果您能帮助检测发送垃圾邮件的脚本,请告诉我。
答案1
运行exim -bP log_file_path
以获取模板化的日志文件路径;%s
用替换main
,并将其用作要查看的日志文件。(也%D
用于日期等)。如果确实指向main.log
您查看的同一个文件,则使用lsof
,查看日志文件轮换是否中断或出现其他问题。如果文件是当前日志文件,文件系统未满,消息正在流动但日志为空,则您的系统已受到损害。
查看邮件的来源。如果邮件来自本地用户,则该用户正在注入邮件;如果该用户是网络托管用户,则您需要找出哪个 PHP 应用程序已过时并让垃圾邮件发送者滥用您。PHP 应用程序的商业滥用至少已经发生了 12 年。如果您有很多虚拟主机并且无法识别来源,您可以将各种选项应用于您的网络服务器和 PHP 配置以锁定发件人地址。
如果消息来自远程 IP 地址,请弄清楚您做了什么才将自己变成开放中继。
如果出现经过身份验证的用户,则表明他们的密码很弱:不允许用户为 SMTP 选择密码。使用您生成的强密码,告诉用户他们可以写下这些密码。考虑查看 Exim wiki 中的速率限制示例,以限制滥用 SMTP AUTH 尝试的速率。
如果连接未经过身份验证,并且只是远程开放中继,则问题取决于您对 Exim 配置文件的自定义程度(运行exim -bV
以查找活动配置文件的路径)。如果它非常接近原样,那么您有一个hostlist
命名relay_from_hosts
,并且其中可能有太多主机。锁定它。
答案2
作为 root,您可以使用ps aux
显示所有进程,并查找任何可疑内容。您还可以使用find /path/to/cgi-bin -iname \*.php
查找攻击者引入的 PHP 脚本。
但是,根据攻击类型,上述任何一种工具都可能无法发现该脚本。如果您怀疑攻击者控制了您的服务器,那么查找脚本就是一种取证练习,而不是补救措施。请按照以下说明操作:我该如何处理受到感染的服务器?。
答案3
我也遇到过同样的问题。这甚至导致我的 IP 被列入黑名单。
我的主机建议我在 WHM 上添加 pyxsoft 反恶意软件插件。
它检测到了 wordpress 中的受感染文件,当我删除这些文件时垃圾邮件停止了,但它们每天都会回来。所以我每次都必须删除它们。
然后我再次咨询了我的房东,他们建议我使用 CSXhttp://configserver.com/cp/cxs.html
我还没有尝试过,但我希望这能够更好地照顾受到感染的网络主机。
答案4
由于您正在使用exim
,因此很可能您正在运行某个 Linux 发行版。如果是这样,您可以使用iptables
来阻止到端口 25 的传出连接。对于您的情况,您可能希望断开连接,以便它们停留一段时间。使用 监视系统以netstat -antp | grep :25
确定进程是否正在尝试发送消息。然后,您可以检查该进程以查看它从哪里运行。您可以使用 来kill -STOP
阻止进程运行,以便您有更多时间检查该进程。
如果您确实需要在执行此操作时发送电子邮件,请exim
从iptables
规则中豁免该用户。这将允许exim
在阻止其他用户的同时发送邮件。
如果您正在运行 Web 服务器,则可能是其中包含了发送电子邮件的脚本。一些可用的脚本允许垃圾邮件发送者使用您的服务器发送电子邮件。还有许多其他方法可以从不会被病毒扫描程序捕获的服务器发送电子邮件。在您确定电子邮件的发送方式之前,阻止iptables
可能是您最好的选择。