Zugriffsschutz für Webseiten einrichten

Aus

DSM 5

.htaccess scheint mit DSM 5 nicht mehr zu funktionieren siehe .htaccess not working

Eine Lösung im Thread Apache / Webserver limitations in 5.0.

Im neuesten DSM-Update scheint das Hauptproblem (fehlende Moduleinträge in der Konfiguration des Apachen) behoben zu sein (Quelle).

Vorwort

Dieser Artikel beschreibt die Einrichtung eines Zugriffsschutzes durch Passwortabfrage für beliebige Verzeichnisse der Web Station. Der Zugriffsschutz wird mittels .htaccess-Dateien realisiert. Die Web Station muss vorher aktiviert werden. Der hier vorgestellte Ansatz schöpft die Möglichkeiten von .htaccess bei weitem nicht aus, neben dem Zugriffsschutz durch Passwortabfrage wäre bspw. auch der Zugriffsschutz durch Beschränkung des Zugriffs auf bestimmte Rechner anhand deren IP-Adresse möglich.

Einleitung

Für den Schutz eines Verzeichnisses werden zwei Dateien benötigt:

  • Eine .htaccess-Datei die als Steuerungsdatei für den Zugriffsschutz fungiert.
  • Eine Datei die Benutzernamen und Passwörter der User mit Zugriff enthalten.

.htaccess-Dateien schützen neben dem Verzeichnis in dem sie sich befinden alle Unterordner. Die Passwörter in der Datei mit den Zugangsdaten der User müssen generiert werden. Eine einfache Möglichkeit dazu bieten .htaccess-Generatoren verschiedener Anbieter.

Im folgenden Szenario wird davon ausgegangen, dass alle Webseiten auf der Synology Station geschützt werden sollen. Das Verzeichnis in dem die Datei mit den Zugangsdaten der User abgelegt wird bekommt mit einer zusätzlichen .htaccess und Passwortdatei einen zusätzlichen Schutz indem der Zugriff auf Administratoren limitieren wird.

Vorgehensweise

  • Ordner passwd im Ordner \web anlegen. Dieser wird die Passwortdateien sowohl für den Admin-Zugriff, als auch für den User-Zugriff enthalten
  • Eine Datei mit dem Namen .htaccess (Punkt beachten) im Ordner \web\passwd mit folgendem Inhalt erstellen:
AuthName "Title"
AuthType "Basic"
AuthUserFile "/volume1/web/passwd/admin.pw"
require valid-user
#bei Problemen mit require vaild-user (trat auf einer DS210j auf) mal 
#require user <Username> 
#versuchen

Dadurch kann auf das Verzeichnis \web\passwd nur von Benutzern zugegriffen werden, die in der Datei /volume1/web/passwd/admin.pw eingetragen sind.

  • Datei admin.pw erstellen. Diese enthält pro User mit Zugriff auf den ordner \web\passwd eine Zeile mit folgendem Format:
User:Passwort

Um das Passwort zu erhalten, muss dies erst generiert werden. Dazu einen der zahlreichen .htaccess-Generatoren im Internet verwenden. Der Ordner \web\passwd sollte nur Administratoren zugänglich sein. Die Datei admin.pw könnte dann ungefähr so aussehen (Passwort = test):

admin:$1$QlgzDUuX$fMoyWEHhnJvm.Ux5aNd2b0
  • Datei normal.pw im Ordner \web\passwd erstellen, diese soll alle Benutzernamen und dazugehörigen Passwörtern derjenigen User beinhalten, die Zugriff auf die Verzeichnisse der Web Station haben sollen. Dazu analog wie bei der Erstellung der admin.pw vorgehen: Pro User eine Zeile mit Username und Passwort, wobei das Passwort per .htaccess-Generator erstellt werden kann. Beispiel einer normal.pw:
Bob:$1$3a6ec4Pk$YiEMOVnuxlzRkQoEmLaPS0
Susi:$1$vOb0WUyG$MnoANxLYwI2JWOSc96At5.
  • Datei .htaccess mit folgendem Inhalt im Ordner \web erstellen:
AuthName "Title"
AuthType "Basic"
AuthUserFile "/volume1/web/passwd/normal.pw"
require valid-user

Damit wird der eigentliche Zugriffsschutz für das Verzeichnis \web geregelt. Lediglich eingetragene Benutzer in der zuvor erstellten normal.pw dürfen auf das Verzeichnis inklusive Unterverzeichnisse zugreifen.

Hinweis

Um den Zugriffsschutz auf die Web Station zu lockern, können auch nur einzelne Ordner unterhalb von \web mit einer .htaccess geschützt werden. Dies hat keinen Einfluss auf übergeordnete Verzeichnisse.

Um den Zugriffsschutz zu verbessern, sollte man sich statt Basic auch mal Digest ansehen. Damit gehen Passworte nicht mehr im Klartext durch das Netz.

Weblinks