2012-09-06 17 views
6

A tengo una inundación http en mi servidor, no tanto consultas, pero de todos modos. Consultas en logConfig de nginx para filtrar http flood

95.55.237.3 - - [06/Sep/2012: 14: 38: 23 0400] "GET/HTTP/1.0" 200 35551 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) "" - "| "-" 93.78.44.25 - - [06/Sep/2012: 14: 38: 23 +0400] "GET/HTTP/1.0" 200 36051 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; -US) "" - "| "-" 46.118.112.3 - - [06/Sep/2012: 14: 38: 23 +0400] "GET/HTTP/1.0" 200 35551 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; -US) "" - "| "-"

He intentado esto filtros en la configuración de nginx

server { 
    ..... 
    set $add 1; 
    set $ban ''; 

###### Rule 1 ######## 
if ($http_referer = '-') { 
    set $ban $ban$add; 
} 
if ($request_uri = '/') { 
    set $ban $ban$add; 
} 

if ($http_user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)') { 
    set $ban $ban$add; 
} 

if ($ban = 111) { 
    return 444; 
} 
###################### 
...... 
} 

pero las consultas bot Stil obtener 200 OK. ¿Alguien podría ayudar?

Respuesta

31

Trate de añadir algo así como las siguientes directivas a su configuración para evitar inundaciones http:

http { 
    limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m; 
    limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s; 

    server { 
    limit_conn conn_limit_per_ip 10; 
    limit_req zone=req_limit_per_ip burst=10 nodelay; 
    } 
} 

Ver http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html y http://nginx.org/en/docs/http/ngx_http_limit_req_module.html para obtener más información

Hay toda la siguiente directiva http://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate

NOTA: http://www.botsvsbrowsers.com/details/504401/index.html dice que el agente de usuario anterior no es un bot conocido

+0

esto puede ser malo para muchas computadoras en la misma lengua, compartiendo una dirección IP – brauliobo

+3

@brauliobo, en serio, cuántas personas navegan desde la misma lan hoy en día si no fuera por el juego multijugador. incluso puedes ajustar la cantidad de ips permitidos en el tiempo que establezcas ... –

+0

@stupidtroll ¿conoces los enrutadores? se usan en todos los hogares y empresas, colocando a todos los usuarios en una o pocas IPs de Internet – brauliobo

3

También puede bloquear direcciones IP específicas, como medida adicional.

http{ 
    deny 127.45.4.1; 
    ... 
} 

O dicho de direcciones IP bloqueadas en el archivo separado

http{ 
    include blockedips.conf 
    ... 
} 

blockedips.conf

deny 1.12.4.5; 
3

También puede bloquear país específico

http{ 
    geoip_country /usr/share/GeoIP/GeoIP.dat; 
    map $geoip_country_code $allowed_country { 
     default yes; 
     FK no; 
     FM no; 
     EH no; 
    } 
} 

GeoIP.dat se pueden descargar desde http://dev.maxmind.com/geoip/geoip2/geolite2/ (no estoy afiliado a maxmind)

Cuestiones relacionadas