发送邮件并缩小执行该操作的脚本

发送邮件并缩小执行该操作的脚本

我正在使用一台非常老旧的 Ubuntu 服务器,它以前是邮件服务器,后来被感染了。不幸的是,该服务器上有一个正在运行的网页。一些脚本/页面/恶意软件试图发送大量垃圾邮件 - 我知道,因为 /var/spool/postfix/maildrop 很快就满了。

我以为将 php5/cli/php.ini sendmail_path 更改为无效的内容会阻止这种情况。遗憾的是,这并没有阻止(我已重新加载 Apache)。服务器太旧了,甚至 iotop 都无法工作。(需要升级内核 + 软件包,但这不会发生)。

有什么方法可以缩小这里的主要问题吗?有没有办法检查哪个文件试图发送垃圾邮件,以便我可以删除它?

答案1

我怀疑不是你的邮件服务器被感染了。你的服务器上可能运行着一个垃圾邮件机器人,它直接发送电子邮件。如果你的电子邮件日志中没有记录垃圾邮件,那么很可能就是这种情况。

以下 IP 表规则将阻止垃圾邮件机器人和以其他用户 ID 身份运行的程序发送电子邮件。

iptables -A OUTPUT --dport 25 -m owner --uid-owner XX -j ACCEPT  # Where XX is the UID of the Email server
iptables -A OUTPUT --dport 25 -j LOG  --log-level 6 --log-prefix "Outgoing SMTP blocked:"
iptables -S OUTPUT --dport 25 -j DROP

您可能需要以 root 身份运行几次 netstat 命令,以查看哪些程序正在发送消息。我会使用类似这样的命令:

netstat -antp | grep :25

保持发行版的更新非常重要。使用 LTS,您可以每 2 年进行一次版本升级,而正常的发布周期是每 6 个月。像这样的软件包unattended-upgrades可以在更新可用时应用更新。

答案2

感谢@BillThor 的帮助——非常感谢,超级用户这里有几个类似的问题,我设法做到了这一点:

1)禁用25端口(smtp)的输入和输出

iptables -A OUTPUT -p tcp --dport 25 -j DROP
iptables -A OUTPUT -p tcp --dport 25 -j LOG  --log-level 6 --log-prefix "SMTP BLOCK:"
iptables -A INPUT -p tcp --dport 25 -j DROP

2)禁用服务器上的任何 imap/courier/pop/smtp 服务(它是旧的邮件服务器,现在已经不存在了,所以没有必要拥有这些服务)

3)我下载错误检测它立即向我显示了有问题的文件,例如 img23141243.php.jpg 或 img1321312.php.gif

清理这个旧的 Web 服务器帐户后,没有任何 apache2 连接到 :25。一直在通过记录端口 25 上的任何传出活动来监控这一点,并且

netstat -antp | grep :25

4)遗憾的是 LMD 没有发现服务器上所有的恶意软件,但我使用了HowToForge 文章关于如何将 sendmail 命令重定向到外部脚本,该脚本将记录每次发送邮件的尝试,并记录受感染文件文件夹的路径。多亏了它,我找到了被感染的 sql.php。

相关内容