====== Zugriffskontrolle ======
===== Apache 2.4 =====
==== Auslagerung in .htaccess ====
Mit Hilfe von ''AllowOverride'' können Einstellungen ausgelagert werden:
''/etc/apache2/conf-enabled/intern.conf'': (Debian ab 8)
''/etc/apache2/conf.d/intern.conf'': (SuSE)
''/etc/httpd/conf.d/intern.conf'': (CentOS)
LogLevel warn authz_core:debug
Alias /intern /srv/www/intern
AllowOverride AuthConfig
mkdir -p /srv/www/intern
apachectl configtest
apachectl graceful
Ist jetzt der Zugriff auf Dateien im Verzeichnis ''/srv/www/intern'' erlaubt?
==== .htaccess anlegen ====
Require all denied
Ist der Zugriff auf Dateien im Verzeichnis ''/srv/www/intern'' erlaubt?
==== RequireAny vs. RequireAll vs. RequireNone ====
=== RequireAny ===
Require ip 192.168.1
Require all denied
ist das selbe wie:
Require ip 192.168.1
Require all denied
Wenn der Client aus dem Subnetz 192.168.1 kommt, dann darf er zugreifen. Sonst nicht.
=== RequireAll ===
Require ip 192.168.1
Wenn der Client aus dem Subnetz 192.168.1 kommt, dann darf er zugreifen. Sonst nicht.
* [[https://httpd.apache.org/docs/2.4/howto/access.html|Apache Dokumentation zu Zugriffskontrolle]]
=== RequireNone ===
Require ip 192.168.1
ErrorLog beachten!
=== Verschachtelte Blöcke aus All, Any und None ===
RequireNone = Verneinung dessen was innerhalb des Blocks steht - "darf nicht erfüllt sein"
Require ip 192.168.1
Require ip 10.0.0.0/24
Require ip 192.168.1.208
=== Auswertungsreihenfolge der Sektionen ===
Require all granted
Require all denied
''Files'' wird nach ''Directory'' ausgewertet und gewinnt -> Zugriff auf Dateien im Verzeichnis ''/srv/www/intern'' ist erlaubt
* [[https://httpd.apache.org/docs/2.4/sections.html#merging|Apache Dokumentation zu Sektionen]]
==== Benutzerauthentifizierung ====
Einfache Benutzeridentifikation mittels Passwortdatei
=== Anlegen der Passwortdatei ===
openSuSE (12.3):
htpasswd2 -c /srv/www/.htpasswd heinz
debian (6):
htpasswd -c /srv/www/.htpasswd heinz
Achtung: Die Datei ''/srv/www/.htpasswd'' wird dabei überschrieben!
=== weitere Benutzer anlegen ===
openSuSE (12.3):
htpasswd2 .htpasswd elke
debian (6):
htpasswd .htpasswd elke
=== Konfiguration ===
In der Kontextdirektive oder in der ''.htaccess'' folgende Optionen setzen:
AuthType Basic
AuthName "Bitte Username und Passwort"
AuthBasicProvider file
AuthUserFile /srv/www/.htpasswd
Require valid-user
==== Nutzung einer Gruppendatei ====
Modul laden:
a2enmod authz_groupfile
service apache2 restart
Aufbau der Gruppendatei ''/srv/www/.htgroup''
gf: peter heinz gerd
sekretariat: elke heinz
Änderung in der ''.htaccess''
AuthType Basic
AuthName "Bitte Username und Passwort"
AuthBasicProvider file
AuthUserFile /srv/www/.htpasswd
AuthGroupFile /srv/www/.htgroup
Require group gf