如何防止大檔案部分下載時出現 mod_evasive 誤報

如何防止大檔案部分下載時出現 mod_evasive 誤報

我收到很多由安裝在我的 apache 伺服器上的 mod_evasive 發送的誤報通知。它們總是發生在大型 PDF 檔案下載時。當客戶從我的網站下載 PDF 時,他們會使用許多同時連接,從而觸發 mod_evasive 中的黑名單行為。有什麼方法可以將 PDF 從 mod_evasive 追蹤中排除嗎?我使用的配置是否過於嚴格?我知道每個部署都有些不同,但我正在尋找建議。我想停止針對部分下載請求發送 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>

相關內容