Cómo evitar falsos positivos de mod_evasive en descargas parciales de archivos grandes

Cómo evitar falsos positivos de mod_evasive en descargas parciales de archivos grandes

Recibo muchos avisos de falsos positivos enviados por mod_evasive instalado en mis servidores Apache. Siempre ocurren en descargas de archivos PDF de gran tamaño. Cuando los clientes descargan archivos PDF de mi sitio, utilizan muchas conexiones simultáneas, lo que desencadena un comportamiento de lista negra en mod_evasive. ¿Hay alguna forma de excluir archivos PDF del seguimiento mod_evasive? ¿Estoy usando una configuración demasiado restrictiva? Entiendo que cada implementación es algo diferente, pero estoy buscando sugerencias. Quiero dejar de enviar 403 en solicitudes de descargas parciales.

Aquí está el registro

[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)"

Aquí está la configuración 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>

Se agradece cualquier ayuda.

Respuesta1

Después de escribir esta pregunta, comencé a investigar y buscar una solución. Encontré una solución que básicamente simplemente desactiva las descargas parciales. No es la solución más eficiente pero parece funcionar.

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

información relacionada