Linux(debian)ボックスが正常に動作しています。しかし、「メール」コマンドを使用したときにどのプログラムがメールを送信しているかを調べる必要があるという問題があります。あるいは、PHPスクリプトがmail()関数を使用してメールを送信している場合は、それらのメールを送信しているプログラムを知る必要があります。
どうすれば確認できますか?
Ps:明確にするために、私(またはプログラム)が "mail"コマンドを使用したときにどのプログラムが呼び出されるかを知りたいのですが。
サーバーに2〜3個のMTAがインストールされていますが、メールの送信を担当しているMTAがわかりません。
あなたが何をする方法を求めているか:dpkg -S /path/to/mail
/ path/to/mail /は、mail
がパスに含まれている場合、which mail
を使用して見つけることができます。
マイナーノート:sendmail
の代わりにmail
を使用してメールも送信されます。
すべきこと:
メールログを見てください。おそらく/var/log/maillog
または/var/log/mail.log
デーモン名がそこにあるはずです。
straceはコードの動作を公開します-プログラムを実行しているのか、またはTCPメールサーバーに接続しているのか)。
この質問は サーバー上のどのスクリプトがスパムメールを送信しているかを確認する方法 に似ていますが、回答が許可されていない(重複とマークされている)ため、ここに回答して洞察を提供します。
次の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マルウェア検出機能 ;すべてのデータベース接続資格情報をリセットします。悪意のあるコードを削除するために単に目で見てください。
私が取ったいくつかの行動は:
ソースコードの場合:
1346.php
などの奇妙なファイル名.eval
で悪意のあるものを確認php
ファイルを確認しますそれらを実行した後、ディレクトリ以外のすべてのファイルの実行権限も削除します:chmod -x+X -R *
またはここを参照: フォルダーに触れずにファイルから実行権限を削除する
ただし、sendmail
またはpostfix
を構成しなかったため、/var/log/mail.err
および/varlog/syslog
にまだ多くのエラーが表示されます(このようなサービスを停止してスパムを公開できます)エラー):
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/