如何找出哪个程序正在发送电子邮件

如何找出哪个程序正在发送电子邮件

我有一台运行良好的 Linux (debian) 机器。但是我遇到了一个问题,当我使用“mail”命令时,我需要找出哪个程序在发送电子邮件。或者当 PHP 脚本使用 mail() 函数发送电子邮件时,我需要知道哪个程序在发送这些电子邮件。

我如何才能知道?

附言:为了清楚起见,我想知道当我(或程序)使用“邮件”命令时会调用什么程序。

我的服务器上安装了 2-3 个 MTA,但我不知道哪一个负责发送邮件。

答案1

你要问怎么做:
dpkg -S /path/to/mail

可以使用 找到 /path/to/mail/ which mail,前提是它mail在您的路径中。

小提示:
sendmail邮件也可以使用而不是 来 发送mail

你应该做什么:
查看您的邮件日志,可能/var/log/maillog/var/log/mail.log守护进程名称应该在那里。

答案2

这个问题类似于 如何找出我的服务器上哪个脚本正在发送垃圾邮件?,但由于它不再允许回答(标记为重复),我在这里回答以提供一些见解。

简短回答:

更改文件/etc/php.ini/etc/php5/apache/php.ini添加这两行: mail.add_x_header = On mail.log = /var/log/phpmail.log

重新启动php5 or php5-fpm service and nginx/apache服务,然后检查/var/log/phpmail.log文件以查看哪些脚本触发了错误,并将其删除!

长答案:

这是非常具体的范围(我的解决方案不能解决其他情况):

我在 VPS 中运行 Ubuntu,并且已经nginx, php5-fpm, and wordpress安装,但它被黑客入侵了,我很确定是 WP 被黑客入侵了,并且注入了垃圾代码。

我尝试了以下操作来修复;例如使用Linux 恶意软件检测器;重置所有数据库连接凭据;只需浏览一下即可删除恶意代码。

我采取的一些行动如下:

  • 重置所有数据库密码
  • 登录 wp-admin,删除非预期的管理员用户
  • 安装wordfence进行防御

对于源代码:

  • 你可以将官方的 wordpress 代码与你的代码进行比较,看看有什么变化
  • WP 根目录中的奇怪文件夹
  • 一些以 *.suspected 结尾的文件
  • 奇怪的文件名,例如1346.php,等等。
  • eval对所有文件进行 grep以查看是否有恶意文件
  • 检查任何php含有混淆代码的文件

完成这些之后,我还删除了除目录之外的所有文件的执行权限: chmod -x+X -R * 或参考此处:删除文件的执行权限而不触及文件夹

但是,我仍然在我的/var/log/mail.err和中看到许多错误/varlog/syslog,因为我没有配置sendmailpostfix(您可以停止此类服务以显示垃圾邮件错误):

postfix/sendmail[2422]: fatal: open /etc/postfix/main.cf: No such file or directory

但是,我仍然不知道垃圾邮件脚本在哪里......卡在这里......

经过几个小时的搜索,我找到了上述解决方案简短回答,配置您的邮件设置php.ini并公开脚本的位置。

删除这些脚本后,我发现不再有垃圾邮件错误,到目前为止我的服务器看起来很干净。

尽管正如许多人建议的那样,您应该使该服务器脱机并重新映像或重置为以前的状态等。

参考链接:

我该如何处理受到感染的服务器?

https://blog.rimuhosting.com/2012/09/20/finding-spam-sending-scripts-on-your-server/

答案3

strace 将暴露您的代码的行为 - 无论它是执行程序还是与邮件服务器建立 TCP 连接。

相关内容