Linux

如何找出正在發送電子郵件的程序

  • January 30, 2017

我有執行良好的 linux (debian) 盒子。但是我有一個問題,當我使用“郵件”命令時,我需要找出什麼程序正在發送電子郵件。或者就此而言,當 PHP 腳本使用 mail() 函式發送電子郵件時,我需要知道什麼程序正在發送這些電子郵件。

我怎樣才能知道?

Ps:為了清楚,我想知道當我(或一個程序)使用“郵件”命令時呼叫了什麼程序。

我的伺服器上安裝了 2-3 個 MTA,但我找不到哪個負責發送郵件。

你問怎麼做:

dpkg -S /path/to/mail

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

小提示:

郵件也可以使用sendmail而不是mail.

你應該做什麼:

看看你的郵件日誌,可能/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等。
  • grepeval所有文件以查看任何惡意內容
  • 檢查任何php具有混淆程式碼的文件

完成這些之後,我還刪除了除目錄之外的所有文件的執行權限: chmod -x+X -R * 或參考此處:從文件中刪除執行權限而不觸及文件夾

但是,我的/var/log/mail.errand中仍然看到很多錯誤/varlog/syslog,因為我沒有配置sendmailor 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/

引用自:https://serverfault.com/questions/434641