タグ付けされた質問 「mod-security」

5
http_hostヘッダーによるmod_securityブロックリクエスト
ここ数日、いくつかのサーバーが未知のリクエストで攻撃されていることに気付きました。 それらのほとんどは次のようなものです。 60.246.*.* - - [03/Jan/2015:20:59:16 +0200] "GET /announce.php?info_hash=%80%85%8e%9bu%cfJ.%85%82%e9%25%bf%8e%9e%d7%bf%c5%b0%12&peer_id=-UT3420-v%8bN%aa%60%60%fd%5d%d1%b0Ux&port=15411&uploaded=48588531&downloaded=0&left=0&corrupt=0&key=9E124668&numwant=200&compact=1&no_peer_id=1 HTTP/1.1" 200 - 少しログと検索を行った後、いくつかの中国のISP(おそらくwhatsmydns.netの結果によるとCERNET)といくつかのトルコのISP(おそらくTTNET)a.tracker.thepiratebay.orgが、piratebayとは関係のないさまざまなIP などのDNSクエリに応答することがわかりましたまたは急流。言い換えれば、彼らは何らかの奇妙な理由で何らかの種類のDNSキャッシュポイズニングを行うようです。 そのため、これらの国の数百(数千ではないにしても)のBitTorrentクライアントが私のWebサーバーに大量の「アナウンス」を行い、Apacheのすべての接続をDDoS攻撃がほぼ完全に占有します。 現時点では、私は中国とトルコを完全にブロックして仕事をしていますが、それらのリクエストをブロックするより良い方法を見つけたいと思います。 HTTP Hostヘッダーに基づいたmod_securityでこれらの要求をブロックすることを考えていました。 すべてのこれらの要求は、HTTPホストのようなヘッダが含まa.tracker.thepiratebay.org(またはthepiratebay.orgドメインの他の多くのサブドメインを)。 これは、PHPの$_SERVER変数を介したリクエストヘッダーのダンプです。 DOCUMENT_ROOT: /usr/local/apache/htdocs GATEWAY_INTERFACE: CGI/1.1 HTTP_ACCEPT_ENCODING: gzip HTTP_CONNECTION: Close HTTP_HOST: a.tracker.thepiratebay.org HTTP_USER_AGENT: uTorrent/342(109415286)(35702) PATH: /bin:/usr/bin QUERY_STRING: info_hash=%80%85%8e%9bu%cfJ.%85%82%e9%25%bf%8e%9e%d7%bf%c5%b0%12&peer_id=-UT3420-v%8bN%aa%60%60%fd%5d%d1%b0Ux&port=15411&uploaded=48588531&downloaded=0&left=0&corrupt=0&key=9E124668&numwant=200&compact=1&no_peer_id=1 REDIRECT_STATUS: 200 REMOTE_ADDR: 60.246.*.* REMOTE_PORT: 3445 REQUEST_METHOD: GET REQUEST_URI: /announce.php?info_hash=%80%85%8e%9bu%cfJ.%85%82%e9%25%bf%8e%9e%d7%bf%c5%b0%12&peer_id=-UT3420-v%8bN%aa%60%60%fd%5d%d1%b0Ux&port=15411&uploaded=48588531&downloaded=0&left=0&corrupt=0&key=9E124668&numwant=200&compact=1&no_peer_id=1 SCRIPT_FILENAME: /usr/local/apache/htdocs/announce.php SCRIPT_NAME: /announce.php …

1
PCRE制限とは何ですか?
ModSecurityにはPCRE limits exceededエラーがあります。 次のようなルールを設定することでこれを修正できることを知っています。 SecPcreMatchLimit 150000 SecPcreMatchLimitRecursion 150000 しかし、これらのルールは実際に何をしているのでしょうか?PCRE制限再帰が150,000に設定されているとはどういう意味ですか?これらを非常に高く設定することで、どのセキュリティホールを通過できますか?何をしてないrecursionとはlimitどういう意味ですか? ドキュメントがあることは知っていますが、ドキュメントは実際に何が起こっているかを教えてくれません。ディレクティブをどのように扱うかを単に教えてくれます。

3
mod_security-PCREの制限を超えました
ほぼすべてのリクエストで、次のエラーが表示されます。 Rule execution error - PCRE limits exceeded (-8): (null). たくさんのグーグルの後、唯一の解決策は a)httpd.confに以下を追加します SecPcreMatchLimit 150000 SecPcreMatchLimitRecursion 150000 b)以下をphp.iniに追加します pcre.backtrack_limit = 10000000 pcre.recursion_limit = 10000000 c)-disable-pcre-match-limitオプション付きでコンパイルされたバージョンを使用します。 私は次を実行しています: Apache / 2.5.12のModSecurity(http://www.modsecurity.org/)。 Apache / 2.2.16(Debian)PHP / 5.3.3-7 + squeeze8とSuhosin-Patch mod_ssl / 2.2.16 OpenSSL / 0.9.8 ModSecのルールについては、この投稿の最新のOWASP ModSecurityコアルールセットプロジェクトバージョン(CRS)バージョン2.2.3を使用しています。 私のhttpd.confは、本質的に次のもので構成されています。 <IfModule security2_module> SecUploadDir /var/asl/data/suspicious SecDataDir /var/asl/data/msa …

3
特定のディレクトリのmodsecurityを無効にする
特定のディレクトリのみのmodsecurityを無効にする方法を教えてください。phpMyAdminで、ルールに基づいてmodsecurityのトリップが原因でエラーが発生します。次のファイルを設定しています。 # /etc/httpd/modsecurity.d/modsecurity_crs_15_customrules.conf <LocationMatch "^/phpMA/"> SecRuleEngine Off </LocationMatch> # /etc/httpd/modsecurity.d/modsecurity_crs_60.custom.conf <LocationMatch '^/phpMA/*'> SecRuleRemoveById 950004 SecRuleRemoveById 950005 SecRuleRemoveById 950006 SecRuleRemoveById 960010 SecRuleRemoveById 960012 </LocationMatch> 最初のファイルを見つけると、それは無効になるはずですが、それでもトリップします。そのため、トリップしているルールIDを60ファイルに追加しようとしましたが、それでも問題があります。 CentOS 5.3で次のパッケージを実行しています。 mod_security-2.5.0-jason.2 httpd-2.2.8-jason.3 mod-php5-apache2-zend-ce-5.2.10-65
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.