schubiserv.de

htpasswd

htpasswd eine Kommandozeilenanwendung

In kurzen Schritten soll hier erläutert werden, wie auf einem Windows System die htpasswd.exe genutzt werden kann. Die htpasswd.exe ist eine Kommandozeilenanwendung der Apache Software Foundation und ist in jeder Apache HTTP Server Installation unter Windows enthalten. Mit der htpasswd.exe läßt sich auf einfache Weise ein Paßwort bzw. eine Paßphrase für eine htaccess-Benutzerauthentifizierung an einem Apache HTTP Server erstellen.

Eine solche htaccess-Authentifizierung, siehe Abbildung 1, finden Sie auch auf schubiserv, zum Beispiel im Verzeichnis TreSor.

Dialog zur Benutzerauthentifizierung im Webbrowser Opera (Version 11)
Abbildung 1:
Dialog zur Benutzerauthentifizierung im Webbrowser Opera (Version 11). Creative Commons Lizenzvertrag

Apache Modul

So ganz nebenbei, bitte beachten Sie, daß mittels htpasswd erzeugte Paßwörter/Paßphrasen nur für den AuthType Basic verwendet werden können!
Für AuthType Digest nutzen Sie bitte htdigest.

AuthType was?
Sollte Ihnen diese Frage gerade durch den Kopf gehen, ist dies vielleicht der richtige Zeitpunkt um zu klären ob überhaupt das richtige Modul zur Benutzerauthentifizierung vom Apache HTTP Server bereitgestellt wird. Beispielsweise lautet für den Apache HTTP Server Version 2.2 die Bezeichnung des entsprechenden Moduls mod_auth_basic.

Sollte Ihr Server bei Ihnen im Keller stehen ist zu erwarten, daß Sie den entsprechenden Eintrag in der httpd.conf finden werden.
Liegen Ihre Webdokumente auf einem Server eines Hosting Rundum-Sorglos-Packets läßt sich wohl am einfachsten mittels dem PHP-Befehl phpinfo() feststellen ob das Modul vorhanden ist.
Im Abschnitt apache2handler der PHP-Konfiguration, siehe Abbildung 2, werden in der Zeile Loaded Modules die vom Apache HTTP Server geladenen Module aufgezählt.

apache2handler Ausschnitt des Apache HTTP Server
Abbildung 2:
Mit dem Befehl phpinfo() aufgerufener apache2handler Ausschnitt der PHP-Konfiguration, unter anderem mit dem vom Apache HTTP Server geladenen mod_auth_basic Modul. Creative Commons Lizenzvertrag

Hier sollte sich das zuvor genannte Modul finden.

Paßwort vs. Paßphrase

Nachdem nun feststeht welches Modul auf dem Server läuft, sollten Sie sich zu jedem Benutzer ein sicheres Paßwort/Paßphrase überlegen. Sehen Sie davon ab Ihr Standardpaßwort einzutippen!
Ich empfehle Ihnen die Verwendung einer Paßphrase.

Aufrufen von htpasswd

Rufen Sie zunächst den Befehlszeileninterpreter mit Start -> Ausführen -> cmd [Enter] auf. Wechseln Sie anschließend in das Verzeichnis in der die htpasswd.exe liegt (diese finden Sie im Installationsverzeichnis des Apache HTTP Server) und geben htpasswd ein.

Möchten Sie es ganz bequem/einfach haben, so kopieren Sie unter Windows XP die htpasswd.exe in den Ordner C:\WINDOWS\system32 bzw. unter Windows Vista oder Windows 7 in den Ordner C:\Windows\system32. Von nun an steht Ihnen direkt nach Aufruf des Befehlszeileninterpreters der htpasswd Befehl zur Verfügung. Sie sparen sich zumindest hier den Verzeichniswechsel.

Es erscheint der in Abbildung 3 dargestellte Dialog, welcher Informationen zu htpasswd und deren Befehlsparametern liefert.

Fenster des Befehlszeileninterpreters (cmd.exe) mit htpasswd Startdialog
Abbildung 3:
Fenster des Befehlszeileninterpreters (cmd.exe) mit htpasswd Startdialog. Creative Commons Lizenzvertrag

Grundsätzlich lassen sich zwei Verfahrensweisen unterscheiden.

Zwar unterscheiden sich beide Verfahren nur geringfügig in Ihren Befehlsparamtern, jedoch können Sie größeren Schaden erleiden, wenn Sie hierbei unachtsam vorgehen. An gegebener Stelle werde ich Sie nochmals darauf hinweisen.

Variante I: Erstellen von Paßwortdatei, Benutzer und Paßwort

Nachfolgend finden Sie Syntax und Beispiel um eine neue Paßwortdatei anzulegen und gleichzeitig einen Benutzer mit zugehörigem Paßwort zu erstellen.

Syntax

htpasswd [-c] [Laufwerk:][Pfad] Benutzername

[-c] Erstellen einer neuen Datei.

Im Umfeld von htpasswd stehen noch weitere Befehlsparameter zur Verfügung. Da hier diese zum Aufzeigen der wesentlichen Abläufe nicht benötigt werden, vernachlässigen wir diese.

Beispiel Schritt 1:
Die htpasswd.exe liegt im Verzeichnis C:\ vor. Mit dem Befehl -c wird die Datei .htpasswd im Verzeichnis D:\ erstellt.
Der Punkt zu beginn des Dateinamens .htpasswd führt unter einem Linuxsystem (Serverstandard) dazu, daß die Datei nicht angezeigt, quasi versteckt, wird. Mit dem frei gewählten Namen Anton erstellen Sie Ihren ersten Benutzer.

Beispiel:

C:\>htpasswd -c D:\.htpasswd Anton

Beispiel Schritt 2:
Nach dem Sie Ihre bisherige Eingabe mit ENTER bestätigen, werden Sie zur Eingabe eines Paßwortes/Paßphrase aufgefordet. Quittieren Sie Ihre Paßworteingabe mit ENTER und wiederholen diese Paßworteingabe erneut. Eine fehlerhafte Eingabe wird Ihnen mit einer Fehlermeldung quittiert.
Sollte es Ihnen gelungen sein, daß Paßwort korrekt zu wiederholen, werden Sie nun im Verzeichnis D:\ die Datei .htpasswd vorfinden.

Mit einem Editor Ihrer Wahl können Sie diese Datei öffnen. Sie finden den Benutzernamen "Anton" gefolgt vom MD5 (Standard unter Windows) verschlüsselten Paßwort.
Benutzername und Paßwort werden durch einen Doppelpunkt getrennt. Hier ein Beispiel wie die Einträge in einer Paßwortdatei aussehen könnten:

Anton:$apr1$gU......$ZQE67tuE3s6EMBYEH1J/61
Pünktchen:$apr1$AX......$g6kwfcmFkIkx8K3Sn8r/E1

Listing 1

Variante II: Weiteren Benutzer hinzufügen

Die Paßwortdatei besteht bereits und weitere Benutzer sollen ergänzt werden.

Der Befehlssyntax entspricht dem wie unter Variante I, jedoch lassen Sie den Befehlsparameter -c weg!
Der erneute Aufruf mit -c würde dazu führen, daß die Datei .htpasswd erneut angelegt und eine bereits vorhandene Datei überschrieben würde. Vorhandene Benutzer und deren Paßwörter wären verloren und müßten erneut angelegt werden.

Beispiel:

C:\>htpasswd D:\.htpasswd Anton

Anmerkung zu AuthType Basic

Die Übertragung über HTTP erfolgt ohne vorherige Verschlüsselung, wie dies im AuthType Digest der Fall wäre. Der AuthType Basic ist so gesehen gegenüber dem AuthType Digest unsicherer, womit eine AuthType Digest Authentifizierung vorzuziehen ist.
Jedoch beherrschen nicht alle Clients, sprich Webbrowser, den AuthType Digest. Unter Umständen würden Sie mit Digest einzelne Nutzer von einer Paßwortauthentifizierung ausschließen.

Wie bereits erwähnt ist es nicht möglich Paßwörter/Paßphrasen die mit htpasswd erstellt wurden unter AuthType Digest zu nutzen.

Prüfen Sie bitte auch ob das Apache Module mod_auth_digest geladen ist, welches Sie für AuthType Digest benötigen!

Alternativ wäre denkbar, daß vor Eingabe des Paßwortes eine sichere Verbindung über HTTPS aufgebaut und so ein Auslesen erschwert würde.

Leseempfehlungen

In diesem Zusammenhang sind vielleicht folgende Hinweise hilfreich:

Beispiel einer Benutzerauthentifizierung an einem Apache HTTP Server:

Artikel der Apache Software Foundation (Apache HTTP Server Version 2.2):

Ausführungen der Apache Software Foundation zu htdigest:

Informationen zur IT-Sicherheit finden Sie in folgenden Artikeln :

Kommentare 0

Kommentar verfassen


Urheberrechtshinweis

Creative Commons License

Soweit nicht weiter angegeben steht der Inhalt aus »schubiserv | htpasswd«, von Florian Schubert, unter einer Creative Commons Namensnennung-NichtKommerziell-Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.





letzte Bearbeitung: 01 Oktober 2011 | 12:39:04

XHTML+RDFa 1.1  |  CSS 3  |  U.S. Section 508  |  WCAG 1.0  |  I18N  |  RDFa