Auf einem Apache-Webserver lassen sich Berechtigungen geben. Sei dies mit der Konfiguration oder dem .htaccess-File.
Achtung: Es muss unter Umständen konfiguriert werden, dass die .htaccess-Datei die Berechtigungen steuern kann.
Ein Beispiel für einen Unterordner, der in jedem vhost enthalten ist:
<Directory /var/www/virtualhosts/*/download/> ... </Directory>
(Fast) Dasselbe gilt auch für Files: (Beispielsweise eine Adminseite, die nur mit entsprechenden Rechten aufrufbar sein soll)
<Files /var/www/virtualhosts/*/admin.php> AuthName “Admin-Seite” AuthType Basic AuthUserFile /apache2/passwords/admin.passwd AuthGroupfile /apache2/passwords/admin.groups Require Group webpage-admin </Files>
So müsste man sich mit dem entsprechenden Benutzer anmelden.
Location
Dies lässt zu, Verzeichnisse zu steuern, obwohl sie beim Dateisystem nicht vorhanden sind.
<Location /nothinghere> </Location>
Reihenfolge
- <Directory>
- <Files>
- <Location>
Authentifizierung
Benutzerdatei erstellen
Benutzer, die verwendet werden, um Zugriffe auf Webseiten zu steuern müssen mit htpasswd unter /usr/local/apache2/bin diese dort erstellt werden.
hostname:~ # /usr/local/apache2/bin/htpasswd -c \ >/usr/local/apache2/passwords/.htpasswd testuser New password:**** Re-type new password:****
Standardmässig sind diese Benutzer mit Crypt verschlüsselt.
AuthTypes
- Basic
- Funktioniert bei allen Browsern
- Ist verfügbar, wenn das Modul mod-auth aktiv ist
- Nicht verschlüsselt
- Digest
- benötigt das Modul mod_auth_digest
- Wird mit md5-Hash verschlüsselt
- Realm&Zufallswert werden gesendet, damit – auch wenn der Realm bekannt ist, noch Sicherheit da ist.
- Digest wird noch nicht von allen Browsern unterstützt
#AuthName AuthName Realm #AuthUserFile AuthUserFile Dateiname #Verweis auf entsprechende Passwortdatei (meist .htpasswd) #AuthGroupFile AuthGroupFile Dateiname #Gruppendatei, meist .htgroup #require Require Nutzerart (Nutzernamel][Nutzername2] #Legt fest, wer zugreifen darf #user require user benutzer1, benutzer2 #Benutzer, die nach PW-Eingabe Zugriff haben #group require group gruppe1 #valid-user require valid-user #es werden alle berücksichtigt, die in der entsprechenden Passwortdatei vorhanden sind.
Deny, Allow
Deny from all | host Allow from all | host Order [Sortierung] Allow from www.ichdarf.com Allow from 192.168.1.10
Satisfy
Macht nur Sinn, wenn Benutzer und Deny, Allow verwendet werden.
Beispiele:
Order deny, allow Deny from all Allow from localhost AuthType Basic AuthName "Ordner Bezeichnung" AuthUserFile /usr/local/apache2/passwords/.htpasswd Require user testuser Satisfy any
Bei Satisfy any kann ein Benutzer von localhost ohne Zugangscheck zugreifen. Von einer anderen Domain muss die Zugangskontrolle durchgeführt werden. Bei Satisfy all müssen Benutzer von localhost auch den Zugangscheck machen, alle andern dürfen dann gar nicht mehr.
Benutzermanagement
Bei wenigen Benutzern macht es sinn, nur Benutzerdateien zu haben. Bei grösseren Mengen, ist es eher geeignet, dafür Datenbanken zu verwenden.
- DBM
- DBM-Datenbanken sind eigentlich nur Dateien, die über Unix vorhanden sind
- Apache bietet das Modul mod_auth_dbm
- Beispieltool: dbmmanage
- MySQL
- Zugriffsgeschwindigkeit ist höher als bei Textdateien
- Modul mod_auth_mysql
- LDAP
- Grosser Verzeichnisdienst
- Verwaltung von diversen Informationen
- Wird auch sonst als zentrale Login-Möglichkeit verwendet
- Modul mod_auth_ldap
Handler
- Server-Status
- Server-Info
SetHandler NameHandler #Beispiel Serverstatus SetHandler server-status #Beispiel Zugriff auf Server-Info <Location /server-info> AuthType Basic AuthName "Server-Info" AuthUserfile /usr/local/apache2/passwords/admin.passwd Require Valid-User SetHandler server-info </Location>