我有 Debian Linux 服务器,它为多个 PHP 站点提供服务。今天我收到来自数据中心的邮件,他们说我的服务器正在发送垃圾邮件和附加的垃圾邮件。这实际上是来自我的服务器的消息,我设法在 exim4 主日志中找到它。问题:如何确定 PHP 代码中的漏洞在哪里以及哪个站点(我有 3 个)发送了这封邮件?我已经 chroot 了一个站点并禁用了 php 邮件和所有 exec、系统等功能,但我不确定是哪个站点发送了邮件。有没有办法记录所有外发邮件的消息正文?
答案1
您可以编写并配置一个围绕 sendmail 的包装器,以执行更多日志记录
在php.ini中:
sendmail_path = /usr/sbin/sendmail -t -i
改成:
sendmail_path = /usr/local/bin/myscript
或者在您的 php 代码中,您可以编写自己的邮件函数,作为执行日志记录的 php 邮件的包装器。请记住验证所有输入。