Ddos-Schutz-Syntax – Nginx

Ddos-Schutz-Syntax – Nginx

Ich verwende diese Syntax für meine Nginx-Konfigurationsdatei /etc/nginx/nginx.conf, die lautet:

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/*;

}

Die Serverblöcke meiner Websites sind in Folgendem enthalten:include /etc/nginx/sites-enabled/*;

Wird der wie oben dargestellt definierte Server die Blöcke in mir httpersetzen, damit der DDOS-Schutz wie erwartet funktioniert?server{}sites-enabled/*

Antwort1

Tatsächlich gibt es einen wichtigen Unterschied zwischenDOSUndDDOSAngriffe. Das zusätzliche D in DDOS steht für verteilt.

Für einfacheDOSAngriffe, für die Ihr Setup verwendet werden kann. Allerdings hängt es wirklich von Ihrer Anwendung oder Website ab, wo der Unterschied zwischen einem zulässigen oder erwarteten Anwendungsfall und einem nicht zulässigen oder nicht erwarteten Anwendungsfall liegen kann. Es gibt kein allgemeines Rezept.

MildernDDOSgreift Ihr Setup anwird nicht helfen. Solche Angriffe werden von vielen verschiedenen IP-Adressen aus gestartet. Normalerweise müssen DDOS-Angriffe auf Netzwerkebene und mit einer sehr hohen Bandbreite abgewehrt werden.

Antwort2

Ich vermute, Sie sprechen vonngx_http_limit_conn_moduleUndngx_http_limit_req_module.

Syntax: limit_conn-Zonennummer;
Standard: —
Kontext: http, Server, Standort.
Diese Anweisungen werden genau dann von der vorherigen Konfigurationsebene übernommen, wenn auf der aktuellen Ebene keine limit_conn-Anweisungen definiert sind.

Sie müssen es also limit_conneine Ebene höher im httpBlock platzieren, damit es in die serverBlöcke übernommen wird.

Syntax: limit_req zone=Name [burst=Nummer] [Knotenlay | Verzögerung=Nummer];
Standard: —
Kontext: http, Server, Standort.
Diese Anweisungen werden von der vorherigen Konfigurationsebene übernommen, wenn und nur wenn auf der aktuellen Ebene keine limit_req-Anweisungen definiert sind.

Dasselbe gilt für die limit_reqPlatzierung eine Ebene höher im httpBlock, damit es in den serverBlock übernommen wird.

verwandte Informationen