Zugriffsbeschränkung auf Ihre Website mit Nginx

IP-Filterung, Passwortschutz und Anfrage-Blockierung – alles an einem Ort.

Die Kontrolle darüber, wer auf welche Ressourcen Ihres Servers zugreifen darf, ist ein grundlegender Bestandteil des Betriebs einer sicheren Webanwendung. Nginx bietet dafür ein solides Werkzeugset: einfache IP-basierte Regeln, HTTP Basic Auth, kombinierte Zugriffsrichtlinien und mehr.

Pro-Tipp

Auf VPS und dedizierten Servern haben Sie die volle Kontrolle über Ihre Nginx-Konfiguration und können jede der unten beschriebenen Methoden anwenden.

1. Zugriff auf sensible Verzeichnisse sperren

Um den direkten Zugriff auf Verzeichnisse wie .svn zu unterbinden, die öffentlich nichts zu suchen haben:

location ~ /.svn/ {
    deny all;
}

2. IP-basierte Zugriffskontrolle

Verwenden Sie allow und deny, um eine Whitelist für bestimmte Bereiche Ihrer Website zu erstellen:

location /server-status {
    allow 111.111.111.111;
    allow 11.11.11.11;
    deny all;
}

Nur die aufgeführten IPs erhalten Zugang — alle anderen werden abgewiesen.

3. Passwortschutz (HTTP Basic Auth)

Möchten Sie einen privaten Bereich hinter einer Anmeldemaske schützen? So geht es am einfachsten:

location /admin/ {
    auth_basic "Enter password to access";
    auth_basic_user_file /etc/nginx/basic.auth;
}

4. Kombinierter Schutz: IP-Whitelist + Passwort

Die Direktive satisfy any lässt einen Besucher durch, sobald er eine der Prüfungen besteht — vertrauenswürdige IP oder gültige Zugangsdaten. Praktisch, wenn Ihr Team ohne Passwort Zugang erhalten soll, Sie den Zugang aber auch anderen ermöglichen möchten, die das Passwort kennen:

location /admin/ {
    satisfy any;
    allow 111.111.111.111;
    allow 11.11.11.11;
    deny all;

    auth_basic "Enter password to access";
    auth_basic_user_file /etc/nginx/basic.auth;
}

Unsere Produkte und Dienste

WebhostingLäuft auf ultraschnellen NVMe-Laufwerken. Geeignet für Websites jeder Komplexität.
Bestellen
VPSFlexible Cloud-Infrastruktur mit vollem Root-Zugriff.
Bestellen
Dedizierte ServerBare-Metal-Server für maximale Leistung.
Bestellen

5. 404 für fehlende statische Dateien zurückgeben

Verhindern Sie, dass Nginx Informationen über Ihre Serverstruktur preisgibt, indem es für nicht vorhandene statische Dateien einen sauberen 404-Fehler zurückgibt:

location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    try_files $uri =404;
}

6. Weiterleitung anhand der IP

Sie können Besucher abhängig von ihrer IP-Adresse gezielt weiterleiten:

location / {
    if ($remote_addr != 111.111.111.111) {
        return 301 https://$host$request_uri;
    }
}

Alle Anfragen außer denen von 111.111.111.111 werden zu https://$host$request_uri weitergeleitet.

7. Brute-Force-Schutz mit iptables

Für eine zusätzliche Schutzebene auf Netzwerkebene können Sie iptables verwenden, um IPs vorübergehend zu sperren, die Ihren Server mit zu vielen Anfragen überfluten:

iptables -A INPUT -p tcp --syn --dport 80 -i eth0 -m state --state NEW \
    -m recent --name bhttp --set
iptables -A INPUT -p tcp --syn --dport 80 -i eth0 -m state --state NEW \
    -m recent --name bhttp --update --seconds 120 \
    --hitcount 360 -j DROP
iptables -A INPUT -p tcp --syn --dport 80 -i eth0 -j ACCEPT

Diese Regel sperrt jede IP, die innerhalb von 120 Sekunden mehr als 360 neue Verbindungen aufbaut.

Änderungen übernehmen

Nach dem Bearbeiten der Nginx-Konfiguration laden Sie den Dienst neu, um Ihre Änderungen ohne Unterbrechung aktiver Verbindungen zu übernehmen:

systemctl reload nginx
# oder
service nginx reload

Hilfe

Bei Fragen oder wenn Sie Unterstützung brauchen, erreichen Sie uns jederzeit über das Ticketsystem — wir helfen Ihnen gern weiter!

Hilfe benötigt?Unsere Ingenieure helfen Ihnen kostenlos bei jeder Frage in wenigen MinutenKontaktieren Sie uns