![NGINX no responde durante ataques DDoS](https://rvso.com/image/668051/NGINX%20no%20responde%20durante%20ataques%20DDoS.png)
Voy a ir directo al grano: NGINX no parece manejar ninguna solicitud HTTP durante un ataque DDoS utilizando XML-RPC.
El servidor sólo utiliza aproximadamente el 1% de la CPU durante un ataque DDoS XML-RPC.
El servidor utiliza 12 núcleos y NGINX está configurado para utilizar 12 procesos de trabajo.
Aquí están mis configuraciones actuales.
nginx.conf:
user nginx;
worker_processes 12;
error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;
pid /var/run/nginx.pid;
events {
worker_connections 12288;
}
http {
server_names_hash_bucket_size 64;
include /etc/nginx/mime.types;
default_type application/octet-stream;
limit_conn_zone $binary_remote_addr zone=one:10m;
limit_req_zone $binary_remote_addr zone=two:10m rate=5r/s;
sendfile on;
#tcp_nopush on;
keepalive_timeout 30;
server_tokens off;
include /etc/nginx/conf.d/*;
}
predeterminado.conf:
server {
listen 80 default_server;
server_name _;
include /etc/nginx/default.d/*.conf;
limit_conn one 10;
limit_req zone=two burst=10 nodelay;
if ($http_user_agent ~* (wordpress))
{
return 444;
}
if ($http_user_agent = "")
{
return 444;
}
client_body_buffer_size 1K;
client_header_buffer_size 1k;
client_max_body_size 1k;
large_client_header_buffers 2 1k;
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 5 5;
send_timeout 10;
access_log off;
location / {
root /var/www/html;
index index.php index.html index.htm;
}
error_page 404 /404.html;
location = /404.html {
root /var/www/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
location ~ \.php$ {
root /var/www/html;
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location /status/ {
stub_status on;
}
}
sysctl.conf:
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
No busco bloquear los ataques hasta el punto de que NGINX ni siquiera reciba las solicitudes, solo busco mantener mi NGINX activo durante los ataques para monitorear las solicitudes por segundo.
Muchas gracias.
Respuesta1
El objetivo de un ataque DDos es agotar por completo todos los recursos. No existe una configuración mágica que alguien pueda decir que establezca esta opción y nginx responderá. Tienes que bloquear el tráfico entrante.
Luego, si bloquea el tráfico entrante en el servidor web, lo que podría suceder es que su flujo descendente se sature hasta el punto de que las solicitudes reales no puedan llegar. Entonces necesitarías trabajar con tu enlace ascendente para lograr que se bloqueen.