[nginx] Verzeichnisse vor unberechtigten Zugriff schützen

Auf Webseiten gibt es Bereiche wo erst nach einer authentifizierung darauf zugegriffen werden darf. Diese Absicherung erfolgt durch Eingabe eines Benutzernamens und Kennworts oder es wird die Ip Adresse geprüft von der aus der Besucher auf die Seite zugreift.
Wenn die aufgerufene Webapplikation diese Funktionalität nicht bietet, kann dies über nginx umgesetzt werden.

Authentifizierung über Benutzername / Kennwort

Zunächst wird htpasswd benötigt, dieses wird über yum install httpd-tools installiert. Nach erfolgreicher Installation wird über htpasswd -c /etc/nginx/htpasswd-seite1 user1 und Eingabe des Kennworts die benötigte Datei und der erste Benutzer angelegt.
Nun werden in der Datei /etc/nginx/conf.d/seite1.conf die folgenden Zeilen hinzugefügt, damit die Unterseite www.seite1.de/benutzer vor unberechtigten Zugriff geschützt wird.
location /benutzer {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd-seite1;
}

Im Anschluss den nginx neustarten: systemctl restart nginx.service

Zugriff über die IP Adresse beschränken

Es gibt Unternehmen in denen Abteilungen eigene IP Adressbereiche erhalten und somit ist es möglich das ausgelieferte Seiten nur aufrufbar sind, wenn der Host eine bestimmte IP Adresse hat.
Der Serverblock seite1.conf wird nun wie folgt angepasst, damit nur Hosts aus einem IP Adressbereich auf die Unterseite www.seite1.de/benutzer zugreifen können.

location /benutzer {
allow 172.23.23.0/24;
deny all;
}

Entweder IP Adresse oder Benutzerauthentifizierung

Nun ist es möglich das wenn die Freigabe der Unterseite nicht Aufgrund der IP Adresse erfolgt, automatisch die Benutzerauthentifizierung greift. Hierfür wird folgende Konfiguration benötigt:

satisfy any;
allow 192.168.1.0/24;
deny all;

auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd-seite1;

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert