====== Zugriffskontrolle ====== ===== 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) LogLevel warn authz_core:debug Alias /intern /srv/www/intern AllowOverride AuthConfig mkdir -p /srv/www/intern apachectl configtest apachectl graceful Ist jetzt der Zugriff auf Dateien im Verzeichnis ''/srv/www/intern'' erlaubt? ==== .htaccess anlegen ==== Require all denied Ist der Zugriff auf Dateien im Verzeichnis ''/srv/www/intern'' erlaubt? ==== RequireAny vs. RequireAll vs. RequireNone ==== === RequireAny === Require ip 192.168.1 Require all denied ist das selbe wie: Require ip 192.168.1 Require all denied Wenn der Client aus dem Subnetz 192.168.1 kommt, dann darf er zugreifen. Sonst nicht. === RequireAll === Require ip 192.168.1 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 === Require ip 192.168.1 ErrorLog beachten! === Verschachtelte Blöcke aus All, Any und None === RequireNone = Verneinung dessen was innerhalb des Blocks steht - "darf nicht erfüllt sein" Require ip 192.168.1 Require ip 10.0.0.0/24 Require ip 192.168.1.208 === Auswertungsreihenfolge der Sektionen === Require all granted Require all denied ''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: AuthType Basic AuthName "Bitte Username und Passwort" AuthBasicProvider file AuthUserFile /srv/www/.htpasswd Require valid-user ==== Nutzung einer Gruppendatei ==== Modul laden: a2enmod authz_groupfile service apache2 restart Aufbau der Gruppendatei ''/srv/www/.htgroup'' gf: peter heinz gerd sekretariat: elke heinz Änderung in der ''.htaccess'' AuthType Basic AuthName "Bitte Username und Passwort" AuthBasicProvider file AuthUserFile /srv/www/.htpasswd AuthGroupFile /srv/www/.htgroup Require group gf