Wer über einen dyndns Dienst seinen Server im Internet verfügbar macht, sollte auf jeden Fall einige Sicherheitsmaßnahmen ergreifen. Dazu zählen u.a. Fail2Ban, welches die Logdatei des Servers analysiert und entsprechende Verbannungen erstellt, aber auch der simple Verzeichnis-Schutz. Nun bietet Lighttpd von sich aus nicht die Möglichkeit der bekannten htaccess Methode, jedoch lässt sich ein gleichwertiger Schutz in der Konfigurations-Datei des Servers einstellen.

sudo nano /etc/lighttpd/lighttpd.conf

Das Modul „mod_auth“ bei server.modules eintragen, wenn es dort noch nicht vermerkt ist.

server.modules = (
(...)
"mod_rewrite",
"mod_auth",
(...)
)

Am Ende wird nun der eigentliche Schutz eingebunden (einfach an den Schluss der lighttpd.conf stellen):

$HTTP["host"] =~ "" {
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/etc/lighttpd/passwd"
auth.require = (
"/phpmyadmin" => ("method" => "basic", "realm" => "Anmelden", "require" => "valid-user"),
"/admin.php" => ("method" => "basic", "realm" => "Anmelden", "require" => "valid-user"),
"/bilder" => ("method" => "basic", "realm" => "Anmelden", "require" => "valid-user")
)
}

Mit Strg+O speichern und Nano mit Str+X verlassen.

Jetzt wird es Zeit, sich ein Passwort generieren zu lassen, da in der Passwort-Datei eine verschlüsselte Form hinterlegt wird („passwort“ wird zu „Pej8Oc2NR65k6″… ich muss nicht erwähnen, dass sich dieses Passwort nicht eignet).

(edit) wer nicht auf eine -wie unten beschriebene- Webseite zum Erstellen seiner Passworte zurück greifen möchte, kann sich auch das ausgezeichnete Tool htpasswd verwenden und direkt zum Nachtrag springen 😉 )

Passworte generieren – Offline / Lokale Methode (empfohlen):

# 3 Pakete von Apache installieren (lediglich für htpasswd)
apache2-utils libapr1 libaprutil1

# 1. Neuen User anlegen (-c = create, damit wird eine vollkommen neue Datei erstellt)
sudo htpasswd -c /etc/lighttpd/passwd jerry

# Zweimal das Passwort eingeben, fertig.

Wer mehr User anlegen will oder ein Passwort von einem bestehenden User ändern möchte, lasst einfach hinter htpasswd das „-c“ weg.

Passworte generieren – Online Methode:
Besucht nun also einen s.g. htaccess-Generator (z.B. hier http://htaccess-generator.yourmy.org/htaccess.cgi ) und tragt in die beiden Felder „Userliste“ und „Passwörter“ die gewünschten Daten ein. Die restlichen Felder könnt ihr ignorieren, da uns nur die Ausgabe im Feld „.htpasswd“ interessiert (der Rest hat bei Lighttpd keine Funktion). Nach einem Klick auf „weiter“ erhaltet ihr die benötigten Zeilen.

Nun öffnen wir die Passwort-Datei, in welche wir den oder die User eintragen:

sudo nano /etc/lighttpd/passwd

und kopiert diese dort hinein.

Zu guter Letzt starten wir den Server mit der geänderten Konfiguration neu:

sudo /etc/init.d/lighttpd reload

Quelle: http://rootserverblog.com/2011/06/lighttpd-verzeichnisschutz-anlegen/

Nachtrag:
wer nicht jedem gültigen Benutzer die vollen Zugriffsrechte einräumen möchte, kann dies in der „lighttpd.conf“ laut dieser Quelle sehr gut regulieren.
Ich werde es Anhand eines Beispiels mit 4 Ordnern erläutern:

beispiel_ordnerstruktur

$HTTP["host"] =~ "" {
  auth.backend = "htpasswd"
  auth.backend.htpasswd.userfile = "/etc/lighttpd/passwd"
  auth.require = (
      "/Verzeichnis1" => ("method" => "basic", "realm" => "Anmelden", "require" => "valid-user"),
      "/Verzeichnis1/Unterverzeichnis1" => ("method" => "basic", "realm" => "Anmelden", "require" => "user=1NAME"),
      "/Verzeichnis1/Unterverzeichnis2" => ("method" => "basic", "realm" => "Anmelden", "require" => "user=1NAME|user=2NAME"),
      "/Verzeichnis2" => ("method" => "basic", "realm" => "Anmelden", "require" => "user=2NAME")
  )
}

Wie ihr seht, hat jeder Benutzer aus der Liste (/etc/lighttpd/passwd) Zugriff auf das Verzeichnis1.

Auf das Unterverzeichnis1 kann nur der User „1NAME“ zugreifen, auf das Unterverzeichnis2 die beiden User „1NAME“ und „2NAME„. Dies ist mittels Pipe beliebig erweiterbar.
Das Verzeichnis2 wurde hingegen von vornherein nur dem User „2NAME“ freigegeben.

Ein Fehler wäre es nun zu versuchen, in diesem Verzeichnis2 einen Unterordner anzulegen und diesen dann mittels „valid-user“ wieder allen Benutzern frei zu geben, da natürlich immer die Einschränkungen des übergeordneten Verzeichnisses gelten.

Wer nun verschiedene Passwort-Dateien benutzen möchte, kann sich auch noch folgende Quelle durchlesen.