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

Nächste Überarbeitung
Vorherige Überarbeitung
lpi2:apache_zugriffskontrolle [2014/09/23 08:18]
127.0.0.1 Externe Bearbeitung
lpi2:apache_zugriffskontrolle [2019/04/07 20:18] (aktuell)
Zeile 1: Zeile 1:
-====== ​Einfache ​Zugriffskontrolle ====== +====== Zugriffskontrolle ====== 
-===== Zugriffsteuerung per IP/​Hostname  ​=====+===== 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>​ 
 +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/​intern/​wiki/​.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>​ 
 + 
 +===== Apache 2.2 ===== 
 +==== Zugriffsteuerung per IP/​Hostname ​ ====
  
 In Apache kann mittels ​ In Apache kann mittels ​
Zeile 12: Zeile 162:
  
 <​file>​ <​file>​
-<​Directory /srv/www/htdocs/intern>+<​Directory /​srv/​www/​intern>​
   order deny,allow   order deny,allow
   deny from All   deny from All
Zeile 28: Zeile 178:
  
 <​file>​ <​file>​
-<​Directory /srv/www/htdocs/intern>+<​Directory /​srv/​www/​intern>​
   order allow,deny   order allow,deny
   allow from 10.0.0.0/​24 ​ .linuxhotel.de 127.0.0.1   allow from 10.0.0.0/​24 ​ .linuxhotel.de 127.0.0.1
Zeile 36: Zeile 186:
 Erst werden die allow-Regeln ausgewertet,​ danach die deny-Regeln,​ falls keine Regel greift gilt deny Erst werden die allow-Regeln ausgewertet,​ danach die deny-Regeln,​ falls keine Regel greift gilt deny
  
-===== Eigene Projekte / Configdateien ​=====+==== Eigene Projekte / Configdateien ====
  
 openSuSE: openSuSE:
Zeile 44: Zeile 194:
 ''/​etc/​apache2/​conf.d/​wiki.conf''​ ''/​etc/​apache2/​conf.d/​wiki.conf''​
  
-===== Auslagerung in .htaccess ​=====+==== Auslagerung in .htaccess ====
  
 In Kontextdirektiven lassen sich die Konfigurationswerte durch allowoverride auslagern. In Kontextdirektiven lassen sich die Konfigurationswerte durch allowoverride auslagern.
Zeile 51: Zeile 201:
  
 <​file>​ <​file>​
-<​Directory /srv/www/htdocs/wiki>+<​Directory /​srv/​www/​wiki>​
  
    ​Allowoverride All    ​Allowoverride All
Zeile 59: Zeile 209:
 </​file>​ </​file>​
  
-Die Datei ''/​srv/​www/htdocs/​wiki/​.htaccess''​ hat folgenden Inhalt:+Die Datei ''/​srv/​www/​wiki/​.htaccess''​ hat folgenden Inhalt:
  
 <​file>​ <​file>​
Zeile 66: Zeile 216:
 </​file>​ </​file>​
  
-===== Benutzerauthentifizierung ​=====+==== Benutzerauthentifizierung ====
 Einfache Benutzeridentifikation mittels Passwortdatei Einfache Benutzeridentifikation mittels Passwortdatei
  
Zeile 89: Zeile 239:
 AuthName ​       "Bitte Username und Passwort"​ AuthName ​       "Bitte Username und Passwort"​
 AuthBasicProvider file AuthBasicProvider file
-AuthUserFile ​   /srv/www/htdocs/​wiki/​.htpasswd+AuthUserFile ​   /​srv/​www/​wiki/​.htpasswd
 Require ​        ​valid-user Require ​        ​valid-user
 </​file>​ </​file>​
Zeile 95: Zeile 245:
 ==== Nutzung einer Gruppendatei ==== ==== Nutzung einer Gruppendatei ====
  
-Aufbau der Gruppendatei ​ ''/​srv/​www/htdocs/​wiki/​.htgroup''​+Aufbau der Gruppendatei ​ ''/​srv/​www/​wiki/​.htgroup''​
  
 <​file>​ <​file>​
Zeile 108: Zeile 258:
 AuthName ​       "Bitte Username und Passwort"​ AuthName ​       "Bitte Username und Passwort"​
 AuthBasicProvider file AuthBasicProvider file
-AuthUserFile ​   /srv/www/htdocs/​wiki/​.htpasswd +AuthUserFile ​   /​srv/​www/​wiki/​.htpasswd 
-AuthGroupFile ​  /​srv/​www/htdocs/​wiki/​.htgroup+AuthGroupFile ​  /​srv/​www/​wiki/​.htgroup
 Require ​        group gf Require ​        group gf
 </​file>​ </​file>​
  
lpi2/apache_zugriffskontrolle.1411460339.txt.gz · Zuletzt geändert: 2015/07/09 09:12 (Externe Bearbeitung)