Zugriff auf Apache vHosts vom internen Netzwerk erlauben, aber für externe Netzwerkzugriffe absichern
Gerade bei einfachen Netzwerkdiensten, wie z.B. einem Medienserver, soll im internen Netzwerk der Zugriff uneingeschränkt möglich sein, aber sobald jemand aus dem Internet darauf zuzugreifen versucht, dies entweder untersagt oder mittels Passwort geschützt sein. Dazu lässt sich die Konfiguration des virtuellen Hosts entsprechend anpassen, um für einzelne IP-Bereiche bereits gemachte Einschränkungen wieder aufzuheben.
Konfiguration ab Apache 2.4
Ab Apache 2.4 wird die RequireAny-Direktive genutzt, um Ausnahmen für die aktivierte Basic-Authentifizierung zu schaffen. In diesem Fall wird der Zugriff gestattet, wenn der Nutzer entweder eine IP aus dem Netzwerk 192.168.0.* nutzt oder einen gültiger Nutzer (Authentifizierung) ist.
<Directory "/srv/www/mediaserver">
AuthType Basic
AuthName "Authentication required"
AuthUserFile /srv/www/mediaserver
<RequireAny>
Require ip 192.168.0
Require valid-user
</RequireAny>
</Directory>
Konfiguration bis Apache 2.4
Bis Apache 2.4 wird zum Erreichen der selben Konfiguration die Satisfy-Direktive verwendet.
<Directory "/srv/www/mediaserver">
AuthType Basic
AuthName "Authentication required"
AuthUserFile /srv/www/mediaserver
require valid-user
Order deny,allow
Deny from all
Allow from 192.168.0
Satisfy Any
</Directory>