我有一台运行良好的 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
,因为我没有配置sendmail
或postfix
(您可以停止此类服务以显示垃圾邮件错误):
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 连接。