1

私の会社には、多数の Web サイトをホストする同じ場所に配置された CentOS サーバーがあります。管理には Plesk を使用していますが、個人的には主にターミナル経由で作業しています。今週末、クライアントのドメインの 1 つの電子メール アカウントが侵害され、サーバーがスパムの送信を開始しました。私たちはスパムのブラックリストに登録され、何が起こっているのかを把握している間、一部のサイトがダウンしました。

もちろん、このようなことが二度と起こらないようにしたいと思います。最初にサーバーをセットアップしませんでした - 複数の Web サイトに対して同じ IP で http ホスティングとメール ホスティングを実行することは、おそらく最適なセットアップではありません。 .

短期的な修正として、スクリプトで SMTP プロセスの数を監視し、特定のしきい値を超えた場合にメールを送信することは可能でしょうか? サーバーがスパムを送信していたとき、約 80 の SMTP プロセスが実行されていたため、スパム サーバーとして使用されていることがわかりました。また、この状況を長期的に処理するためのアイデアはありますか? サーバーには 8 つの IP のブロックがあります。

ご協力いただきありがとうございます。アドバイスやご意見をお待ちしております。私は LAMP 開発者であり、フルタイムの *nix 管理者ではありません。考えている

5 分ごとに cron ジョブをトリガーする
パイプ #ps -A ファイルへの出力 ファイル
を読み取り、正規表現を介して文字列「SMTP」の出現回数をカウントする
必要に応じて電子メールを送信する

しかし、ちょっと複雑なようです :/

4

1 に答える 1

1

うまくいきました。SMTP プロセスの数をカウントし、10 を超える場合はカウント付きのメールを送信するシェル スクリプトを次に示します。

#!/bin/bash  <- change as appropriate for your shell
NUMSMTP = $(ps ax | grep 'smtp' | wc -l)
if [[ $NUMSMTP -gt 10 ]] ; then
    echo "the server has $NUMSMTP processes running" | mail -s "subject" admin@example.com
fi

/etc/crontab の crontab を使用して、5 分ごとに実行するように cron 経由でスケジュールしました。

*/5 * * * * /path/to/script.sh

そして勝つ:)

于 2012-07-13T19:34:49.420 に答える