Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung Nächste Überarbeitung Beide Seiten, nächste Überarbeitung | ||
lpi2:apache_zugriffskontrolle [2014/09/23 08:18] 127.0.0.1 Externe Bearbeitung |
lpi2:apache_zugriffskontrolle [2016/12/08 11:14] ingo_wichmann [Auslagerung in .htaccess] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Einfache Zugriffskontrolle ====== | + | ====== Zugriffskontrolle ====== |
- | ===== Zugriffsteuerung per IP/Hostname ===== | + | ===== Apache 2.4 ===== |
+ | ==== Auslagerung in .htaccess ==== | ||
+ | Bei openSuSE (42.1) bitte ''/srv/www/htdocs'' an Stelle von ''/srv/www/intern'' verwenden. Bei CentOS bitte ''/var/www/intern'' verwenden. | ||
+ | |||
+ | Mit Hilfe von ''AllowOverride'' können Einstellungen ausgelagert werden: | ||
+ | |||
+ | <file> | ||
+ | Alias /intern /srv/www/intern | ||
+ | |||
+ | <Directory /srv/www/intern> | ||
+ | AllowOverride AuthConfig | ||
+ | Require all denied | ||
+ | </Directory> | ||
+ | </file> | ||
+ | |||
+ | Ist jetzt der Zugriff auf Dateien im Verzeichnis ''/srv/www/intern'' erlaubt? | ||
+ | |||
+ | Die Datei ''/srv/www/intern/.htaccess'' hat folgenden Inhalt: | ||
+ | |||
+ | <file> | ||
+ | Require all granted | ||
+ | </file> | ||
+ | |||
+ | Ist der Zugriff auf Dateien im Verzeichnis ''/srv/www/intern'' erlaubt? | ||
+ | |||
+ | ==== RequireAny vs. RequireAll vs. RequireNone ==== | ||
+ | === RequireAny === | ||
+ | |||
+ | <file> | ||
+ | Require ip 192.168.1 | ||
+ | Require all denied | ||
+ | </file> | ||
+ | |||
+ | ist das selbe wie: | ||
+ | <file> | ||
+ | <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> | ||
+ | <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> | ||
+ | <RequireNone> | ||
+ | Require ip 192.168.1 | ||
+ | </RequireNone> | ||
+ | </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 139: | ||
<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 155: | ||
<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 163: | ||
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 171: | ||
''/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 178: | ||
<file> | <file> | ||
- | <Directory /srv/www/htdocs/wiki> | + | <Directory /srv/www/wiki> |
Allowoverride All | Allowoverride All | ||
Zeile 59: | Zeile 186: | ||
</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 193: | ||
</file> | </file> | ||
- | ===== Benutzerauthentifizierung ===== | + | ==== Benutzerauthentifizierung ==== |
Einfache Benutzeridentifikation mittels Passwortdatei | Einfache Benutzeridentifikation mittels Passwortdatei | ||
Zeile 89: | Zeile 216: | ||
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 222: | ||
==== 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 235: | ||
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> | ||