Webseitenzugriffe mit GeoIP sperren

Wenn Sie eine länderspezifische Webseite betreiben oder Ihre Seite vor Angriffen aus bestimmten Ländern oder Städten schützen möchten, bietet es sich an, mittels GeoIP eine entsprechende Sperre für die gewünschten Regionen zu hinterlegen.

Die Zuordnung der IP-Adressen mit Ländern und/oder Städten erfolgt über eine GeoIP-Datenbank, die auf Ihrem Webpaket hinterlegt sein muss. Auf allen Webpaketen ist standardmäßig die Länderdatenbank von GeoIP bereits hinterlegt (/usr/share/GeoIP/GeoIP.dat). Sie können die bereits vorhandene Datenbank verwenden oder eigene Datenbanken in Ihren Account herunterladen (siehe unten). Grundsätzlich lässt sich GeoIP über den Apache oder über PHP aktivieren.

 

Aktivierung mittels Apache:

- Fügen Sie im Adminpanel unter Server => Apache-Konfiguration => Eigene Apache-Einträge in das untere Feld folgende Zeilen hinzu:

LoadModule geoip_module /usr/lib/apache2/modules/mod_geoip.so
<IfModule mod_geoip.c>
  GeoIPEnable On
  GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
  GeoIPScanProxyHeaders On
</IfModule>


Bei Verwendung einer eigenen Länder- oder Städtedatenbank muss diese vorher heruntergeladen und in das unten angegebene Verzeichnis abgelegt werden:

LoadModule geoip_module /usr/lib/apache2/modules/mod_geoip.so
<IfModule mod_geoip.c>
  GeoIPEnable On
  GeoIPDBFile /Pfad/zur/Datei/GeoIP.dat
  GeoIPScanProxyHeaders On
</IfModule>

Somit ist GeoIP in Ihrer Systemumgebung aktiv und muss nur noch konfiguriert werden. Dies erfolgt in einer .htaccess-Datei. Platzieren Sie also eine Datei namens .htaccess im Document-Root-Verzeichnis Ihrer gewünschten Domain. Bei bereits vorhandenen .htaccess-Dateien fügen Sie die Zeilen einfach an einer geeigneten Stelle ein und passen diese nach Ihren Wünschen an:


GeoIPEnable On
# Put countries to deny here     
SetEnvIf GEOIP_COUNTRY_CODE CN DenyCountry 
SetEnvIf GEOIP_COUNTRY_CODE KR DenyCountry 
SetEnvIf GEOIP_COUNTRY_CODE KP DenyCountry   
Deny from env=DenyCountry

 

Aktivierung mittels PHP:

- Fügen Sie im Adminpanel unter Server => php.ini-Konfiguration => Eigene php.ini-Konfiguration in das untere Feld folgende Zeile hinzu:

extension=geoip.so

Die Konfiguration von GeoIP muss in diesem Fall in Ihrem PHP-Skript erfolgen. Hierfür gibt es verschiedenste Möglichkeiten, welche vom Aufbau des Skripts abhängen, weshalb wir hierfür keine Dokumentation anbieten können.

 

Die einzelnen Ländercodes sind zu finden unter https://countrycode.org/

Weitere Länder- und Städtedatenbanken finden Sie unter https://dev.maxmind.com/geoip/geoip2/geolite2/