大きなファイルの部分ダウンロード時に mod_evasive の誤検知を防ぐ方法

大きなファイルの部分ダウンロード時に mod_evasive の誤検知を防ぐ方法

Apache サーバーにインストールされている mod_evasive から、誤検知の通知が大量に送信されます。これは、大きな PDF ファイルのダウンロード時に常に発生します。クライアントが私のサイトから PDF をダウンロードする場合、多数の同時接続が使用され、mod_evasive でブラックリスト化の動作がトリガーされます。mod_evasive の追跡から PDF を除外する方法はありますか? 制限が厳しすぎる設定を使用していますか? 展開ごとに多少異なることは承知していますが、提案をお待ちしています。部分的なダウンロード要求で 403 が送信されないようにしたいと考えています。

ログはこちら

[Tue Dec 31 09:47:37 2013] [error] [client 70.180.65.28] client denied by server configuration: /srv/netce/Root/pdfs/catalogs/productid_3078.pdf
70.180.65.28 - - [31/Dec/2013:09:47:37 -0800] "GET /3078/Catalog_MD14.pdf HTTP/1.1" 403 1018 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)"
70.180.65.28 - - [31/Dec/2013:09:47:37 -0800] "GET /3078/Catalog_MD14.pdf HTTP/1.1" 206 2560 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)"
70.180.65.28 - - [31/Dec/2013:09:47:37 -0800] "GET /3078/Catalog_MD14.pdf HTTP/1.1" 206 1024 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)"
70.180.65.28 - - [31/Dec/2013:09:47:37 -0800] "GET /3078/Catalog_MD14.pdf HTTP/1.1" 206 4096 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)"

mod_evasiveの設定はこちら

LoadModule evasive20_module modules/mod_evasive20.so
<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        5
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
    DOSEmailNotify      [email protected]
    DOSLogDir           "/var/www"
    DOSWhitelist   127.0.0.1
    DOSWhitelist   192.168.*
</IfModule>

どのような助けでも大歓迎です。

答え1

この質問を書いた後、私は調査を始めて解決策を探し始めました。基本的に部分的なダウンロードを無効にする回避策を見つけました。最も効率的な解決策ではありませんが、機能しているようです。

<LocationMatch "\.pdf$">
 Header unset Accept-Ranges
</LocationMatch>

関連情報