Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
lpi2:apache_zugriffskontrolle [2016/12/08 11:14] ingo_wichmann [Auslagerung in .htaccess] |
lpi2:apache_zugriffskontrolle [2022/03/31 13:51] (aktuell) ingo_wichmann [Benutzerauthentifizierung] |
||
|---|---|---|---|
| Zeile 2: | Zeile 2: | ||
| ===== Apache 2.4 ===== | ===== Apache 2.4 ===== | ||
| ==== Auslagerung in .htaccess ==== | ==== 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: | 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> | <file> | ||
| + | LogLevel warn authz_core:debug | ||
| Alias /intern /srv/www/intern | Alias /intern /srv/www/intern | ||
| <Directory /srv/www/intern> | <Directory /srv/www/intern> | ||
| AllowOverride AuthConfig | AllowOverride AuthConfig | ||
| - | Require all denied | ||
| </Directory> | </Directory> | ||
| </file> | </file> | ||
| + | |||
| + | mkdir -p /srv/www/intern | ||
| + | |||
| + | apachectl configtest | ||
| + | apachectl graceful | ||
| Ist jetzt der Zugriff auf Dateien im Verzeichnis ''/srv/www/intern'' erlaubt? | Ist jetzt der Zugriff auf Dateien im Verzeichnis ''/srv/www/intern'' erlaubt? | ||
| - | Die Datei ''/srv/www/intern/.htaccess'' hat folgenden Inhalt: | + | ==== .htaccess anlegen ==== |
| - | <file> | + | <file txt /srv/www/intern/.htaccess> |
| - | Require all granted | + | Require all denied |
| </file> | </file> | ||
| Zeile 28: | Zeile 36: | ||
| === RequireAny === | === RequireAny === | ||
| - | <file> | + | <file txt /srv/www/intern/.htaccess> |
| Require ip 192.168.1 | Require ip 192.168.1 | ||
| Require all denied | Require all denied | ||
| Zeile 34: | Zeile 42: | ||
| ist das selbe wie: | ist das selbe wie: | ||
| - | <file> | + | <file txt /srv/www/intern/.htaccess> |
| <RequireAny> | <RequireAny> | ||
| Require ip 192.168.1 | Require ip 192.168.1 | ||
| Zeile 44: | Zeile 52: | ||
| === RequireAll === | === RequireAll === | ||
| - | <file> | + | <file txt /srv/www/intern/.htaccess> |
| <RequireAll> | <RequireAll> | ||
| Require ip 192.168.1 | Require ip 192.168.1 | ||
| Zeile 55: | Zeile 63: | ||
| === RequireNone === | === RequireNone === | ||
| - | <file> | + | <file txt /srv/www/intern/.htaccess> |
| <RequireNone> | <RequireNone> | ||
| Require ip 192.168.1 | Require ip 192.168.1 | ||
| </RequireNone> | </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> | </file> | ||
| Zeile 99: | Zeile 123: | ||
| AuthName "Bitte Username und Passwort" | AuthName "Bitte Username und Passwort" | ||
| AuthBasicProvider file | AuthBasicProvider file | ||
| - | AuthUserFile /srv/www/intern/wiki/.htpasswd | + | AuthUserFile /srv/www/.htpasswd |
| Require valid-user | Require valid-user | ||
| </file> | </file> | ||
| Zeile 123: | Zeile 147: | ||
| AuthUserFile /srv/www/.htpasswd | AuthUserFile /srv/www/.htpasswd | ||
| AuthGroupFile /srv/www/.htgroup | AuthGroupFile /srv/www/.htgroup | ||
| - | Require group gf | ||
| - | </file> | ||
| - | |||
| - | ===== Apache 2.2 ===== | ||
| - | ==== Zugriffsteuerung per IP/Hostname ==== | ||
| - | |||
| - | In Apache kann mittels | ||
| - | |||
| - | Fall 1: | ||
| - | <file> | ||
| - | order deny,allow | ||
| - | </file> | ||
| - | |||
| - | Per Directory / Location / File | ||
| - | |||
| - | <file> | ||
| - | <Directory /srv/www/intern> | ||
| - | order deny,allow | ||
| - | deny from All | ||
| - | allow from 10.0.0.0/24 .linuxhotel.de 127.0.0.1 | ||
| - | </Directory> | ||
| - | </file> | ||
| - | |||
| - | Erst werden die deny-Regeln ausgewertet, danach die allow-Regeln, falls keine Regel greift gilt allow | ||
| - | |||
| - | |||
| - | Fall 2: | ||
| - | <file> | ||
| - | order allow,deny | ||
| - | </file> | ||
| - | |||
| - | <file> | ||
| - | <Directory /srv/www/intern> | ||
| - | order allow,deny | ||
| - | allow from 10.0.0.0/24 .linuxhotel.de 127.0.0.1 | ||
| - | </Directory> | ||
| - | </file> | ||
| - | |||
| - | Erst werden die allow-Regeln ausgewertet, danach die deny-Regeln, falls keine Regel greift gilt deny | ||
| - | |||
| - | ==== Eigene Projekte / Configdateien ==== | ||
| - | |||
| - | 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 ==== | ||
| - | Einfache Benutzeridentifikation mittels Passwortdatei | ||
| - | |||
| - | ==== 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> | ||
| - | |||
| - | ==== Nutzung einer Gruppendatei ==== | ||
| - | |||
| - | Aufbau der Gruppendatei ''/srv/www/wiki/.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/wiki/.htpasswd | ||
| - | AuthGroupFile /srv/www/wiki/.htgroup | ||
| Require group gf | Require group gf | ||
| </file> | </file> | ||