Webserver Verzeichnisse mit Passwort schützen

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Dieser Artikel beschreibt, wie man mit Hilfe einer .htaccess Datei bei dem Apache Webserver Verzeichnisse und Dateien mit einem Passwort schützen kann.

Erstellen einer .passwd Datei

Damit man mit dem Apache Webserver Verzeichnisse und Dateien mit einem Passwort schützen kann, braucht man zunächst eine Datei, in welcher die Passwortdaten enthalten sind. Dazu erstellt man sich die Datei am besten nicht im DocumentRoot des Webservers(z. B. /var/www; hier könnte die Datei über das Internet ausgelesen werden), sondern im /root Verzeichnis.

vps140:~# htpasswd -cs .passwd testuser
New password:
Re-type new password:
Adding password for user testuser
vps140:~# 

Der Schalter -c bewirkt dabei, dass eine neue Datei angelegt wird, der Schalter -s erzwingt eine SHA Verschlüsselung des Passwortes.

Man kann sich die Datei z. B. mit dem Befehl cat ansehen:

vps140:~# cat .passwd
testuser:{SHA}RcVxoVbdzvQTUacTvN3uW6fpVGA=

Erstellen der .htaccess Datei

Um Verzeichnisse und Dateien im Apache Webserver mit einem Passwortschutz zu versehen kann man sich im entsprechenden Verzeichnis eine .htaccess Datei erstellen (z. B. mit dem Editor nano), welche dann einen Passwortschutz ermöglicht. Im Folgenden wird davon ausgegangen, dass das im DocumentRoot des Webservers befindliche Verzeichnis websvn mit einem Passwort geschützt werden soll.

vps140:/var/www/websvn# nano .htaccess

Die Datei sieht wie folgt aus:

AuthType Basic
AuthUserFile /root/.passwd
AuthName "websvn"
order deny,allow
allow from all
require valid-user

Die Zeile AuthUserFile gibt dabei an, wo sich die .passwd Datei befindet, anhand der sich Benutzer bei der Anmeldung authentifizieren können. Die Zeile require valid-user ermöglicht eine Angabe, wer alles Zugriff auf die Verzeichnisse und Dateien erhalten soll. Dabei gibt man mit valid-user an, dass alle in der .passwd Datei angelegten Benutzer Zugriff auf die Verzeichnisse und Dateien erhalten. (Sollen nur bestimmte Benutzer Zugriff erhalten kann man dies hier angeben, z. B. mit require testuser)

Anpassen der Datei mit dem VirtualHost

Damit die Einstellungen auch wirksam werden, muss noch die Option AllowOverride von None auf All in der Datei mit dem entsprechenden VirtualHost unter dem DocumentRoot Directory (/var/www/) gesetzt werden.

vps140:/etc/apache2/sites-available# nano default

NameVirtualHost *
<VirtualHost *>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
                # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
                RedirectMatch ^/$ /apache2-default/
        </Directory>
.
.
.

Übernehmen der Einstellungen

Damit die Einstellung vom Webserver übernommen werden, muss dieser abschließend nur noch neu gestartet werden.

vps140:~# /etc/init.d/apache2 restart
Forcing reload of web server (apache2)... waiting .
vps140:~#

Ergebnis

Will man nun Zugriff auf die Website erscheint ein Fenster zur Authentifizierung.

Passwortabfrage.jpg

Weblinks


Foto Thomas-Krenn.AG.jpg

Autor: Thomas-Krenn.AG

Bei der Thomas-Krenn.AG achten wir auf den bestmöglichen Service. Um dem gerecht zu werden, haben wir unser Thomas-Krenn Wiki ins Leben gerufen. Hier teilen wir unser Wissen mit Ihnen und informieren Sie über Grundlagen und Aktuelles aus der IT-Welt. Ihnen gefällt unsere Wissenskultur und Sie wollen Teil des Teams werden? Besuchen Sie unsere Stellenangebote.

Icon-Facebook.png Icon-Twitter.png Icon-Github.png Icon-Xing.png Icon-LinkedIn.png

Das könnte Sie auch interessieren

Fdisk
Linux Kernel Oops oder Kernel Panic analysieren
Linux Kernel Quellcode durchsuchen