Bei sensiblen Web-Applikation wie die für das Verwalten des Mailservers (z.B. postfixadmin) oder welche die Zugriff auf die Datenbanken haben (z.B. phpmyadmin) sollte man sich nicht nur auf die Sicherheit der Applikation verlassen und stattdessen zusätzlich eine Authentifizierung über den Webserver (.htaccess) vornehmen.
Hierzu gibt es grundsätzlich zwei Möglichkeiten: Authentifizierung über die IP-Adresse und über eine HTTP-Passwortabfrage.
Doch während die erstere den Nachteil hat unflexibel zu sein (z.B. kein Zugriff mehr wenn man mal von einem Internet-Cafe dringend darauf zugreifen muss), müsste man bei zweitem immer zweimal einloggen: Einmal über die HTTP-Authentifizierung und einmal über die Web-Applikation selbst.
Doch zum Glück lassen sich diese zwei Mechanismen kombinieren, so dass man bei bekannten IPs ohne vorgängige Passwort-Abfrage direkt zum Web-Login kommt und bei „fremden“ IPs die Möglichkeit hat nach einer zusätzlichen HTTP-Authentifizierung die Web-Applikation zu erreichen.
Eine entsprechende .htaccess
könnte z.B. so aussehen:
# Access is either granted if the hostname is trusted, OR
# if password authentication succeeds
#
# SYNTAX:
# "Require ip" can be single- or multi line, i.ex.:
# Require ip <ip1> <ip2>
# or:
# Require ip <ip1>
# Require ip <ip2>
Require ip 192.168.0.50
Require host myhost.example.org
AuthType Basic
AuthName "Untrusted source IP access"
AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
#Require group staff
require valid-user
Kommt man nun entweder mit dem Hostnamen „myhost.example.org“ oder der IP: „192.168.0.50“ daher, erreicht man direkt die Webseite; bei allen anderen Quell-IPs kommt stattdessen der HTTP-Password Dialog, wo man nach erfolgreicher Anmeldung weiter kommt.
Tipp: Dieses Konstrukt lässt sich ebenfalls auf nginx abbilden.
One thought on “apache: Authentifizierung wahlweise über IP oder HTTP-Auth”