Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi2:apache_zugriffskontrolle

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

<Directory /srv/www/intern>
  AllowOverride AuthConfig
</Directory>
mkdir -p /srv/www/intern
apachectl configtest
apachectl graceful

Ist jetzt der Zugriff auf Dateien im Verzeichnis /srv/www/intern erlaubt?

.htaccess anlegen

/srv/www/intern/.htaccess
Require all denied

Ist der Zugriff auf Dateien im Verzeichnis /srv/www/intern erlaubt?

RequireAny vs. RequireAll vs. RequireNone

RequireAny

/srv/www/intern/.htaccess
Require ip 192.168.1
Require all denied

ist das selbe wie:

/srv/www/intern/.htaccess
<RequireAny>
  Require ip 192.168.1
  Require all denied
</RequireAny>

Wenn der Client aus dem Subnetz 192.168.1 kommt, dann darf er zugreifen. Sonst nicht.

RequireAll

/srv/www/intern/.htaccess
<RequireAll>
  Require ip 192.168.1
</RequireAll>

Wenn der Client aus dem Subnetz 192.168.1 kommt, dann darf er zugreifen. Sonst nicht.

RequireNone

/srv/www/intern/.htaccess
<RequireNone>
  Require ip 192.168.1
</RequireNone>

ErrorLog beachten!

Verschachtelte Blöcke aus All, Any und None

RequireNone = Verneinung dessen was innerhalb des Blocks steht - „darf nicht erfüllt sein“

/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>

Auswertungsreihenfolge der Sektionen

<Files "*">
  Require all granted
</Files>
<Directory /srv/www/intern>
  Require all denied
</Directory>

Files wird nach Directory ausgewertet und gewinnt → Zugriff auf Dateien im Verzeichnis /srv/www/intern ist erlaubt

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
lpi2/apache_zugriffskontrolle.txt · Zuletzt geändert: 2022/03/31 13:51 von ingo_wichmann