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)

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/intern/wiki/.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

Apache 2.2

Zugriffsteuerung per IP/Hostname

In Apache kann mittels

Fall 1:

order deny,allow

Per Directory / Location / 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>

Erst werden die deny-Regeln ausgewertet, danach die allow-Regeln, falls keine Regel greift gilt allow

Fall 2:

order allow,deny
<Directory /srv/www/intern>
  order allow,deny
  allow from 10.0.0.0/24  .linuxhotel.de 127.0.0.1
</Directory>

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

<Directory /srv/www/wiki>

   Allowoverride All
#  Allowoverride Auth

</Directory>

Die Datei /srv/www/wiki/.htaccess hat folgenden Inhalt:

order allow,deny
allow from 192.168. 127.

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

AuthType        Basic
AuthName        "Bitte Username und Passwort"
AuthBasicProvider file
AuthUserFile    /srv/www/wiki/.htpasswd
Require         valid-user

Nutzung einer Gruppendatei

Aufbau der Gruppendatei /srv/www/wiki/.htgroup

gf:  peter heinz gerd
sekretariat: elke heinz

Änderung in der .htaccess

AuthType        Basic
AuthName        "Bitte Username und Passwort"
AuthBasicProvider file
AuthUserFile    /srv/www/wiki/.htpasswd
AuthGroupFile   /srv/www/wiki/.htgroup
Require         group gf
lpi2/apache_zugriffskontrolle.txt · Zuletzt geändert: 2019/04/07 20:18 (Externe Bearbeitung)