在 apache 中获取 sh: 1: /usr/sbin/sendmail: 未找到错误

在 apache 中获取 sh: 1: /usr/sbin/sendmail: 未找到错误

我的 apache2 error.log 中有很多sh: 1: /usr/sbin/sendmail: not found,问题是,我不记得我的任何网站/应用程序尝试发送邮件或其他内容,并且我已经在我的 wordpress 博客上安装了 WP Mail SMTP,它运行正常,所以我的问题是,我如何找出哪个应用程序或网站一直在尝试这样做?

编辑:我确实发现了一些有趣的内容/var/log/mail.log

Jun 22 07:27:31 sm-mta[29654]: r5H8U4O1014238: to=<[email protected]>, ctladdr=<www-data@[email protected]> (33/33), delay=4+22:57:27, xdelay=00:00:01, mailer=esmtp, pri=63391559, relay=mx00.1and1.com. [74.208.5.3], dsn=4.0.0, stat=Deferred: 421 invalid sender domain

我已经按照说明完全卸载了我的服务器上的所有邮件应用程序,如下所示:

apt-get remove sendmail sendmail-bin postfix
apt-get purge postfix exim4 sendmail sendmail-bin

那些烦人的线条仍然时不时出现,我现在该怎么办?

谢谢,肖恩

答案1

这就是滥用发送垃圾邮件的企图。

在你的日志中查找 POST 请求,你就会很快发现哪些 PHP 脚本被滥用了。

例如:

grep -R POST /var/log/apache2

更新也许你的 sendmail 还在运行?
检查一下:

ps auxww | grep sendmail

netstat -anp |grep :25

您可以找到进程号仍在运行的守护进程的编号。

答案2

您可以伪造日志sendmail来记录消息内容。也许消息内容可以帮助您弄清楚这一点。

另一个选择(当应用程序不使用 sendmail 但尝试连接到端口 25 时)是创建一个虚假的邮件服务器,如下所示:python -m smtpd -n -c DebuggingServer localhost:25并捕获所有内容。

答案3

如果您使用 Drupal 和 SMTP 模块,这是一个已知问题

https://www.drupal.org/node/1078106

答案4

当我意外地将“true”作为第二个参数传递给 error_log() 时,我看到了这些错误。

这会导致通过电子邮件记录错误的尝试失败。

当写一些类似于error_log(print_r($foo, true));某人可能实际输入的内容时error_log(print_r($foo), true);

错误日志()

相关内容