Passwortschutz für Serverbereiche (Verzeichnisse)
Vorlage:KB So wie das Verzeichnis Ihrer Abrufstatistiken mit einer Passwortabfrage geschützt ist, können Sie jedes andere Verzeichnis auch schützen und mit einem Benutzerlogin versehen.
Konfiguration per SSH Zugang:
Diese Funktion steht Ihnen per SSH zur Verfügung (ggf. schalten wir Ihnen den SSH-Zugang gerne frei.)
Wechseln Sie per SSH in das Verzeichnis, das geschützt werden soll:
# cd /home1/a98h00/htdocs/restricted_dir
Legen Sie die Datei ".htaccess" an, in dem Sie folgenden Befehl ausführen:
# touch .htaccess
Die Datei .htaccess muss nun editiert werden. Am einfachsten erledigen sie das mit dem "Midnight-Commander", das ist ein Linux-Dateimanager, der dem Norton-Commander (nc) identisch ist. Der Programmaufruf ist "mc".
# mc
Nun wechseln sie auf die Datei .htaccess und drücken <F4>, um die Datei in den Editor zu nehmen. Tragen Sie folgenden Text in diese Datei ein und passen Sie den Pfad in "AuthUserFile", sowie die Beschreibung in "AuthName" nach Ihren Bedürfnissen an:
AuthUserFile /home1/a98h00/htdocs/restricted_dir/.htpasswd AuthGroupFile /dev/null AuthName "Geschuetzter Serverbereich" AuthType Basic <Limit GET POST> require valid-user </Limit> Speichern Sie die Datei mit und beenden Sie den Editor und den Midnight-Commander jeweils mit .
Nun müssen Sie die Passwort-Datei anlegen. Rufen Sie dafür folgenden Befehl auf:
# touch .htpasswd
Mit dem Befehl "htpasswd" können Sie nun User und Passwörter hinzufügen bzw. ändern. (Dies geht nicht im Editor, weil die Passwörter verschlüsselt abgespeichert werden.) Um z.B. den User erwin anzulegen bzw. dessen Passwort zu ändern, geben Sie folgenden Befehl ein (Achten Sie auf die Groß- und Kleinschreibung!):
# htpasswd .htpasswd erwin
Sie werden nun 2x nach einem Passwort gefragt, welches beim Eingeben nicht durch Sternchen wiedergegeben wird.
Das aktuelle Verzeichnis ist nun sofort mit einem Passwortschutz versehen. Sie können beliebig viele User anlegen. Diesen Vorgang können Sie für jedes Verzeichnis in gewünschter User-Konfiguration wiederholen.
Erweiterte Einstellungen
Passwort für nur eine Datei:
<Files login.php> Order deny,allow Deny from all AuthName "htaccess password prompt" AuthType Basic AuthUserFile /home/user/.htpasswd Require valid-user </Files>
Mehrere Dateien schützen:
<FilesMatch "^(exec|env|doit|phpinfo|w)\.*$"> Order deny,allow Deny from all AuthName "htaccess password prompt" AuthUserFile /home/user/.htpasswd AuthType basic Require valid-user </FilesMatch>
Apache Allow Directive in .htaccess
Mit Network/Netmask Paar:
Order deny,allow Deny from all Allow from 10.1.0.0/255.255.0.0
Mit Network/nn CIDR Spezifikation:
Order deny,allow Deny from all Allow from 10.1.0.0/16
Mit einer IP Adresse:
Order deny,allow Deny from all Allow from 10.1.2.3
Mit mehreren IP Adressen:
Order deny,allow Deny from all Allow from 192.168.1.104 192.168.1.205
Mit einer IPv6 Adresse und Subnets:
Order deny,allow Deny from all Allow from 2001:db8::a00:20ff:fea7:ccea Allow from 2001:db8::a00:20ff:fea7:ccea/10
Verbiete Subdomains:
Order Allow,Deny Allow from office.all-connect.net Deny from einwahl.all-connect.net
Zugriff von einer bestimmten IP Adresse erlauben und zusätzlich von allen Adressen mit Passwort-Abfrage:
Order deny,allow Deny from all AuthName "htaccess password prompt" AuthUserFile /home/user/.htpasswd AuthType Basic Require valid-user Allow from 172.17.10.1 Satisfy Any