IP-Sperren für bestimmte (Drupal-)Verzeichnisse in der .htaccess

Um Content-Management-Systeme wie Drupal abzusichern, macht es Sinn, dass Backend zur Pflege und Verwaltung nur bestimmten IP-Bereichen zugänglich zu machen. Eine Möglichkeit für jedes nahezu jedes CMS besteht darin, dies über die Apache-Konfiguration in der .htaccess durchzuführen, sofern das Apache-Modul mod-rewrite aktiviert ist. Wir leiten jede nicht zulässige IP-Adresse auf eine Fehlerseite (403) weiter. Ich zeige das hier mal an einem Beispiel für Drupal 7 und einer aktuellen Apache-Version (>2.4.x):

Seit der Apache 2.4 Version kann man für größere IP-Bereiche die CIDR  Schreibweise verwenden. Eine Seite zur Berechnung der IP-Bereiche findet man unter mxtoolbox oder jodies, letzterer sieht ein wenig altbacken, dafür aber übersichtlicher aus.

Befindet sich auf dem Server noch eine ältere Apache Version, z. B. 2.2.x, dann könnt ihr die RewriteCond expr so nicht verwenden. In diesem Fall sieht die Konfiguration folgendermaßen aus:

Und dann existiert noch ein Sonderfall, der ab und an bei größeren Server-Farmen, gerade bei größeren Firmen vorkommen kann, die Seiten werden über einen Proxy-Server aufgerufen und die Remote-IP Adresse (%{REMOTE_ADDR}) ist deshalb für alle Besucher die selbe. In diesem Fall muss man die X-FORWARDED-FOR Server-Variable abrufen. Das Beispiel sieht dann folgendermaßen aus (Apache > 2.4.x):

Und für den Apache bis 2.2.x:

Gerade die beiden letzten Beispiele haben mir bei einigen Server-Konfigurationen etwas Kopfzerbrechen bereitet. Ich hoffe, es hilft dem einen oder anderen weiter.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert