logo

Meine Android Top 10 »
« Downtime wegen Hardwareschaden

DNS-313: Lighttpd - Verzeichnis mit Passwort schützen

Abgelegt unter DNS-313, Linux und NAS am Mittwoch, den 29. Dez. 2010

Wenn man einen Apache-Webserver betreibt, kann man ja per htaccess einen bestimmten Ordner mit Benutzername und Passwort schützen. Allerdings läuft auf meinem NAS ja lighttpd, und der kennt htaccess nicht. Trotzdem wollte ich dort auch ein Verzeichnis absichern und habe dann auch schnell herausgefunden, das man in der /ffp/etc/lighttpd.conf die folgenden Zeilen eintragen bzw. auskommentieren muss.

#### auth module

auth.debug = 2
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/mnt/HD_a2/www/lighttpd.htpasswd"

auth.require = ( "/download" =>
   (
      # method must be either basic or digest
      "method" => "basic",
      "realm" => "download archiv",
      "require" => "valid-user"
   )
)

Natürlich sollte man bei userfile dem eigenen Pfad anpassen und kann/sollte später, wenn alles läuft den Wert für debug auf 0 setzen.

Allerdings habe ich am Anfang die Methode "plain" benutzt, da ich erstens die Benutzernamen schnell via ssh ändern kann und zweitens, da ich die Programme htpasswd und htdigest auf dem DNS-313 nicht zur Verfügung habe. Doch dummerweise wurde mir die entsprechende Textdatei bei dem Zugriff auf das geschützte Verzeichnis mit irgendwelchen kryptischen Zeichen überschrieben. Es scheint fast so, als ob die Plain-Text-Methode fehlerhaft oder einfach nicht mit einkompiliert wurde. Dann habe ich alles auf htdigest umgestellt, doch auch damit hatte ich das selbe Problem.

Als letzte Möglichkeit habe ich dann alles (wie oben im Code zu sehen) auf htpasswd umgestellt und erst das führte zu dem gewünschten Erfolg. Das hat allerdings den "Nachteil", dass die Zugangsdaten mit dem Programm htpasswd erstellt werden müssen und wie Eingangs erwähnt, ist dieses auf dem NAS nicht vorhanden. Das ist aber kein Problem, denn bei einem Linux mit installiertem Apache sowie für Windows (z.B. im XAMPP-Paket) ist es mit dabei.

Ich habe die Windows-Version benutzt und mit dem folgendem Aufruf mir ein paar Test-Zugangsdaten erstellt:

htpasswd.exe -n -b peter 112211

Die Ausgabe war dann diese:

peter:$apr1$2.myUCaw$U50ET7Wk7hhNQhJuwsfQC0

Und genau diese Zeile (plus weitere für mehrere Benutzer) kommt dann die die Datei, die in der lighttpd.conf bei der Zeile auth.backend.htpasswd.userfile angegeben ist.

Jetzt fehlt eigentlich nur noch eins. Mit /ffp/start/lighttpd restart strten wir den Server neu. Jetzt sollte bei dem Aufruf des Ordners im Browser ein Dialog kommen, bei dem man sich anmelden kann und nach erfolgreicher Anmeldung dann auch das Verzeichnislisting (oder was auch immer in dem Ordner ist).

Ähnliche Artikel

20.02.2011 - DNS-313: Twonky Media Server installieren
08.10.2010 - dyndns update script
26.02.2009 - LCS-8311 - SSH-Server einrichten
13.11.2008 - LCS-8311 - SVN-Server einrichten
24.02.2011 - DNS-313: Leistungsaufnahme und Kosten

Einen neuen Kommentar hinterlassen