Site icon bintorosoft.com

Basic Auth in Nginx: Adminbereiche schnell absichern

Basic Auth ist eine einfache Methode, um sensible Bereiche von Webseiten oder Admin-Panels abzusichern. Dabei wird ein Benutzername und Passwort abgefragt, bevor der Zugriff auf bestimmte Bereiche erlaubt wird. In diesem Leitfaden lernen Einsteiger, IT-Studierende und Junior Network Engineers praxisnah, wie Nginx Basic Auth implementiert und sicher konfiguriert wird.

Voraussetzungen

htpasswd installieren

Das Tool htpasswd wird für die Erstellung von Benutzerdateien benötigt.

# Ubuntu/Debian
sudo apt update
sudo apt install apache2-utils

# CentOS/RHEL
sudo yum install httpd-tools

Benutzer anlegen

Eine Passwortdatei wird erstellt, in der Benutzer und verschlüsselte Passwörter gespeichert werden.

# Neue Datei erstellen mit erstem Benutzer
sudo htpasswd -c /etc/nginx/.htpasswd admin

# Weitere Benutzer hinzufügen
sudo htpasswd /etc/nginx/.htpasswd user1

Nginx konfigurieren

In der Server- oder Location-Konfiguration werden Authentifizierung und Passwortdatei definiert.

server {
    listen 80;
    server_name example.com;

    location /admin/ {
        auth_basic "Admin Bereich";
        auth_basic_user_file /etc/nginx/.htpasswd;

        proxy_pass http://backend;
    }
}

SSL/TLS absichern

Um Passwörter nicht unverschlüsselt zu übertragen, sollte der Adminbereich über HTTPS erreichbar sein.

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/ssl/certs/example.crt;
    ssl_certificate_key /etc/ssl/private/example.key;

    location /admin/ {
        auth_basic "Admin Bereich";
        auth_basic_user_file /etc/nginx/.htpasswd;

        proxy_pass http://backend;
    }
}

Test der Basic Auth

Nach Neustart von Nginx wird beim Aufruf von /admin/ eine Login-Abfrage angezeigt.

sudo nginx -t
sudo systemctl restart nginx

# Test im Browser: https://example.com/admin/

Netzwerk- und Subnetzplanung

Bei internen Adminbereichen empfiehlt sich eine zusätzliche IP-Filterung.

IPv4 Subnetz

<math>
Admin-IP = 192.168.370.10/24
Subnetzadresse = 192.168.370.10 & 255.255.255.0 = 192.168.370.0
Broadcastadresse = 192.168.370.0 | ~255.255.255.0 = 192.168.370.255
</math>

IPv6 Subnetz

<math>
Admin-IP = 2001:db8:abcd:370::10/64
Subnetzadresse = 2001:db8:abcd:370:: & ffff:ffff:ffff:ffff:: = 2001:db8:abcd:370::0
Broadcastadresse = 2001:db8:abcd:370:ffff:ffff:ffff:ffff
</math>

Best Practices

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version