htaccess - wirklich geschützte Bereiche im Internet...
Da ich selber regelmäßig überlegen bzw. nachschlagen muss, wenn eine neue htaccess-Absicherung erfolgen soll, habe
ich nachstehend eine kurze Beschreibung vorgenommen, welche auf verschiedenen Artikeln und Veröffentlichungen sowie auf eigenen Erfahrungen basiert. Alle verwendeten Screenshots habe ich selber erstellt - sie dürfen unter
Nennung der Quelle für private Zwecke frei verwendet werden. Darum habe ich hier auch darauf verzichtet, das übliche JavaScript-Spielchen mit der deaktivierten rechten Maustaste einzubauen (das kann man ja ohnehin leicht
umgehen). Auf andere und für den Zweck einer echten Absicherung ungeeignete Möglichkeiten (z. B. Pseudo-Passwortschutz mit Hilfe von JavaScript) gehe ich hier nicht ein. Eine Gewähr für die Sicherheit von Daten und
der dauerhaften Funktionalität der beschriebenen Verfahren gebe ich nicht. Diese Anleitung ist nur als Dokumentation eines meiner Ansicht nach funktionalen Standards für meine eigenen Zwecke zu verstehen. So habe ich es
gemacht! Jede/r andere handelt auf eigene Verantwortung, wenn er/sie sich an den Ausführungen auf meiner Homepage orientiert. Bitte haben Sie Verständnis für diesen leider notwendigen Haftungsausschluss gleich zu Beginn. Nun
aber los!
Was ist htaccess
und wie erkenne ich es? htaccess ist sicherlich jedem Internet-Nutzer schon einmal begegnet: Will ein Besucher in einen geschützten Bereich vordringen, öffnet sich ein Pop-up-Fenster und er muss einen Benutzernamen und ein Passwort eingeben. Erst nach der Eingabe des richtigen Kombination aus Benutzer und Passwort darf der Besucher passieren.

Drei falsche Eingaben nacheinander leiten zu einer Standard-Fehler-Seite (error 401) weiter. Der Browser muss dann
geschlossen und neu gestartet werden, um weitere drei Versuche zu erhalten.

Andererseits kann der Besucher während einer Internet-Sitzung immer wieder zurückkehren, da das Passwort im Browser temporär gespeichert wird. Auch das dauerhafte Speichern des Passwortes wird durch den Browser
angeboten. Somit erfolgt bei der nächsten Sitzung ein automtischer Eintrag der lokal auf dem Rechner gemerkten Benutzer-Passwort-Kombination. Vorsicht also bei öffentlichen Computer (Flughäfen, Messen) und solchen, die von
mehreren Personen genutzt werden. Ganz davon abgesehen: Von öffentlichen Computer aus würde ich ohnehin nie in einen meiner privaten Bereiche gehen. Die History-Funktionalität der Browser erlaubt nachfolgenden Usern
eventuell einen einfachen Zugriff auf meine Daten. Sorry - genau das will ich ja nicht erreichen... Weiß ich aber, wie sich Personen verhalten, denen ich eine Benutzerkennung und ein Passwort gebe? Schon aus
diesem Grund ist es nicht zu raten, wirklich geheime Daten in geschützte Bereiche zu stellen. Dazu gibt es die Möglichkeit einer Verkryptung, die in den aktuellen Versionen ohne die unfreiwillige Mithilfe sorgloser Anwender
wirklich nicht zu knacken sind.
Wie wird htaccess angewandt?
Zunächst wird ein kleines Programm benötigt, das unter Unix- oder Linux-Installationen als Standard bereits
mitgeliefert wird. Das Programm wurde aber auch für Windows - bzw. korrekterweise DOS - emuliert. Sein Name lautet htpasswd.exe (hier klicken zum Download als ZIP-File - 256 kb und hier klicken zum Download als RAR-File - 220 kb). Es ist für die Generierung des jeweiligen Passwortes zuständig. Seine Größe beträgt gerade einmal 562 KB.
Passworterzeugung mit htpasswd: Gehen Sie nun auf die
DOS-Ebene (wir Oldies jubilieren jetzt...) des Computers. Um auf die DOS-Ebene zu gelangen,
gibt es mehrere Möglichkeiten. Die folgende Beschreibung gilt für Windows XP Home und ähnlich auch für ältere MS-Betriebssysteme: ► Start / Programme / Zubehör / Eingabeaufforderung oder: ► Start / Ausführen / Eingabe von “command.com” (die Eingabe der Extension “.com” ist natürlich optional)
Als “alter Hase” habe ich mir natürlich eine DOS-Verknüpfung in die Schnellstartleiste gezogen. Mein erster “Rechner”
war übbrigens 1985 ein Commodore C64 mit 39 kb RAM - die Älteren erinnern sich bestimmt noch an die Speicherung mit Datasette und Turbo-Tape, wenn man die ersten eigenen - mit Basic erstellten - Videospielchen
sichern wollte. Festplatte? Fehlanzeige. 5 1/4 Zoll Floppy-Disk für 180 kb Disketten? Unbezahlbar. ;-)

Und so sieht dann das geöffnete DOS-Fenster aus - spartanisch gut:

Wie komme ich nun zum richtigen Pfad? DOS-Befehle? Ganz einfach (jetzt glänzen wieder die Augen der Oldies...).
Mit cd.. komme ich genau eine Ebene zurück (change directory: bitte auch die beiden Punkte eingeben)
oder gleich in einem Rutsch mit cd c:\ zum Rootverzeichnis navigieren (also eine direkte, absolute Pfadangabe). Oder auch cd c:\data\programmierung\html\htaccess in unseren Beispiel-Zielpfad (ja, ja - ich liebe tiefe
Pfadstrukturen...). Probieren Sie es einfach einmal aus - so war es vor der Zeit grafischer Oberflächen:

Kleiner DOS-Exkurs cls (clear screen) löscht den Bildschirm, wenn es einmal zu unübersichtlich wird. Probieren Sie gelegentlich doch auch einmal dir oder dir /w sowie tree.
Möchten Sie den Inhalt eines Pfades - so wie in der Ansicht im Explorer - in eine Datei schreiben? Navigieren Sie in das Verzeichnis Ihrer Wahl und geben Sie dann ein: dir > inhalt.txt Schon finden Sie eine neue Datei, die Sie wie gewohnt öffnen können.
Mehr dazu gibt es bald auf einer eigenen Site mit dem Titel Batches. Die sind auch im Windows-Zeitalter sinnvoll und
ich nutze es noch heute, wenn ich schnell eine Dateiliste einen recht vollen Pfades benötige, die ich dann vielleicht
in Access oder auch Excel weiterverarbeiten möchte... So hatte ich z. B. einmal mehr als 6.500 Mitarbeiter-Fotos in
einem Pfad und wollte “auf die Schnelle” abgleichen, wer mir noch fehlt. Ich war in nicht einmal 5 min durch damit.
Zurück zu htaccess
Nun erfolgt die Eingabe der Syntax nach folgendem Muster: htpasswd -c htpasswd.txt IhrBenutzername
Angesprochen wir also die Anwendung htpasswd mit den Parametern ► -c ► htpasswd.txt ► IhrBenutzername Im konkreten Beispiel also: htpasswd -c htpasswd.txt testuser Für die jüngeren Leser: DOS kannte und kennt noch keine Zwischenablage. Also ist tippen angesagt - nicht kopieren! Die “Zusammenarbeit” mit kommandozeilen-orientierten Programmen wie htaccess funktioniert übrigens
hervorragend aus VBA (Visual Basic for Applikations) und anderen Programmiersprachen heraus. Durch die Angabe des Attributs -c (create oder clear?) werden Benutzername und das automatisch erzeugte
Passwort in eine Datei namens »htpasswd.txt« geschrieben. Übrigens immer im gleichen Verzeichnis wie htaccess, also in diesem Fall in »c:\data\programmierung\html\htaccess«. Das ist wichtig zu wissen, wenn man mehrere Domains mit mehreren “technischen Schlössern” administriert. Dazu einfach die Anwendung htpasswd in jeweils
mehrere Pfade kopieren. Nur so hat man die erzeugten Dateien immer aktuell zur Verfügung. Wurde die Datei
»htpasswd.txt« angelegt? Übrigens: Ohne den Parameter -c erfolgt eine additive Ergänzung der Kombination aus
Benutzer und verschlüsseltem Passwort.

Hier das Ergebnis mit Parameter -c und ohne diesen Parameter:


Ach ja: Die DOS-Ebene verlassen? Nicht einfach mit dem Kreuz oben rechts. Der richtige und elegante DOS-Befehl zum Verlassen lautet schlicht exit.
Öffnen Sie nun die Datei »htpasswd.txt« - z. B. mit einem Doppelklick im Explorer. In der Datei finden Sie nur eine
einzige Zeile: testuser:xxxxxxxxxx.
testuser ist unser Beispiel-Benutzername und die Buchstaben-Zahlen-Kolonne ist die Verschlüsselung unseres Kennwortes, in diesem Fall des Wortes »gdaehf« (Na, erkannt? Es ist die Abkürzung des Merksatzes zum
Dur-Quintenzirkel rechtsherum: “Geh Du alter Esel Heu fressen.”). Diese Datei muss nun zusammen mit einer weiteren wichtigen Datei via FTP in das Verzeichnis kopiert werden, das geschützt werden soll.
Nebenbei bemerkt: Groß-Klein-Schreibung beachten! Was Windows und den IE überhaupt nicht interessiert, ist auf Web-Servern von größter Bedeutung.
Für unseren Test habe ich den Ordner »secretdoor« auf meiner Webpage angelegt. In diesem Verzeichnis befinden
sich Inhalte, die vor grundsätzlich verborgen bleiben sollen. Für die Wirksamkeit des Passwortschutzes muss als zweite Datei »htaccess« bereitstehen. Sie ist in unserem notwendig, damit der Server angewiesen wird, eine
Passwortabfrage durchzuführen, bevor einem Besucher Zutritt gewährt wird. Aber Vorsicht: Besteht in dem Pfad schon eine solche Datei, darf die nicht einfach überschrieben werden. Diese Datei kann außer dem Passwortschutz
auch andere Aufgaben haben. Das würde den Rahmen dieser Beschreibung sprengen. Von daher einfach in einem neu angelegten Pfad ausprobieren...
Die zweite Datei »htaccess.txt« hat folgenden Inhalt:
AuthType Basic AuthName "Restricted Directory"
AuthUserFile "/kunden/homepages/99/x99999999/htdocs/secretdoor/.htpasswd" require valid-user
Was bedeutet das? In diesen Daten befindet sich der absolute Pfad der Homepage in Bezug auf den Server und der
zu schützende Pfad und der Hinweis auf eine Datei namens .htpasswd. Der absolute Pfad ist der “echte” Pfad, den die Homepage auf dem Server des Domain-Hosters einnimmt. Normalerweise finden Sie diese Angabe im
Login-Bereich Ihres Providers. Er lautet sicher ähnlich, aber ohne die exakte Angabe funktioniert der Passwortschutz
nicht. Also bitte nicht hier kopieren (mein absoluter Pfad ist ohnehin fiktiv)! Kleiner Trick: Wenn der absolute Pfad
beim Provider nicht direkt einzusehen ist, gibt es meistens trotzdem eine Lösung. So bieten viele Provider die Option der Pfadverschlüsselung im Login-Bereich an. Führen Sie das doch einmal durch und holen Sie sich die
htaccess-Dateien anschließend via FTP-Download auf den Rechner. Umbenennen (s. u.) und analysieren - dann haben Sie den Pfad!
Immer wenn AuthName aus mehreren Wörtern besteht, müssen diese in Anführungszeichen eingetragen werden.
Laden Sie nun die Dateien »htpasswd.txt« und »htaccess.txt« via FTP-Programm in das Verzeichnis, das Sie schützen wollen; im unserem Fall also »secretdoor«. Somit sind alle notwenigen Dateien im Verzeichnis vorhanden.
Jetzt müssen Sie nur noch die ».txt«-Textdateien umbennen, damit der htaccess-Schutz in Aktion treten kann. Unbenannt wird daher ► »htaccess.txt« in ».htaccess« und ► »htpasswd.txt« in ».htpasswd« Beide htaccess-Dateien werden nun zu versteckten Dateien (durch den führenden Punkt und die für unsere Augen
fehlende Extension). Sie können versteckte Dateien - falls sie Ihnen gerade “abhanden gekommen” sein sollten - bei
Nutzung von WS-FTP mit dem Befehl »-al« wieder zum Vorschein bringen. Das von mir genutzte Programm Core FTP LE
zeigt auch die versteckten Dateien standardmäßig an. Fertig. Das Verzeichnis “secretdoor” ist jetzt gesichert und kann nur vom Benutzer »testuser« mit dem Kennwort »gdaehf« betreten werden.
Bis jetzt haben wir es mit nur einem Benutzer zu tun gehabt. Was aber muss passieren, damit
htaccess mehrere Benutzer verwalten kann? In unserem Beispiel soll zu »mustermann« auch noch seine Frau kommen, die wir schlicht »musterfrau« nennen. Sie bekommt ebenfalls ihr eigenes
Passwort. Wie man das erstellt, haben wir bereits behandelt. Sie müssen nur mit folgender Operation einen zweiten User zu Ihrer Passwort-Datei »htpasswd.txt« hinzufügen. Das sieht auf der Konsole so aus:
Neugierig, wie wir sind, gucken wir in die neue »htpasswd.txt«-Datei mit der dazugefügten »musterfrau«. Das Ergebnis ist sehr überschaubar. Zu »mustermann« wurde einfach eine zweite Zeile dazugefügt. Das ist alles:
mustermann:a.L0oPH1HWn8I musterfrau:4hoq7Vri/Ts4A
Diese Form der Verschlüsselung ist übrigens ziemlich sicher, da sie maschinenspezifisch ist. Selbst
wenn ein Hacker irgendwie die verschlüselte Datei in die Hände bekommt, kann er sie trotzdem nicht zurückberechnen. Bei der Passworteingabe wird das Passwort durch die
Unix-Systemfunktion »crypt()« kodiert und mit der Passwortdatei abgeglichen. Ist es identisch, so darf der Besucher passieren.
In htaccess ist es übrigens auch möglich mit einer Extra-Datei eine ganze Gruppe von Benutzern komfortabel zu verwalten. Dafür muss in einer Datei, die ».htgroup« heißt, eine Reihe von
Benutzern definiert werden. Das kann zum Beispiel so aussehen:
gruppe1: mustermann musterfrau musterkind gruppe2: anton eva heinz
Die »htaccess«-Datei muss dann aber neu konfiguriert werden. Statt des Eintrags »require valid-user« muss jetzt » require group« angegeben werden. Durch diese Zeile wird gewährleistet,
dass alle Gruppenangehörige auch tatsächlich in die geschützten Verzeichnisse gelangen können. ;-)
|