如何找出正在發送電子郵件的程序
我有執行良好的 linux (debian) 盒子。但是我有一個問題,當我使用“郵件”命令時,我需要找出什麼程序正在發送電子郵件。或者就此而言,當 PHP 腳本使用 mail() 函式發送電子郵件時,我需要知道什麼程序正在發送這些電子郵件。
我怎樣才能知道?
Ps:為了清楚,我想知道當我(或一個程序)使用“郵件”命令時呼叫了什麼程序。
我的伺服器上安裝了 2-3 個 MTA,但我找不到哪個負責發送郵件。
你問怎麼做:
dpkg -S /path/to/mail
/path/to/mail/ 可以使用 找到
which mail
,前提是小提示:
郵件也可以使用
sendmail
而不是你應該做什麼:
看看你的郵件日誌,可能
/var/log/maillog
或者/var/log/mail.log
守護程序名稱應該在那裡。
這個問題類似於 如何查找我的伺服器上的哪個腳本正在發送垃圾郵件?,但由於它不再允許回答(標記為重複),所以我在這裡回答它以提供一些見解。
簡短的回答:
更改文件
/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
等。- grep
eval
所有文件以查看任何惡意內容- 檢查任何
php
具有混淆程式碼的文件完成這些之後,我還刪除了除目錄之外的所有文件的執行權限:
chmod -x+X -R *
或參考此處:從文件中刪除執行權限而不觸及文件夾但是,我的
/var/log/mail.err
and中仍然看到很多錯誤/varlog/syslog
,因為我沒有配置sendmail
orpostfix
(您可以停止此類服務以暴露垃圾郵件錯誤):
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/