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
Nächste Überarbeitung
Vorherige Überarbeitung
Letzte Überarbeitung Beide Seiten, nächste Überarbeitung
lpi2:apache_zugriffskontrolle [2015/07/09 10:47]
ingo_wichmann [RequireAny vs. RequireAll]
lpi2:apache_zugriffskontrolle [2022/03/31 13:51]
ingo_wichmann [Benutzerauthentifizierung]
Zeile 1: Zeile 1:
-====== ​Einfache ​Zugriffskontrolle ======+====== Zugriffskontrolle ======
 ===== Apache 2.4 ===== ===== Apache 2.4 =====
-==== RequireAny vsRequireAll ​==== +==== Auslagerung in .htaccess ​==== 
-=== RequireAny ===+Mit Hilfe von ''​AllowOverride''​ können Einstellungen ausgelagert werden: ​
  
-<​file>​ +''​/etc/apache2/​conf-enabled/intern.conf'':​ (Debian ab 8)
-<​Directory ​/srv/www/intern+
-  Require ip 192.168.1 +
-  Require all denied +
-</​Directory>​ +
-</​file>​+
  
-ist das selbe wie: +''​/etc/apache2/​conf.d/intern.conf'':​ (SuSE)
-<​file>​ +
-<​Directory ​/srv/www/intern+
-  <​RequireAny>​ +
-    Require ip 192.168.1 +
-    Require all denied +
-  </​RequireAny>​ +
-</​Directory>​ +
-</​file>​+
  
-Wenn der Client aus dem Subnetz 192.168.1 kommt, dann darf er zugreifen. Sonst nicht.  +''/​etc/​httpd/​conf.d/intern.conf'':​ (CentOS)
- +
-=== RequireAll ===+
 <​file>​ <​file>​
-<​Directory ​/​srv/​www/​intern+LogLevel warn authz_core:​debug 
-  <​RequireAll>​ +Alias /​intern ​/​srv/​www/​intern
-    Require ip 192.168.1 +
-  </​RequireAll>​ +
-</​Directory>​ +
-</​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]] 
- 
-=== Auswertungsreihenfolge der Sektionen === 
-<​file>​ 
-<Files "​*">​ 
-  Require all granted 
-</​Files>​ 
 <​Directory /​srv/​www/​intern>​ <​Directory /​srv/​www/​intern>​
-  ​Require all denied+  ​AllowOverride AuthConfig
 </​Directory>​ </​Directory>​
 </​file>​ </​file>​
  
-''​Files''​ wird nach ''​Directory''​ ausgewertet und gewinnt ​-> Zugriff auf Dateien im Verzeichnis ''​/​srv/​www/​intern''​ ist erlaubt+  mkdir -/​srv/​www/​intern
  
-  ​* [[https://​httpd.apache.org/​docs/​2.4/​sections.html#​merging|Apache Dokumentation zu Sektionen]]+  ​apachectl configtest 
 +  apachectl graceful
  
-==== Auslagerung in .htaccess ====+Ist jetzt der Zugriff auf Dateien im Verzeichnis ''/​srv/​www/​intern''​ erlaubt? ​
  
-In Kontextdirektiven lassen sich die Konfigurationswerte durch allowoverride auslagern.+==== .htaccess anlegen ====
  
-z.B.: ''/​etc/​apache2/​conf.d/​wiki.conf''​ +<​file ​txt /srv/www/intern/​.htaccess
- +Require all denied
-<file+
-<​Directory ​/srv/www/wiki+
- +
-   ​Allowoverride All +
-#  Allowoverride Auth +
- +
-</​Directory>​+
 </​file>​ </​file>​
  
-Die Datei ''/​srv/​www/​wiki/​.htaccess'' ​hat folgenden Inhalt:+Ist der Zugriff auf Dateien im Verzeichnis ​''/​srv/​www/​intern'' ​erlaubt? ​
  
-<​file>​ +==== RequireAny vsRequireAll vsRequireNone ==== 
-order allow,​deny +=== RequireAny ===
-allow from 192.168127+
-</​file>​+
  
-==== Benutzerauthentifizierung ==== +<​file ​txt /srv/www/intern/.htaccess>​ 
-Einfache Benutzeridentifikation mittels Passwortdatei +Require ip 192.168.1 
- +Require ​all denied
-==== Anlegen der Passwortdatei ==== +
-openSuSE (12.3): +
-  htpasswd2 -c .htpasswd heinz +
-debian (6): +
-  htpasswd -c .htpasswd heinz +
- +
-Achtung Erweiterung der Datei mittels +
- +
-openSuSE (12.3): +
-  htpasswd2 ​ .htpasswd elke +
-debian (6): +
-  htpasswd ​ .htpasswd elke +
- +
-In der Kontextdirektive oder im ''​.htaccess''​ folgende Optionen setzen +
- +
-Beispieldatei ''​.htaccess''​  +
-<file+
-AuthType ​       Basic +
-AuthName ​       "Bitte Username und Passwort"​ +
-AuthBasicProvider file +
-AuthUserFile ​   ​/srv/www/wiki/.htpasswd +
-Require ​        valid-user+
 </​file>​ </​file>​
  
-==== Nutzung einer Gruppendatei ==== +ist das selbe wie: 
- +<file txt /srv/www/intern/.htaccess>​ 
-Aufbau der Gruppendatei ​ ''​/srv/www/wiki/.htgroup''​ +<RequireAny
- +  ​Require ip 192.168.1 
-<file+  ​Require all denied 
-gf:  peter heinz gerd +</​RequireAny>​
-sekretariat:​ elke heinz+
 </​file>​ </​file>​
  
-Änderung in der ''​.htaccess''​+Wenn der Client aus dem Subnetz 192.168.1 kommt, dann darf er zugreifen. Sonst nicht
  
-<file+=== RequireAll === 
-AuthType ​       Basic +<​file ​txt /srv/www/intern/.htaccess>​ 
-AuthName ​       "Bitte Username und Passwort"​ +<​RequireAll>​ 
-AuthBasicProvider file +  Require ip 192.168.1 
-AuthUserFile ​   ​/srv/www/wiki/.htpasswd +</​RequireAll>​
-AuthGroupFile ​  /​srv/​www/​wiki/​.htgroup +
-Require ​        group gf+
 </​file>​ </​file>​
  
-===== Apache 2.2 ===== +Wenn der Client aus dem Subnetz 192.168.1 kommt, dann darf er zugreifen. Sonst nicht
-==== Zugriffsteuerung per IP/​Hostname ​ ====+
  
-In Apache ​kann mittels ​+  * [[https://​httpd.apache.org/​docs/​2.4/​howto/​access.html|Apache ​Dokumentation zu Zugriffskontrolle]]
  
-Fall 1: +=== RequireNone === 
-<​file>​ +<​file ​txt /​srv/​www/​intern/​.htaccess
-order deny,allow+<​RequireNone>​ 
 +  Require ip 192.168.1 
 +</​RequireNone>​
 </​file>​ </​file>​
  
-Per Directory / Location / File +ErrorLog beachten!
  
-<​file>​ +=== Verschachtelte Blöcke aus All, Any und None === 
-<Directory ​/​srv/​www/​intern>​ +RequireNone = Verneinung dessen was innerhalb des Blocks steht - "darf nicht erfüllt sein" 
-  order deny,allow +<file txt /​srv/​www/​intern/.htaccess
-  ​deny from All +<​RequireAll>​ 
-  allow from 10.0.0.0/​24 ​ .linuxhotel.de 127.0.0.1 +  ​<​RequireAny>​ 
-</Directory+    ​Require ip 192.168.1 
-</file> +    Require ip 10.0.0.0/24 
- +  </​RequireAny>​ 
-Erst werden die deny-Regeln ausgewertet,​ danach die allow-Regeln,​ falls keine Regel greift gilt allow +  <​RequireNone>​ 
- +    Require ip 192.168.1.208 
- +  </RequireNone
-Fall 2: +</RequireAll>
-<​file>​ +
-order allow,deny+
 </​file>​ </​file>​
  
 +=== Auswertungsreihenfolge der Sektionen ===
 <​file>​ <​file>​
 +<Files "​*">​
 +  Require all granted
 +</​Files>​
 <​Directory /​srv/​www/​intern>​ <​Directory /​srv/​www/​intern>​
-  ​order allow,​deny +  ​Require all denied
-  allow from 10.0.0.0/​24 ​ .linuxhotel.de 127.0.0.1+
 </​Directory>​ </​Directory>​
 </​file>​ </​file>​
  
-Erst werden die allow-Regeln ​ausgewertet, danach die deny-Regeln, falls keine Regel greift gilt deny+''​Files''​ wird nach ''​Directory'' ​ausgewertet ​und gewinnt ​-> Zugriff auf Dateien im Verzeichnis ''/​srv/​www/​intern''​ ist erlaubt
  
-==== Eigene Projekte / Configdateien ==== +  * [[https://httpd.apache.org/docs/2.4/sections.html#merging|Apache Dokumentation zu Sektionen]]
- +
-openSuSE: +
- +
-Am besten die eigenen Konfigurationen in folgendem Pfad ablegen mit der Endung .conf +
- +
-''​/etc/apache2/​conf.d/wiki.conf''​ +
- +
-==== Auslagerung in .htaccess ==== +
- +
-In Kontextdirektiven lassen sich die Konfigurationswerte durch allowoverride auslagern. +
- +
-z.B.: ''​/etc/apache2/​conf.d/wiki.conf''​ +
- +
-<​file>​ +
-<​Directory /​srv/​www/​wiki>​ +
- +
-   ​Allowoverride All +
- ​Allowoverride Auth +
- +
-</​Directory>​ +
-</​file>​ +
- +
-Die Datei ''/​srv/​www/​wiki/​.htaccess''​ hat folgenden Inhalt: +
- +
-<​file>​ +
-order allow,​deny +
-allow from 192.168. 127. +
-</​file>​+
  
 ==== Benutzerauthentifizierung ==== ==== Benutzerauthentifizierung ====
 Einfache Benutzeridentifikation mittels Passwortdatei Einfache Benutzeridentifikation mittels Passwortdatei
  
-==== Anlegen der Passwortdatei ​====+=== Anlegen der Passwortdatei ===
 openSuSE (12.3): openSuSE (12.3):
-  htpasswd2 -c .htpasswd heinz+  htpasswd2 -c /srv/www/.htpasswd heinz
 debian (6): debian (6):
-  htpasswd -c .htpasswd heinz+  htpasswd -c /srv/www/.htpasswd heinz
  
-Achtung ​Erweiterung der Datei mittels+Achtung: Die Datei ''/​srv/​www/​.htpasswd''​ wird dabei überschrieben!
  
 +=== weitere Benutzer anlegen ===
 openSuSE (12.3): openSuSE (12.3):
   htpasswd2 ​ .htpasswd elke   htpasswd2 ​ .htpasswd elke
Zeile 202: Zeile 116:
   htpasswd ​ .htpasswd elke   htpasswd ​ .htpasswd elke
  
-In der Kontextdirektive oder im ''​.htaccess''​ folgende Optionen setzen+=== Konfiguration === 
 +In der Kontextdirektive oder in der ''​.htaccess''​ folgende Optionen setzen
  
-Beispieldatei ''​.htaccess'' ​ 
 <​file>​ <​file>​
 AuthType ​       Basic AuthType ​       Basic
Zeile 214: Zeile 128:
  
 ==== Nutzung einer Gruppendatei ==== ==== Nutzung einer Gruppendatei ====
 +Modul laden:
 +  a2enmod authz_groupfile
 +  service apache2 restart
  
-Aufbau der Gruppendatei ​ ''/​srv/​www/wiki/​.htgroup''​+Aufbau der Gruppendatei ​ ''/​srv/​www/​.htgroup''​
  
 <​file>​ <​file>​
Zeile 228: Zeile 145:
 AuthName ​       "Bitte Username und Passwort"​ AuthName ​       "Bitte Username und Passwort"​
 AuthBasicProvider file AuthBasicProvider file
-AuthUserFile ​   /srv/www/wiki/​.htpasswd +AuthUserFile ​   /​srv/​www/​.htpasswd 
-AuthGroupFile ​  /​srv/​www/wiki/.htgroup+AuthGroupFile ​  /​srv/​www/​.htgroup
 Require ​        group gf Require ​        group gf
 </​file>​ </​file>​
  
lpi2/apache_zugriffskontrolle.txt · Zuletzt geändert: 2022/03/31 13:51 von ingo_wichmann