1

サーバーへの HTTP POST 攻撃を受けています。拒否速度を改善し、Apache の負担を軽減するために、これらのすべてのリクエストを mod_security でキャッチする代わりに 403 に送信したいと考えています。現時点で mod_security を介して何が起こっているかを次に示します。

[Tue Jul 31 23:40:42 2012] [error] [client 24.201.202.189] ModSecurity: Access denied with code 403 (phase 2). Operator EQ matched 0 at REQUEST_HEADERS. [file "/var/asl/rules/10_asl_rules.conf"] [line "63"] [id "390616"] [rev "2"] [msg "Atomicorp.com WAF Rules: POST request must have a Content-Length header"] [severity "WARNING"] [hostname "some-server.domain.com"] [uri "/index.php/1.0"] [unique_id "UBhQ2myulQkAADbaEm8AAACN"]

mod_rewrite を介して index.php へのアクセスを 403 に送信しようとしていますが、機能していないようです。これらは POST には当てはまらないか、何か不足していると思います。これが私が今使っているものです:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^http://(www\.)?some-server\.domain\.com
RewriteRule ^index\.php$ [F]

サーバー名は上記のような構造になっていますが、明らかな理由からいくつかの一般的な名前に置き換えました。

mod_rewriteルールを介して、これと私が間違っている可能性があることについて、誰かがフィードバックを提供できますか?

ありがとう!

4

1 に答える 1

1

この場合の解決策は、攻撃は常に同じであるため、次のようになります。

<LocationMatch "^/index.php/1.0">
order allow,deny
deny from all
</LocationMatch>

その時点から、攻撃者は常に「サーバー構成による拒否」をトリガーしたため、次のように一度にすべてをブロックするのは簡単でした。

for i in $(grep "client denied by server configuration: /usr/local/apache/htdocs/index.php" /usr/local/apache/logs/error_log | cut -d\  -f8 | tr -d ']' | sort | uniq); do csf -d $i; done

問題が解決しました。

于 2012-08-05T13:34:59.963 に答える