
Estou usando esta sintaxe para meu arquivo de configuração Nginx /etc/nginx/nginx.conf
que diz:
user www-data;
worker_processes 2;
pid /run/nginx.pid;
worker_rlimit_nofile 100000;
events {
worker_connections 2048;
multi_accept on;
}
http {
##
# Basic Settings
##
client_header_buffer_size 2k;
large_client_header_buffers 2 1k;
client_body_buffer_size 10M;
client_max_body_size 10M;
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
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=50r/s;
server {
limit_conn conn_limit_per_ip 10;
limit_req zone=req_limit_per_ip burst=10 nodelay;
}
sendfile on;
tcp_nopush on;
tcp_nodelay on;
types_hash_max_size 2048;
server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Os blocos de servidor dos meus sites estão incluídos em:include /etc/nginx/sites-enabled/*;
O servidor definido http
como visto acima substituirá os server{}
blocos em my sites-enabled/*
para que a proteção DDOS funcione conforme o esperado?
Responder1
Na verdade, há uma diferença importante entreDOSeDDOSataques. O D adicional em DDOS significa distribuído.
Para simplesDOSataca sua configuração pode ser usada. No entanto, isso realmente depende do seu aplicativo ou site onde pode estar a diferença entre um caso de uso permitido ou esperado e um caso de uso não permitido ou não esperado. Não existe receita genérica.
Para mitigarDDOSataca sua configuraçãonão vai ajudar. Esses ataques serão disparados de muitos endereços IP diferentes. Normalmente, os ataques DDOS devem ser mitigados no nível da rede e com uma largura de banda realmente alta.
Responder2
Meu palpite é que você está falandongx_http_limit_conn_moduleengx_http_limit_req_module.
Sintaxe: número da zona limit_conn;
Padrão: —
Contexto: http, server, location
Estas diretivas são herdadas do nível de configuração anterior se e somente se não houver diretivas limit_conn definidas no nível atual.
Então, limit_conn
você precisa colocá-lo um nível acima no http
bloco para torná-lo herdado nos server
blocos.
Sintaxe: limit_req zone=nome [burst=número] [nodelay | atraso=número];
Padrão: —
Contexto: http, server, location
Estas diretivas são herdadas do nível de configuração anterior se e somente se não houver diretivas limit_req definidas no nível atual.
O mesmo vale para limit_req
colocá-lo um nível acima no http
bloco para torná-lo herdado no server
bloco.