Entdecken Sie, wie Sie den Webserver Nginx verwenden können, um bestimmte DDoS-Angriffe durch eine sichere Konfiguration zu blockieren. Dieser Ansatz hilft Ihrem Server, sich gegen häufige DDoS-Angriffe zu schützen. Durch die Verbesserung der Nginx-Konfiguration können Sie Ihren Server vor verschiedenen Arten von Angriffen schützen.
OuiHeberg bietet einen kostenlosen Anti-DDoS-Schutz gegen bestimmte gezielte Angriffe. Durch die Nutzung unserer VPS- oder dedizierten Server profitieren Sie von einem Anti-DDoS-Schutz ohne zusätzliche Kosten. Dennoch können die Minderungskapazitäten, die verwendeten Methoden und die Filterung je nach dem von Ihnen gewählten Standort variieren.
Voraussetzungen
- Nginx: Stellen Sie sicher, dass Nginx auf Ihrem Server installiert ist.
- Grundkenntnisse: Sie sollten mit grundlegenden Linux-Befehlen vertraut sein und wissen, wie Sie auf die Nginx-Konfigurationsdateien zugreifen können.
- VPS oder dedizierter Server: Ein virtueller privater Server oder dedizierter Server oder eine virtuelle Maschine auf Ihrem lokalen Host.
- DDoS-Schutz: Ihr Hosting-Anbieter sollte eine Form von DDoS-Schutz bieten, um komplexere Angriffe abmildern zu können.
- Linux: Jede mit Nginx kompatible Distribution.
Einschränkungen
Dieser Leitfaden ist keine vollständige Lösung, um sich gegen alle DDoS-Angriffe zu verteidigen. Er wird wahrscheinlich dazu beitragen, einige häufige Angriffe abzumildern und Ihren Server betriebsbereit zu halten. Für einige komplexe DDoS-Angriffe ist es jedoch notwendig, dass Ihr Hosting-Anbieter einen angemessenen DDoS-Schutz bietet, um diese zu blockieren und zu verhindern. Diese Konfiguration kann nicht gegen alle Formen von Angriffen auf Ihren Server schützen; sie ist darauf ausgelegt, bestimmte Arten von Angriffen zu verhindern und zu blockieren, wird jedoch ohne den DDoS-Schutz Ihres Anbieters nicht effektiv sein.
Warnung
OuiHeberg rät davon ab, diese Konfiguration direkt auf Ihrem Produktionsserver anzuwenden, ohne sie vorher getestet zu haben. Wir übernehmen keine Verantwortung für eventuelle Probleme, die dadurch entstehen könnten. Stellen Sie sicher, dass Sie die bewährten Sicherheitspraktiken für Server befolgen und vor jeder Änderung Backups durchführen, falls eine Wiederherstellung erforderlich ist. Bitte konsultieren Sie die Nginx-Dokumentation zum Thema DDoS-Schutz, um das Funktionsprinzip zu verstehen.
Nginx verstärken, um DDoS-Angriffe zu verhindern
Um Nginx vor DDoS-Angriffen zu schützen und seine Widerstandsfähigkeit gegen häufige Angriffe zu erhöhen, ist es notwendig, verschiedene Minderung- und Präventionsstrategien zu implementieren. So konfigurieren Sie Nginx, um seine Sicherheit zu verbessern:
1. Nginx aktualisieren
Stellen Sie sicher, dass Sie die neueste stabile Version von Nginx verwenden, um von den neuesten Sicherheitsupdates und Verbesserungen zu profitieren.
2. Verbindungen begrenzen
Verwenden Sie das Modul limit_conn, um die Anzahl der Verbindungen von einer einzelnen IP-Adresse zu beschränken. Dies hilft, DDoS-Angriffe zu verhindern, die versuchen, Ihren Server mit einer großen Anzahl gleichzeitiger Verbindungen zu überlasten.
http {
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=1r/s;
server {
limit_req zone=req_limit_per_ip burst=5;
# Weitere Serverkonfigurationen...
}
}
3. Verwaltung von IP-Whitelist und -Blacklist
Verwenden Sie die Direktiven allow und deny, um vertrauenswürdige IP-Adressen zuzulassen und bösartige zu blockieren.
http {
# Vertrauenswürdige IP-Adressen zulassen
allow 192.168.1.0/24;
deny all;
# Weitere Serverkonfigurationen...
}
4. Installation einer Web Application Firewall (WAF)
Integrieren Sie Drittanbieter-Module wie ModSecurity mit Nginx, um bösartigen HTTP-Verkehr zu erkennen und zu blockieren.
5. HTTPS aktivieren
Verwenden Sie HTTPS, um die Kommunikation zwischen Clients und dem Server zu verschlüsseln, was das Abfangen von Daten und Man-in-the-Middle-Angriffe verhindert.
6. Nicht verwendete Module deaktivieren
Deaktivieren Sie Nginx-Module, die Sie nicht benötigen, um die Angriffsfläche zu reduzieren und die Leistung zu optimieren.
./configure --without-http_autoindex_module --without-http_ssi_module
7. Nginx-Konfiguration optimieren
Passen Sie die Nginx-Konfigurationseinstellungen wie Arbeitsprozesse, Arbeitsverbindungen und Zeitüberschreitungen an die Hardware-Ressourcen Ihres Servers und das erwartete Verkehrsaufkommen an.
8. Überwachung und Protokollierung
Überprüfen Sie regelmäßig die Serverprotokolle, um verdächtige Aktivitäten zu erkennen, und richten Sie Alarmsysteme ein, um Administratoren im Falle potenzieller Angriffe zu informieren.
9. Nutzung von DDoS-Schutzdiensten
Erwägen Sie den Einsatz von spezialisierten DDoS-Schutzdiensten oder -Appliances vor Nginx, wie Cloudflare, AWS Shield oder Akamai.
10. Regelmäßige Backups durchführen
Stellen Sie sicher, dass Sie regelmäßig wichtige Daten sichern, um die Auswirkungen im Falle erfolgreicher Angriffe zu minimieren.
Vergessen Sie nicht, dass Sicherheit ein kontinuierlicher Prozess ist. Es ist wichtig, über die neuesten Bedrohungen und bewährten Sicherheitspraktiken informiert zu bleiben, um Ihren Server effektiv vor potenziellen Angriffen zu schützen.
DDoS-Schutzkonfiguration für Nginx
Hier ist eine Konfiguration, die Sie Ihrer nginx.conf-Datei hinzufügen können, um die Sicherheit zu erhöhen:
# Eine Zone definieren, um die Verbindungen jeder IP zu verfolgen
http {
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
# Eine Zone definieren, um die Anfragen jeder IP zu verfolgen
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=10r/s;
server {
listen 80;
server_name beispiel.com;
# Anfragerate begrenzen
limit_req zone=req_limit_per_ip burst=20;
# Maximale Anzahl von Verbindungen einer einzelnen IP begrenzen
limit_conn conn_limit_per_ip 20;
# Anfragen mit großen Anfragekörpern ablehnen, um bestimmte Angriffsarten abzumildern
client_body_buffer_size 1k;
client_header_buffer_size 1k;
client_max_body_size 1k;
large_client_header_buffers 2 1k;
# Gzip-Komprimierung aktivieren, um Bandbreite zu sparen
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_proxied any;
gzip_vary on;
# Sicherheitsheader hinzufügen, um den Schutz zu verstärken
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
add_header X-Frame-Options "SAMEORIGIN";
add_header Referrer-Policy "same-origin";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# Häufige anfällige User-Agents blockieren
if ($http_user_agent ~* (wget|curl) ) {
return 403;
}
# Zugriff auf versteckte Dateien blockieren
location ~ /\. {
deny all;
}
# Zugriff auf bestimmte Dateitypen blockieren
location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|^#.*#$|\.php_ {
deny all;
return 403;
}
# Ihre IP für den Zugriff auf die Administration auf die Whitelist setzen
location /admin {
allow ihre_admin_ip;
deny all;
}
# Zugriff auf bestimmte Verzeichnisse verbieten
location ~ /(system|vendor) {
deny all;
return 403;
}
# Proxy, um Anfragen an Ihren Anwendungsserver weiterzuleiten
location / {
proxy_pass http://ihr_backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
Diese Konfiguration führt folgende Aktionen aus:
- Ratenbegrenzung: Beschränkt jede IP-Adresse auf 10 Anfragen pro Sekunde mit einer erlaubten Burst von 20 Anfragen.
- Verbindungsbegrenzung: Beschränkt jede IP-Adresse auf maximal 20 gleichzeitige Verbindungen.
- Begrenzung der Anfragengröße: Beschränkt die Größe der Anfragekörper, um Angriffe abzumildern, die große Datenmengen senden.
- Gzip-Komprimierung: Aktiviert die Gzip-Komprimierung, um Bandbreite zu sparen.
- Sicherheitsheader: Fügt Header hinzu, um die Sicherheit zu erhöhen.
- Blockierung anfälliger User-Agents: Blockiert Anfragen von User-Agents, die häufig für bösartige Aktivitäten verwendet werden.
- Blockierung versteckter Dateien: Verhindert den Zugriff auf versteckte Dateien und Verzeichnisse.
- Whitelist für Admin-Zugriff: Erlaubt nur Ihrer IP-Adresse den Zugriff auf den Administrationsbereich.
- Zugriffsverbot auf bestimmte Verzeichnisse: Verhindert den Zugriff auf sensible Verzeichnisse wie
systemundvendor. - Proxy Pass: Leitet Anfragen an Ihren Anwendungsserver weiter.
Stellen Sie sicher, dass Sie diese Konfiguration an Ihre spezifischen Bedürfnisse anpassen, insbesondere die Domainnamen, Backend-Serveradressen und IP-Adressen für die Administration. Überwachen Sie außerdem regelmäßig die Protokolle Ihres Servers und passen Sie die Konfigurationen entsprechend den sich entwickelnden Bedrohungen an.
Wie man diese Konfiguration in Nginx integriert
Hier sind die Schritte, um diese Konfiguration hinzuzufügen:
-
Lokalisieren Sie die
nginx.conf-Datei: Je nach Ihrer Installation kann sich dienginx.conf-Datei an verschiedenen Orten befinden, wie/etc/nginx/nginx.conf,/usr/local/nginx/conf/nginx.confoder/etc/nginx/sites-available/default. -
Öffnen Sie die
nginx.conf-Datei: Verwenden Sie einen Texteditor oder einen Befehlszeileneditor wienano,vimoderemacs, um die Datei zu öffnen. -
Fügen Sie die Konfiguration in den
http-Block ein: Innerhalb deshttp-Blocks, der die HTTP-Servereinstellungen definiert, fügen Sie die bereitgestellte Konfiguration ein. Dieser Block befindet sich normalerweise nahe dem Anfang dernginx.conf-Datei. -
Fügen Sie die bereitgestellte Konfiguration ein: Fügen Sie die gesamte vorherige Konfiguration innerhalb des
http-Blocks ein. Stellen Sie sicher, dass Sie Standardwerte wiebeispiel.com,ihre_admin_ipundihr_backend_serverdurch Ihre spezifischen Informationen ersetzen. -
Speichern und schließen Sie die Datei: Nachdem Sie die Konfiguration integriert haben, speichern Sie die Änderungen und schließen Sie den Editor.
-
Überprüfen Sie die Nginx-Konfiguration: Bevor Sie Nginx neu starten, wird empfohlen, die Konfiguration zu testen, um mögliche Syntaxfehler zu erkennen, indem Sie ausführen:
nginx -tWenn alles korrekt ist, wird eine Meldung angezeigt, die besagt, dass der Test der Konfigurationsdatei erfolgreich war.
-
Starten Sie Nginx neu: Um die Änderungen anzuwenden, starten Sie Nginx mit dem Befehl neu:
sudo service nginx restartWenn Sie
systemdnicht verwenden, müssen Sie möglicherweise einen anderen Befehl verwenden, um Nginx neu zu starten.
Indem Sie diese Schritte befolgen, integrieren Sie die vorgeschlagene Konfiguration in Ihren Nginx-Server und erhöhen so seine Sicherheit durch DDoS-Schutz und andere Sicherheitsmaßnahmen. Dieser Leitfaden hilft Ihnen, DDoS-Angriffe auf Nginx zu verhindern, indem Sie ihn korrekt konfigurieren.
OuiHeberg verpflichtet sich, Ihnen die besten Lösungen zur Sicherung Ihrer Online-Dienste zu bieten. Zögern Sie nicht, uns für weitere Fragen oder Unterstützung zu kontaktieren.

