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
lpi2:apache_zugriffskontrolle [2015/07/09 12:10]
ingo_wichmann [Auslagerung in .htaccess]
lpi2:apache_zugriffskontrolle [2022/03/31 13:51] (aktuell)
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? ​
-Mit Hilfe von ''​AllowOverride'' ​können Einstellungen ausgelagert werden: ​+
  
-<​file>​ +==== .htaccess anlegen ====
-<​Directory /​srv/​www/​intern>​ +
-  AllowOverride AuthConfig +
-  Require all denied +
-</​Directory>​ +
-</​file>​+
  
-Die Datei ''​/​srv/​www/​intern/​.htaccess''​ hat folgenden Inhalt:  +<file txt /​srv/​www/​intern/​.htaccess>​ 
- +Require all denied
-<file+
-Require all granted+
 </​file>​ </​file>​
  
 Ist der Zugriff auf Dateien im Verzeichnis ''/​srv/​www/​intern''​ erlaubt? ​ Ist der Zugriff auf Dateien im Verzeichnis ''/​srv/​www/​intern''​ erlaubt? ​
  
-==== Benutzerauthentifizierung ​==== +==== RequireAny vs. RequireAll vs. RequireNone ​==== 
-Einfache Benutzeridentifikation mittels Passwortdatei+=== RequireAny ===
  
-==== Anlegen der Passwortdatei ==== +<​file ​txt /srv/www/intern/.htaccess>​ 
-openSuSE (12.3): +Require ip 192.168.1 
-  htpasswd2 -c .htpasswd heinz +Require ​all denied
-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 198: 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
 AuthName ​       "Bitte Username und Passwort"​ AuthName ​       "Bitte Username und Passwort"​
 AuthBasicProvider file AuthBasicProvider file
-AuthUserFile ​   /srv/www/wiki/.htpasswd+AuthUserFile ​   /​srv/​www/​.htpasswd
 Require ​        ​valid-user Require ​        ​valid-user
 </​file>​ </​file>​
  
 ==== 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 224: 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.1436443852.txt.gz · Zuletzt geändert: 2015/07/09 12:10 von ingo_wichmann