如何防止大文件部分下载时出现 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>

相关内容