Anleitung: Optimierung der nginx.conf für das XUI One IPTV Panel gegen Layer 7 DDoS-Angriffe und Bannen von Angreifer-IP-Adressen mit Fail2Ban

LouCipher

Linux Lover
Teammitglied
Admin
31 Jan 2024
248
89
28
Optimierung der nginx.conf für das XUI One IPTV Panel gegen Layer 7 DDoS-Angriffe und Bannen von Angreifer-IP-Adressen mit Fail2Ban

1. Optimierung der nginx.conf

Fügen Sie die folgenden Optimierungen in Ihre nginx.conf-Datei ein, um sich vor Layer 7 DDoS-Angriffen zu schützen:

NGINX:
# Nginx-Konfiguration für das XUI One Webpanel mit Schutz gegen Layer 7-Angriffe

# Benötigte Module aktivieren
load_module modules/ngx_http_geoip_module.so;

# Benutzerdefinierte Log-Formate definieren
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for"';
log_format timed_combined '$time_iso8601 $remote_addr $request_time "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent"';

# Globale Einstellungen
worker_processes  auto;
worker_rlimit_nofile 100000;

events {
    worker_connections  1024;
    multi_accept on;
    use epoll;
}

http {
    # Standard-Log-Dateien
    access_log /var/log/nginx/access.log main;
    error_log /var/log/nginx/error.log;

    # MIME-Typen
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    # Globale Sicherheitseinstellungen
    server_tokens off;
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";

    # Timeout-Einstellungen
    client_body_timeout 10s;
    client_header_timeout 10s;
    keepalive_timeout 10s;
    send_timeout 10s;

    # TCP-Optionen
    tcp_nopush on;
    tcp_nodelay on;

    # Gzip-Komprimierung
    gzip on;
    gzip_comp_level 5;
    gzip_min_length 256;
    gzip_proxied any;
    gzip_vary on;
    gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    # Schutz gegen Layer 7-Angriffe
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

    # GeoIP-Konfiguration
    geoip_country /usr/share/GeoIP/GeoIP.dat;
    geoip_city /usr/share/GeoIP/GeoLiteCity.dat;
    map $geoip_country_code $allowed_country {
        default no;
        US yes;
        # Weitere Länder können nach Bedarf hinzugefügt werden
    }

    # Server-Konfiguration
    server {
        listen 80;
        server_name your_domain.com;

        # Sicherheitseinstellungen
        if ($allowed_country = no) {
            return 403;
        }

        # Schutz gegen zu viele Requests
        location / {
            limit_req zone=one burst=5 nodelay;
            proxy_pass http://localhost:8080;
            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;
        }

        # Statische Ressourcen
        location ~* \.(jpg|jpeg|gif|css|png|js|woff|woff2|eot|ttf|svg)$ {
            expires 1M;
            access_log off;
            add_header Cache-Control "public";
        }
    }
}

2. Konfiguration von Fail2Ban

2.1 Installieren Sie Fail2Ban, falls noch nicht installiert:
Code:
sudo apt-get update
sudo apt-get install fail2ban

2.2 Erstellen Sie eine Filterdatei für Nginx:

Erstellen Sie eine neue Datei mit dem Namen `nginx-xui.conf` im Verzeichnis `/etc/fail2ban/filter.d/` und fügen Sie den folgenden Inhalt ein:

Code:
# /etc/fail2ban/filter.d/nginx-xui.conf

[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(\.php|\.asp|\.exe|\.pl).*HTTP.*" 404.*$
ignoreregex =

2.3 Konfigurieren Sie Fail2Ban:

Erstellen Sie eine neue Datei mit dem Namen `xui-one-nginx.local` im Verzeichnis `/etc/fail2ban/jail.d/` und fügen Sie den folgenden Inhalt ein:

Code:
# /etc/fail2ban/jail.d/xui-one-nginx.local

[xui-one-nginx]
enabled = true
port = http,https
filter = nginx-xui
logpath = /var/log/nginx/access.log
maxretry = 5
findtime = 600
bantime = 3600

2.4 Starten Sie Fail2Ban neu:

Code:
sudo service fail2ban restart

3. Überprüfung

Überwachen Sie die Logdateien von Nginx und Fail2Ban, um sicherzustellen, dass die Konfiguration korrekt funktioniert und potenzielle Angreifer blockiert werden.

Hinweis: Stellen Sie sicher, dass Sie die Konfigurationen an Ihre spezifischen Anforderungen anpassen und regelmäßig überwachen, um potenzielle Angriffe zu erkennen und darauf zu reagieren.
 

Ü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