Applicable to:
- Plesk for Linux
質問
サーバ上の PHP スクリプトから大量のメールメッセージが送信されています。Postfix を使用している場合、これらのスクリプトを実行しているドメインをどうやって確認できますか。
回答
注: 本記事は Postfix を対象にしています。メールサーバに Qmail を使用している場合、以下の記事を参照してください。 1711 : サーバ上の PHP スクリプトから大量のメールメッセージが送信されます。これらのスクリプトがどのようなドメインで実行されているのかを確認するにはどうすればよいですか?
以下の方法で、メールを送信している PHP スクリプトが実行されているディレクトリを確認できます。
注: 使用している OS と Plesk のバージョンによって、以下のパスが少し異なる可能性があります。
-
以下の内容で
/usr/sbin/sendmail.postfix-wrapper
スクリプトを作成します。ファイルを作成して、編集用に開きます。
# touch /usr/sbin/sendmail.postfix-wrapper
# vi /usr/sbin/sendmail.postfix-wrapper以下の内容を追加します。
#!/bin/sh
(echo X-Additional-Header: $PWD ;cat) | tee -a /var/tmp/mail.send|/usr/sbin/sendmail.postfix-bin "$@"注: #!/bin/sh を含む 2 行です。
-
ログファイル
/var/tmp/mail.send
を作成し、 a+rw 権限を付与します。ラッパを実行可能にして古いsendmail
の名前を変更し、新しいラッパにリンクします。次に、以下のコマンドを実行します。# touch /var/tmp/mail.send
# chmod a+rw /var/tmp/mail.send
# chmod a+x /usr/sbin/sendmail.postfix-wrapper
# mv /usr/sbin/sendmail.postfix /usr/sbin/sendmail.postfix-bin
# ln -s /usr/sbin/sendmail.postfix-wrapper /usr/sbin/sendmail.postfix -
1 時間待ち、sendmail を元に戻します。
# rm -f /usr/sbin/sendmail.postfix
# mv /usr/sbin/sendmail.postfix-bin /usr/sbin/sendmail.postfix
/var/tmp/mail.send
ファイルをチェックします。
X-Additional-Header:
で始まる行に、メールを送信したスクリプトのドメインフォルダが記述されています。
メール PHP スクリプトが実行されているディレクトリは、以下のコマンドを使用して確認できます。
# grep X-Additional /var/tmp/mail.send | grep `cat /etc/psa/psa.conf | grep HTTPD_VHOSTS_D | sed -e 's/HTTPD_VHOSTS_D//' `
注: 上記コマンドの結果が出力されない場合、Plesk 仮想ホストディレクトリから PHP mail() 関数を使用して送信されたメールはありません。
通常、これはいずれかのメールアカウントが悪用されたことを意味します。ログイン試行回数をチェックします。
# zgrep -c 'sasl_method=LOGIN' /usr/local/psa/var/log/maillog*
/usr/local/psa/var/log/maillog:221000
/usr/local/psa/var/log/maillog.processed:362327
/usr/local/psa/var/log/maillog.processed.1.gz:308956
試行回数が異常に多い場合、このアカウントが悪用されている可能性は高いと言えます。以下の方法で、これらのアカウントを特定します。
# zgrep 'sasl_method=LOGIN' /usr/local/psa/var/log/maillog* | awk '{print $9}' | sort | uniq -c | sort -nr | head
891574 sasl_username=admin@example.com
スパムの送信を停止するには、悪用されたアカウントのパスワードを変え、Postfix サービスを再起動します。
Plesk 12 の場合、『 管理者ガイド 』も参照してください。
コメント
0件のコメント
サインインしてコメントを残してください。