Zugriffskontrolle mittels .htaccess

Die Funktionsweise von .htaccess-Anweisungen

.htaccess-Dateien sind versteckte Dateien, welche seitens des Apache-Webservers vor dem eigentlichen Seitenaufruf verarbeitet werden. Die hier hinterlegten Anweisungen können, je nach Serverkonfiguration, das Verhalten des Webservers maßgeblich verändern; so können .htaccess-Dateien unter anderem ein Rewriting mittels mod_rewrite definieren, aber auch Anweisungen zum Caching (Expires) geben.

Passwort-Schutz für Dateien und Verzeichnisse

Innerhalb des Dokumentenstammverzeichnisses (Beispiel: /web/username/www/subscriptionname) des betreffenden Webspace-Abonnements kann eine .htaccess-Datei angelegt werden, um den Zugriff auf eine Datei oder den gesamten Ordner einzuschränken. Hierfür kann eine vorbereitete .htaccess-Datei per SFTP hochgeladen werden.

Beispiel:

AuthName "Protected Directory"
AuthType Basic
AuthUserFile /web/username/files/.htpasswd
require valid-user

Nach der Erstellung der .htaccess-Datei kann in einem durch den Browser nicht erreichbaren Verzeichnis, beispielsweise dem files-Verzeichnis, eine Datei angelegt werden, welche die eigentlichen Authentifizierungsinformationen enthält. In diesem Beispiel wird diese Datei .htpasswd genannt.

Erstellen der Passwort-Datei über die Shell

Unter Linux-basierenden Systemen kann der Passwort-Hash bequem über die Shell generiert werden.

 htpasswd -c .htpasswd username

Die Routine erfragt ein gewünschtes Passwort für den hier angegebenen Nutzer username; dieses Passwort wird nun in der Datei .htpasswd in Form eines Hashes gespeichert.

Unter login.gwdg.de weicht der Befehl leicht vom Standard ab:

 htpasswd2 -c .htpasswd username

Beispiel:

username:laA94KcLcE53

Nutzen von Online-Tools zur Erstellung einer .Htpasswd-Datei

Sollte keine Shell zur Verfügung stehen, so bietet die GWDG eine Möglichkeit zur Erstellung einer .htpasswd-Datei:

htaccess/htpasswd-Generator

Beispiel:

username:laA94KcLcE53

Zugriff auf IP-Adressen oder IP-Bereiche beschränken

Um den Zugriff auf eine bestimmte IP-Adresse oder einen IP-Bereich zu beschränken, kann dem Apache-Webserver eine entsprechende Anweisung gegeben werden:

Beispiel (einzelne IP/Apache 2.2):

order deny,allow
deny from all
allow from 123.123.123.123 

Beispiel (IP-Bereich/Apache 2.2)

order deny,allow
deny from all
allow from 123.123.123.0/24 

Beispiel (einzelne IP/Apache 2.4)

Require ip 123.123.123.123