Schützen Sie Ihren Server: Nginx Reverse Proxy mit Fail2Ban gegen Layer 7 DDoS-Angriffe

LouCipher

Linux Lover
Teammitglied
Admin
31 Jan 2024
245
89
28
Anleitung: Installation eines Nginx Reverse Proxy zur Absicherung gegen Layer 7 DDoS-Angriffe

Nginx ist ein leistungsstarker Webserver und Reverse Proxy, der effektiv dabei helfen kann, Ihre Backend-Server vor Layer 7 (HTTP/S) DDoS-Angriffen zu schützen. In dieser Anleitung zeigen wir Ihnen, wie Sie Nginx installieren und grundlegende Sicherheitsmaßnahmen konfigurieren können.

Schritt 1: Installation von Nginx
Zuerst müssen Sie Nginx auf Ihrem Server installieren. Die genauen Befehle hängen von Ihrer Linux-Distribution ab. Für Ubuntu/Debian-basierte Systeme verwenden Sie:

Code:
sudo apt update
sudo apt install nginx

Für CentOS/RHEL-basierte Systeme:

Code:
sudo yum install epel-release
sudo yum install nginx

Nach der Installation starten Sie Nginx und stellen sicher, dass er beim Booten gestartet wird:

Code:
sudo systemctl start nginx
sudo systemctl enable nginx

Schritt 2: Konfigurieren von Nginx als Reverse Proxy
Öffnen Sie die Konfigurationsdatei für Ihre Website. Dies könnte z.B. unter `/etc/nginx/sites-available/ihre-domain.de` liegen. Passen Sie die Konfiguration an, um Nginx als Reverse Proxy zu nutzen:

Code:
server {
    listen 80;
    server_name ihre-domain.de www.ihre-domain.de;

    location / {
        proxy_pass http://IHR_BACKEND_SERVER_IP;
        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;
    }
}

Ersetzen Sie `IHR_BACKEND_SERVER_IP` mit der IP-Adresse Ihres Backend-Servers.

Schritt 3: Absicherung gegen DDoS-Angriffe
Um Nginx gegen DDoS-Angriffe zu härten, können Sie folgende Einstellungen in Ihrer `nginx.conf` (typischerweise unter `/etc/nginx/nginx.conf`) oder in der Server-Block-Konfiguration hinzufügen:

Code:
http {
    # Begrenzt die Anzahl der Verbindungen pro IP
    limit_conn_zone $binary_remote_addr zone=addr:10m;

    # Begrenzt die Anzahl der Anfragen pro IP
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

    server {
        ...

        location / {
            limit_conn addr 5;
            limit_req zone=one burst=10 nodelay;
            ...
        }
    }
}

Diese Einstellungen begrenzen die Anzahl der Verbindungen und Anfragen, die ein Benutzer innerhalb eines bestimmten Zeitraums machen kann, was helfen kann, einige DDoS-Angriffsmuster abzumildern.

Schritt 4: Überprüfen der Konfiguration und Neustart von Nginx
Überprüfen Sie Ihre Nginx-Konfiguration auf Fehler mit:

Code:
sudo nginx -t

Wenn alles in Ordnung ist, wenden Sie die Änderungen an, indem Sie Nginx neu starten:

Code:
sudo systemctl restart nginx

Erweiterung: Angreifer-IP-Adressen mit Fail2Ban bannen

Fail2Ban ist ein Intrusion Prevention Software Framework, das hilft, Ihre Server vor Brute-Force-Angriffen zu schützen. Es funktioniert, indem es Logdateien für ungewöhnliche Zugriffsversuche überwacht und IP-Adressen, die verdächtige Muster aufweisen, automatisch sperrt.

Schritt 5: Installation von Fail2Ban
Zuerst müssen Sie Fail2Ban installieren. Für Ubuntu/Debian-basierte Systeme verwenden Sie:

Code:
sudo apt update
sudo apt install fail2ban

Für CentOS/RHEL-basierte Systeme:

Code:
sudo yum install fail2ban

Schritt 6: Konfigurieren von Fail2Ban für Nginx
Fail2Ban wird mit einer Reihe von Standardkonfigurationsdateien geliefert, aber es wird empfohlen, eigene Konfigurationsdateien anzulegen, um Updates zu erleichtern. Erstellen Sie eine lokale Konfigurationsdatei für Nginx:

Code:
sudo cp /etc/fail2ban/jail.{conf,local}
sudo nano /etc/fail2ban/jail.local

Fügen Sie am Ende der Datei folgende Abschnitte hinzu, um Nginx vor DDoS-Angriffen zu schützen:

Code:
[nginx-http-auth]
enabled = true
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 2

[nginx-botsearch]
enabled = true
port    = http,https
filter  = nginx-botsearch
logpath = /var/log/nginx/access.log
maxretry = 2

[nginx-noscript]
enabled = true
port    = http,https
filter  = nginx-noscript
logpath = /var/log/nginx/access.log
maxretry = 6

Schritt 7: Erstellen von Fail2Ban Filterregeln
Fail2Ban benötigt spezifische Filterregeln, um Angriffsmuster zu erkennen. Stellen Sie sicher, dass die Referenzen zu `nginx-http-auth`, `nginx-botsearch` und `nginx-noscript` auf gültige Filter in `/etc/fail2ban/filter.d/` verweisen oder erstellen Sie bei Bedarf eigene.

Beispiel für eine einfache Filterregel (`/etc/fail2ban/filter.d/nginx-noscript.conf`):

Code:
[Definition]
failregex = ^<HOST> -.*GET.*(\.php|\.asp|\.exe|\.pl|\.cgi|\.scgi)
ignoreregex =

Schritt 8: Fail2Ban-Dienst neu starten
Nachdem Sie die Konfiguration abgeschlossen haben, müssen Sie Fail2Ban neu starten, um die Änderungen zu übernehmen:

Code:
sudo systemctl restart fail2ban

Schritt 9: Überprüfen der Fail2Ban-Regeln
Überprüfen Sie die Aktivität von Fail2Ban und stellen Sie sicher, dass die Regeln wie erwartet funktionieren:

Code:
sudo fail2ban-client status
sudo fail2ban-client status nginx-noscript

Erläuterung:
Mit der Installation von Fail2Ban und der Konfiguration spezifischer Regeln für Nginx haben Sie eine zusätzliche Schutzebene gegen unerwünschte Zugriffe und potenzielle DDoS-Angriffe auf Ihren Server hinzugefügt. Es ist wichtig, die Fail2Ban-Konfiguration regelmäßig zu überprüfen und anzupassen, um den Schutz zu optimieren und auf neue Bedrohungen zu reagieren.

Fazit
Glückwunsch! Sie haben nun einen Nginx Reverse Proxy eingerichtet, der helfen kann, Ihre Webanwendungen vor Layer 7 DDoS-Angriffen zu schützen. Denken Sie daran, regelmäßig Ihre Sicherheitskonfigurationen zu überprüfen und anzupassen, um mit den sich entwickelnden Bedrohungen Schritt zu halten.
 

Über TV-Base.com

  • Willkommen bei TV-Base.com, dem Zentrum für Cardsharing und IPTV-Enthusiasten. Hier verbindet Leidenschaft für digitales Fernsehen Mitglieder aus aller Welt. Unser Forum bietet eine Plattform für Austausch, Wissen und Innovation. Egal ob Anfänger oder Experte, hier findet jeder Unterstützung und Inspiration. Treten Sie unserer Gemeinschaft bei und erkunden Sie die Zukunft des Fernsehens mit uns.

Quick Navigation

User Menu