====== 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: [[http://tools.vweb.gwdg.de/generator | 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