我有Linux(debian)框运行正常。 不过,我有问题,我需要找出什么程序发送电子邮件时,我使用“邮件”命令。 或者就此而言,当PHP脚本使用mail()函数发送电子邮件时,我需要知道哪些程序正在发送这些电子邮件。
我怎样才能find?
Ps:为了清楚,我想知道当我(或程序)使用“mail”命令时,调用什么程序。
我的服务器上安装了2-3个MTA,但是我找不到哪一个负责发送邮件。
你在问怎么做:
dpkg -S /path/to/mail
/ path / to / mail /可以使用which mailfind,前提是mail在你的path中。
小注:
邮件也可以使用sendmail而不是mail发送出去。
你应该做什么:
看看你的maillog,可能是/var/log/maillog或/var/log/mail.log守护进程的名字应该在那里。
strace将暴露你的代码的行为 – 无论是执行一个程序或build立一个TCP连接到一个邮件服务器。
这个问题类似于如何find我的服务器上的哪个脚本发送垃圾邮件? ,但由于它不允许回答(标记为重复),我在这里回答它提供一些见解。
通过添加以下两行来更改/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文件,看看哪些脚本有触发错误,并删除它们!
这是非常具体的范围(我的解决scheme不解决其他情况):
我在VPS上运行Ubuntu nginx, php5-fpm, and wordpress安装了nginx, php5-fpm, and wordpress ,并且被黑客入侵,我很确定这是WP被黑客入侵,垃圾代码被注入。
我尝试了以下操作来修复; 如使用的Linux恶意软件检测器 ; 重置所有数据库连接凭证; 只需浏览一下即可移除恶意代码。
我采取的一些行动是:
对于源代码:
1346.php等 eval你所有的文件看到任何恶意的东西 php文件 在完成这些之后,我还删除了除目录之外的所有文件的执行权限: chmod -x+X -R *或者参考: 从文件中删除执行权限而不触及文件夹
但是,我仍然在/var/log/mail.err和/varlog/syslog看到很多错误,因为我没有configurationsendmail或postfix (可以停止这些服务来显示垃圾邮件错误):
postfix/sendmail[2422]: fatal: open /etc/postfix/main.cf: No such file or directory
但是,我仍然不知道垃圾邮件脚本在哪里…卡在这里…
search了几个小时之后,我find了上面提到的解决scheme,在php.iniconfiguration你的邮件设置,并显示脚本的位置。
删除这些脚本后,我发现没有更多的垃圾邮件错误,到目前为止我的服务器看起来很干净。
尽pipe如许多人所build议的那样,你应该把这样的服务器脱机,并重新映像或重置到以前的状态等等。
参考链接:
我如何处理受损的服务器?
https://blog.rimuhosting.com/2012/09/20/finding-spam-sending-scripts-on-your-server/