mod_access: IP-Adressen sperren
Das Apache Modul mod_access ermöglicht es dem Webmaster bestimmte Benutzergruppen von der kostenlosen Informationsnutzung auszuschließen. Dieser Artikel erläutert den Einsatz der entsprechenden Direktiven innerhalb der Konfigurationsdatei .htaccess. Anhand eines qualifizierten Beispiels wird der faire Umgang mit den beschriebenen Access-Regularien aufgezeigt.
Motivation: Einem bestimmten Benutzerkreis mit bekanntem IP-Adressbereich soll die (kostenlose) Informationsnutzung des Webangebotes verwehrt werden.
Deus ex Machina: Das Apache Modul mod_access stellt jedem Webmaster eine einfach zu handhabende Möglichkeit zur Verfügung um bestimmten Benutzergruppen den Zugriff auf die eigenen Inhalte zu verweigern.
Paradigma: Zugriffe von Benutzern mit den IP-Adressen 217.194.34.XXX und 194.138.XX.XXX sollen unterbunden werden. Hierzu füge ich in der Datei .htaccess folgende Zeilen hinzu:
Order allow,deny
#Test (eigene IP):
#Deny from 77.191.130.92
#IP-Bereich 1:
Deny from 217.194.34
#IP-Bereich 2:
Deny from 194.138
Allow from all
Exegese: Innerhalb der Apache mod_access Syntax sind die Direktiven allow und deny vorgesehen. Die Verwendung der Orderdirektive lässt sich pragmatisch formulieren: “deny,allow” verwendet man, um viele IP auszusperren. “allow,deny” wird verwendet, um ein öffentliches Angebot für bestimmte IP explizit zu sperren. Da es sich im oben genannten Beispiel um lediglich zwei IP-Bereiche handelt, für die mein Informationsangebot gesperrt werden soll, wähle ich die Orderdirektive “allow,deny”.
Um die Funktionalität zu testen habe ich zunächst Zugriffe von meiner IP geblockt. Nach erfolgreicher Funktionsprüfung konnte ich diese durch “Auskommentieren” wieder freigeben. Im Beispiel lässt sich somit auch die Kommentarsyntax innerhalb der Datei .htaccess erkennen (#). Des weiteren ist damit nachvollziehbar, dass IP-Adressen sowohl vollständig (eigene IP) als auch partiell (IP-Bereich 1, IP-Bereich 2) – also IP-Adressbereiche – angegeben werden können. “Allow from all” gibt den Webinhalt für jedermann außer den mittels “Deny from” bezeichneten IP frei.
Die Maxime jedweden Handelns sollte auf Fairness beruhen – auch, oder erst recht, innerhalb der scheinbaren Anonymität des Internets. Aufgrund der Apache-Konfiguration wird den ausgesperrten Usern die erbarmungslose und wenig aussagekräftige Standardantwort 403 (Forbidden) präsentiert. Umsichtige Administratoren jedoch konfigurieren den .htaccess-Gebrauch in der httpd.conf für jedes Verzeichnis. Somit bietet sich dem Webmaster neben der vollständigen Sperrung des Webangebots (obige .htaccess im Root-Verzeichnis) auch die Möglichkeit, Informationen partiell für bestimmte Nutzerkreise bereitzustellen (.htaccess im zu reglementierenden Verzeichnis). Die Regeln des Unterverzeichnisses ersetzen dabei die Übergeordneten. Ergo lassen sich individuelle 403-Seiten für den ausgesperrten Benutzerkreis erzeugen. Hierzu wird die .htaccess-Datei im zu sperrenden Verzeichnis nach der Direktive mit der Zeile
ErrorDocument 403 /exception/403.html
ergänzt.
Im Verzeichnis “exception” muss selbstverständlich die entsprechende Datei 403.html existieren. Nach der oben genannten .htaccess-Regel muss nun dafür gesorgt werden, dass die individuelle 403-Seite auch für die ausgesperrten User lesbar ist. Der Inhalt der Datei / exception/.htaccess lautet wie folgt:
Order deny,allow
allow from all
Quintessenz: Das Apache Modul mod_access bietet mit den beschrieben Direktiven einen eloquenten Weg bestimmte User loyal den Zugang zu bestimmten Informationen zu verwehren.