Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi2:apache_zugriffskontrolle

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Vorherige Überarbeitung
lpi2:apache_zugriffskontrolle [2019/04/07 20:18]
lpi2:apache_zugriffskontrolle [2022/03/31 13:51] (aktuell)
ingo_wichmann [Benutzerauthentifizierung]
Zeile 1: Zeile 1:
 +====== 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)
 +<​file>​
 +LogLevel warn authz_core:​debug
 +Alias /intern /​srv/​www/​intern
 +
 +<​Directory /​srv/​www/​intern>​
 +  AllowOverride AuthConfig
 +</​Directory>​
 +</​file>​
 +
 +  mkdir -p /​srv/​www/​intern
 +
 +  apachectl configtest
 +  apachectl graceful
 +
 +Ist jetzt der Zugriff auf Dateien im Verzeichnis ''/​srv/​www/​intern''​ erlaubt? ​
 +
 +==== .htaccess anlegen ====
 +
 +<file txt /​srv/​www/​intern/​.htaccess>​
 +Require all denied
 +</​file>​
 +
 +Ist der Zugriff auf Dateien im Verzeichnis ''/​srv/​www/​intern''​ erlaubt? ​
 +
 +==== RequireAny vs. RequireAll vs. RequireNone ====
 +=== RequireAny ===
 +
 +<file txt /​srv/​www/​intern/​.htaccess>​
 +Require ip 192.168.1
 +Require all denied
 +</​file>​
 +
 +ist das selbe wie:
 +<file txt /​srv/​www/​intern/​.htaccess>​
 +<​RequireAny>​
 +  Require ip 192.168.1
 +  Require all denied
 +</​RequireAny>​
 +</​file>​
 +
 +Wenn der Client aus dem Subnetz 192.168.1 kommt, dann darf er zugreifen. Sonst nicht. ​
 +
 +=== RequireAll ===
 +<file txt /​srv/​www/​intern/​.htaccess>​
 +<​RequireAll>​
 +  Require ip 192.168.1
 +</​RequireAll>​
 +</​file>​
 +
 +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 ===
 +<file txt /​srv/​www/​intern/​.htaccess>​
 +<​RequireNone>​
 +  Require ip 192.168.1
 +</​RequireNone>​
 +</​file>​
 +
 +ErrorLog beachten!
 +
 +=== Verschachtelte Blöcke aus All, Any und None ===
 +RequireNone = Verneinung dessen was innerhalb des Blocks steht - "darf nicht erfüllt sein"
 +<file txt /​srv/​www/​intern/​.htaccess>​
 +<​RequireAll>​
 +  <​RequireAny>​
 +    Require ip 192.168.1
 +    Require ip 10.0.0.0/24
 +  </​RequireAny>​
 +  <​RequireNone>​
 +    Require ip 192.168.1.208
 +  </​RequireNone>​
 +</​RequireAll>​
 +</​file>​
 +
 +=== Auswertungsreihenfolge der Sektionen ===
 +<​file>​
 +<Files "​*">​
 +  Require all granted
 +</​Files>​
 +<​Directory /​srv/​www/​intern>​
 +  Require all denied
 +</​Directory>​
 +</​file>​
 +
 +''​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: ​
 +
 +<​file>​
 +AuthType ​       Basic
 +AuthName ​       "Bitte Username und Passwort"​
 +AuthBasicProvider file
 +AuthUserFile ​   /​srv/​www/​.htpasswd
 +Require ​        ​valid-user
 +</​file>​
 +
 +==== Nutzung einer Gruppendatei ====
 +Modul laden:
 +  a2enmod authz_groupfile
 +  service apache2 restart
 +
 +Aufbau der Gruppendatei ​ ''/​srv/​www/​.htgroup''​
 +
 +<​file>​
 +gf:  peter heinz gerd
 +sekretariat:​ elke heinz
 +</​file>​
 +
 +Änderung in der ''​.htaccess''​
 +
 +<​file>​
 +AuthType ​       Basic
 +AuthName ​       "Bitte Username und Passwort"​
 +AuthBasicProvider file
 +AuthUserFile ​   /​srv/​www/​.htpasswd
 +AuthGroupFile ​  /​srv/​www/​.htgroup
 +Require ​        group gf
 +</​file>​