Paßwortdatei
Zunächst muß eine Paßwortdatei angelegt werden, die alle Benutzer und die zugehörigen (verschlüsselten) Paßwörter enthält. Diese Datei sollte außerhalb des Bereichs der Webseiten liegen, damit sie sich nicht einfach herunterladen läßt (also z.B. direkt im Homeverzeichnis). Da aber der Web-Server selbst auf die Datei zugreifen muß, läßt es sich nicht vermeiden, daß die Datei öffentlich lesbar ist. Deswegen sollte man bei der Wahl der Paßwörter darauf achten, daß diese nicht einfach zu knacken sind - am besten verwendet man die gleichen Richtlinien, wie sie auch für Login-Paßwörter gelten (mindestens zwei verschiedene Sonderzeichen). Auch kann man für die Paßwortdatei einen nicht leicht zu erratenden Namen verwenden (z.B. einige zufällig eingetippte Buchstaben), da das Homeverzeichnis selbst ja gegen Lese-Zugriff geschützt sein kann (newpublichtml
stellt das so ein, wenn man damit seine Homepage erstellt).
Paßwörter trägt man mit dem Aufruf
htpasswd Paßwortdatei Benutzername
ein (wenn es die Paßwortdatei noch nicht gibt, muß nach dem htpasswd
zusätzlich noch die Option -c
stehen). Den Benutzernamen kann man natürlich frei wählen - er hat nichts mit den Benutzernamen zu tun, mit denen man sich einloggt. Danach wird man aufgefordert, das diesem Benutzernamen zuzuordnende Paßwort einzugeben (und ein zweites Mal, um Tippfehler abzufangen).
Nach dem erstmaligen Erstellen der Paßwortdatei muß man dem Webserver noch den Lesezugriff erlauben:
chmod a+r Paßwortdatei
Seiten schützen
Alle Seiten, die auf die gleiche Art und Weise geschützt werden sollen, müssen in einem gemeinsamen Verzeichnis liegen. In diesem Verzeichnis (d.h. wenn alle Seiten geschützt werden sollen, direkt in $HOME/.public_html
, ansonsten in einem Unterverzeichnis davon) legt man dann eine Datei namens .htaccess
an, die bestimmt, wie die entsprechenden Seiten geschützt werden sollen.
Der erste Eintrag ist immer gleich:
AuthType Basic
Damit wir festgelegt, daß einfache Paßwort-Authentifikation benutzt werden soll.
Danach folgt eine Bezeichnung für den Bereich, der geschützt werden soll. Der angegebene Text dient lediglich dazu, bei der Paßwort-Abfrage angezeigt zu werden; wichtig ist aber, daß Anführungszeichen verwendet werden, wenn der Text Leerzeichen enthält.
AuthName "Bezeichnung des geschützen Bereichs"
Jetzt geben wir unsere eben erstellte Paßwortdatei an:
AuthUserFile /home/ws/Username/Paßwortdatei
Der Anfang des Pfades /home/ws/Username
ist einfach das Homeverzeichnis, also das, was auch in der Environment-Variablen $HOME
steht, gefolgt vom Namen der Paßwortdatei.
Jetzt müssen wir noch festlegen, wer alles Zugriff auf das geschützte Verzeichnis hat - im einfachsten Fall alle Benutzer, die in der Paßwortdatei aufgeführt sind:
Require valid-user
Man kann aber auch die Benutzernamen aufführen, für die dieser Bereich zugänglich sein soll:
Require user Benutzername Benutzername ...
Dies hat den Vorteil, daß man auch für mehrere unterschiedlich geschützte Bereiche nur eine einzige Paßwortdatei braucht.
Jetzt muß man dem Webserver nur noch den Lesezugriff auf diese Datei erlauben:
chmod a+r .htaccess
Jetzt kann nur noch der die Webseiten aus dem geschützten Verzeichnis anzeigen, der das Paßwort für einen der freigegebenen Benutzernamen kennt. Der Webserver sorgt automatisch dafür, daß die Paßwortübermittlung nur über eine gesicherte Verbindung erfolgt - so kann das Paßwort unterwegs nicht abgefangen werden.