NGINX Verzeichnisschutz

Auf vielfachen Wunsch habe ich in diesem Artikel zusammengefasst wie man den Nginx Verzeichnisschutz einrichtet. Gerade am Raspberry Pi macht  der Nginx Webserver sinn, da er schneller als der Apache Webserver läuft und weniger Ressourcen braucht. Vom Funktionsumfang ist er vergleichbar und vor allem für kommerzielle Projekte eine gute Alternative. Dieses Tutorial schließt an meinem Raspberry Pi Nginx Tutorial nahtlos an.

Nginx Verzeichnisschutz

NGINX Verzeichnisschutz

Mit einem Verzeichnisschutz könnt ihr Order die über das Internet erreichbar sind durch eine Benutzername/Passwort Abfrage absichern. Außerdem kann man damit ganze Webseiten hinter einem Login verstecken. Das ist sehr beliebt bei Entwicklungsumgebungen. Ein Verzeichnisschutz hindert nicht nur neugierige Kunden oder Angreifer vor dem Zugriff, auch schützt man damit die Seite Effektiv gegen die Indexierung durch Bots. Nichts ist ärgerlicher als die Abstrafung durch Google wegen Duplicate Content weil das 1:1 Entwicklungssystem auch indexiert wird.

Nginx Konfigurationsdatei

Der Nginx Verzeichnisschutz wird in der Konfigurationsdatei des Webservers eingerichtet. Die Konfugirationsdatei heißt nginx.conf und man findet sie üblicherweise an einem der folgenden Pfade: /etc/nginx, /usr/local/nginx/conf oder /usr/local/etc/nginx. Der tatsächliche Pfad hängt vom jeweiligen Betriebssystem beziehungsweise von dessen Distribution ab. Am Raspberry Pi wird das vermutlich /etc/nginx sein. Achtung für die Bearbeitung benötigen wir root Rechte!

In der nginx.conf sind die virtuellen Server definiert und die (falls vorhanden) Domains registriert. Ihr solltet dort für die Webseite folgendes vorfinden:

um nun ein bestimmtes Verzeichnis zu schützen muss lediglich ein neues location Element mit dem Pfad zum Ordner einfügen. Dieses wird dann mit auth_basic konfiguriert. Zum Beispiel so:

Mit dem auth_basic Element definieren wir einen Text der im Browser Dialog zur Benutzereingabe angezeigt wird. Ich habe einfach „Admin Login“ verwendet, ihr könnt gerne kreativer sein. Im besten Fall erklärt der Text wofür man sich anmeldet – zum Beispiel „geschützter Bereich“ oder so. In der zweiten Zeile wird per user_file ein Pfad zur .htpasswd Datei. In der .htpasswd ist sowohl Benutzername als auch Passwort hinterlegt.

Zusätzliche Sicherheit

Die Benutzername/Passwort Kombination kann man in jeder beliebigen Datei speichern. Eine .htpasswd Datei ist die erste Wahl wenn diese im Webverzeichnis am Server liegt. Verbesserte Sicherheit erreicht man damit, dass diese Datei außerhalb vom Webverzeichnis, also nicht unter /var/www liegt. Ideal ist das nur von root beschreibbare /etc Verzeichnis.

Änderungen umsetzen

Nachdem die Konfigurationsdatei erfolgreich gespeichert wurde kann man die Konfiguration im laufenden Betrieb neu einlesen. Das geht mit folgendem Befehl:

Sofern man einen Fehler gemacht hat wird am laufenden Betrieb nichts geändert. Auf der Kommandozeile wird jedoch eine Fehlermeldung ausgegeben. Erst nachdem die Konfiguration erfolgreich übernommen wurde ist sie sofort live über den Webserver abrufbar.

Fazit

Der Nginx Verzeichnisschutz ist recht einfach und schnell eingerichtet. Genau wie beim Verzeichnisschutz unter Apache wird das Benutzername/Passwort Paar in einer .htpasswd Datei abgespeichert. Man kann dort auch beliebig viele Benutzername und Passwörter hinterlegen. Der Verzeichnisschutz eignet sich perfekt für Entwicklungsumgebungen oder in Live Systemen um Passwort geschützte Bereiche wie ein Backend einzurichten.

Welche Erfahrung habt ihr mit Nginx gemacht? Wieso würdet ihr lieber Nginx statt Apache verwenden?

(Visited 234 times, 1 visits today)

Das könnte auch interessant sein...

2 Antworten

  1. Michael sagt:

    Du hättest noch schreibn können wir man die .htpasswd anlegen kann. Zum Beispiel so:
    htpasswd -c .htusers admin

Schreibe einen Kommentar

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