Nginx DDoS Protection einrichten
Diese Anleitung zeigt, wie Sie schnell und einfach eine DDoS Protection auf Ihrem Nginx Server einrichten können.
Information vorab
Im Optimalfall filtert die Firewall den meisten Traffic schon raus, damit der Webserver/Reverse-Proxy nicht so geflutet wird. Für den Fall aber, dass die Firewall Anfragen-Flutungen nicht erkennt (da Layer 7 OSI Schicht), konfigurieren wir hier den Nginx für solche Fälle.
Konfigurationen¶
Im nachfolgenden die Konfigurationen zum Copy-Pasten:
nginx.conf¶
Erklärungen¶
Limits Logging¶
- Legt fest, wie Nginx Verstöße gegen Rate-Limits ins Error-Log schreibt
warn
bedeutet, dass Limit-Verstöße als Warnungen geloggt werden- Andere Optionen:
info
,notice
,error
Verbindungslimits¶
- Erstellt eine Zone
addr
mit 50 MB Speicher - Key:
$realip_remote_addr
(Client-IP) - Verwendet für
limit_conn addr 50;
im Server/Location-Block - Maximal erlaubte gleichzeitige Verbindungen pro IP
Allgemeine Requests¶
- Zone
req_general
für normale Webseiten-Anfragen - Key:
$realip_remote_addr
- Rate: 50 Requests pro Sekunde pro IP
- Burst kann separat im Server/Location-Block gesetzt werden
Strenge Login-Zone¶
- Zone
req_login
für Login-/Auth-Endpunkte - Sehr streng: 10 Requests pro Minute pro IP
- Schutz vor Brute-Force-Angriffen
API-Zone¶
- Zone
req_api
für API-Endpunkte - Rate: 50 Requests pro Minute pro IP
- Erlaubt mehr Requests als Login, schützt aber trotzdem
Statuscodes bei Limit-Überschreitung¶
- Standardmäßig sendet Nginx ggf.
503
oder444
bei Limits - Mit diesen Direktiven: HTTP 429
Too Many Requests
- Clients erkennen Limits sauber