1

Backstory : 最近、何者かが私のサーバーにリンクされた Xenforo のインストールを侵害し、無限にループする php mail() スクリプトを挿入しました。ドメイン内から外部に何千通もの電子メールが送信され、私が気付いていないうちに主要なすべての電子メール ISP から私のドメインがブラックリストに登録されてしまいました。フォーラムの cache および skin_cache ディレクトリに何らかの方法で挿入されたファイルを見つけ、それらを削除し、アンチスパム ハーベスティング サイトへの永続的なリダイレクト (php ヘッダー リダイレクトを使用) を設定しました。

現在の問題: 前述のスパム スクリプトへの POST 要求が絶え間なく安定して流れているのを確認しています。IP は毎回異なり、止まることはないようです。これは2週間以上起こっています。私のApacheがMaxClients設定を使い果たし、メモリの問題が発生し、他のプロセスをシャットダウンして補償し始めているほどです。

これはログに表示されているものです:

190.40.7.126 - - [28/Mar/2013:18:58:30 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0"
190.104.19.189 - - [28/Mar/2013:18:58:39 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0"
78.251.159.173 - - [28/Mar/2013:18:58:57 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0"
219.78.213.10 - - [28/Mar/2013:18:59:09 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0"
69.123.20.137 - - [28/Mar/2013:18:59:09 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0"
2.234.181.7 - - [28/Mar/2013:18:59:37 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0"
187.207.223.67 - - [28/Mar/2013:18:59:44 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0"
24.242.122.42 - - [28/Mar/2013:19:01:56 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0"
213.49.254.102 - - [28/Mar/2013:19:02:32 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0"
82.247.48.152 - - [28/Mar/2013:19:02:38 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0"
41.135.146.136 - - [28/Mar/2013:19:02:43 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0"
91.187.93.36 - - [28/Mar/2013:19:03:04 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0"
194.90.37.132 - - [28/Mar/2013:19:03:40 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0"

この問題を処理する最善の方法について提案が必要です。それらを単にリダイレクトまたは 404 するだけでは、サーバーでのリソースの使用を止めることはできません。また、非常に多くの異なる IP が一定の速度で存在するため、重複する IP があるかどうかを確認するのは困難です。それらはすべてランダムな範囲にあり、起源が異なるようです。これらが偽のリクエストなのか、それとも本当に侵害されたクライアントがスパミング xss や何らかのウイルスの犠牲になったのか、正直なところわかりません。

そのファイルを動的に要求する IP を禁止して、再試行できないようにする方法を考えるのは合理的でしょうか? 提案が必要で、これについて助けてください。

4

1 に答える 1

3

悪意のあるスクリプトへの URL がボットネットに配布された可能性があります。ボットネットは Web サーバーを足掛かりとして使用しようとしています。ボットネットが機能しないスクリプトを要求し続けることは利益にならないため、要求は最終的にはおさまります。

迅速かつ簡単な修正: <Location>Apache 構成にブロックを追加するか、これらの要求を無視する書き換えルールを追加します。

大胆で無計画な方法: iptables ベースのレート制限を使用します。iptables -A INPUT -p tcp --dport 80 -m limit --limit 60/min -j ACCEPT次の拒否ルールを使用すると役立つ場合がありますが、検索エンジンのインデクサーや正当なボットなどの正当なトラフィックもブロックされる可能性があります.

より良い解決策: Apache のような Web アプリケーション ファイアウォールを実装しますmod_security。追加のルールを追加して、着信リクエストを照合し、それらをブラックリストに登録するか、その他の適切な副作用を追加できます。

どちらのオプションを選択しても、404 エラーがサーバーのリソース使用に悪影響を及ぼしているとは思えません。他の要因を考慮する必要があります。

  • PHP スクリプトが、重大なパフォーマンス/効率の問題を引き起こしている可能性があります。
  • 大量のトラフィックを処理するように Apache 構成が最適化されていない可能性があります。
  • サーバーが危険にさらされ、対処しなければならないはるかに大きな問題が発生しています。

Apache をリバース プロキシ バックエンドとして Nginx の背後に配置することも検討してください。原因によっては、Apache サーバーの前で HTTP キャッシュ (Varnish など) を使用すると、サーバーの負荷が変動する要素ではなく、比較的一定の要素に減少する可能性があります。

TL;DR : 状況によります。サーバーの設定が間違っているか、侵害されている可能性があります。

于 2013-03-29T02:30:53.343 に答える