Support & Oft gestellte Fragen

Geo-Blocking mit Mod MaxMind DB – Länderzugriff auf Ihre Website steuern

Mit dem Modul Mod MaxMind DB (GeoIP) können Sie den Zugriff auf Ihre Website anhand des Herkunftslandes der Besucher einschränken oder erlauben. Die Zuordnung erfolgt über die IP-Adresse des Besuchers und eine GeoIP-Datenbank von MaxMind.

Wichtige Hinweise

  • Die GeoIP-Datenbank hat eine Genauigkeit von ca. 99,8 %, ist jedoch nicht fehlerfrei.

  • Neue IP-Adressen können zeitweise falsch zugeordnet werden.

  • Besucher können Länderbeschränkungen über VPNs oder Proxys umgehen.

  • Große Unternehmen nutzen häufig internationale IP-Bereiche, wodurch Fehlzuordnungen möglich sind.

Mod MaxMind DB aktivieren

Das Modul ist auf den Hosting-Servern in der Regel bereits aktiviert. Um sicherzustellen, dass es aktiv ist, fügen Sie folgenden Code in die Datei .htaccess im Hauptverzeichnis Ihrer Website (htdocs) ein:

<IfModule mod_maxminddb.c>
    MaxMindDBEnable On
</IfModule>

Zum temporären Deaktivieren kann On durch Off ersetzt werden.

Verfügbare GeoIP-Variablen

Mod MaxMind DB stellt verschiedene Informationen zur Verfügung, darunter:

  • MM_COUNTRY_CODE – ISO-Ländercode (z. B. DE, AT, CH)

  • MM_COUNTRY_NAME – Ländername

  • MM_CITY – Stadt

  • MM_ASN – Autonomous System Number (ASN)

  • MM_ASORG – Name der ASN-Organisation

  • MM_LOCATION_TIME_ZONE – Zeitzone

  • MM_LOCATION_LATITUDE / MM_LOCATION_LONGITUDE – ungefähre Koordinaten

In den meisten Fällen wird MM_COUNTRY_CODE verwendet.

Beispiele

Zugriff aus bestimmten Ländern sperren

Folgendes Beispiel sperrt Besucher aus Russland (RU), China (CN) und den USA (US):

<IfModule mod_maxminddb.c>
    SetEnvIf MM_COUNTRY_CODE ^(RU|CN|US)$ BlockCountry
    <RequireAll>
        Require all granted
        Require not env BlockCountry
    </RequireAll>
</IfModule>

Besucher aus diesen Ländern erhalten einen 403 Forbidden-Fehler.


Zugriff nur für bestimmte Länder erlauben

Dieses Beispiel erlaubt den Zugriff ausschließlich aus Deutschland (DE) und Großbritannien (GB):

<IfModule mod_maxminddb.c>
    SetEnvIf MM_COUNTRY_CODE ^(DE|GB)$ PermitCountry

    <RequireAll>
        Require all granted
        Require env PermitCountry
    </RequireAll>
</IfModule>

Alle anderen Länder werden blockiert.


Länder per Mod_Rewrite sperren

<IfModule mod_maxminddb.c>
    RewriteEngine On
    RewriteCond %{ENV:MM_COUNTRY_CODE} ^(IE|GB|NL)$
    RewriteRule .* - [F]
</IfModule>

Besucher aus Irland, Großbritannien und den Niederlanden erhalten einen 403 Forbidden-Fehler.


Besucher aus bestimmten Ländern umleiten

Statt einer Sperre können Besucher auch auf eine andere Seite weitergeleitet werden:

<IfModule mod_maxminddb.c>
    RewriteEngine On
    RewriteCond %{ENV:MM_COUNTRY_CODE} ^(IE|GB|NL)$
    RewriteRule ^(.*)$ https://google.com [L]
</IfModule>

Mit einem vorangestellten ! kann die Logik umgekehrt werden, sodass nur bestimmte Länder Zugriff erhalten und alle anderen umgeleitet werden.


Suchmaschinen und Monitoring-Dienste zulassen

Trotz Länderbeschränkungen können bestimmte Bots oder Monitoring-Dienste weiterhin zugelassen werden:

<IfModule mod_maxminddb.c>
    SetEnvIf MM_COUNTRY_CODE ^(RU|CN|US)$ BlockCountry
    SetEnvIfNoCase User-Agent .*Googlebot.* allowed_user_agents
    SetEnvIfNoCase User-Agent .*pingdom.* allowed_user_agents

    <RequireAny>
        Require env allowed_user_agents
        <RequireAll>
            Require all granted
            Require not env BlockCountry
        </RequireAll>
    </RequireAny>
</IfModule>

Hinweis: User-Agents können gefälscht werden und sollten daher nicht als alleinige Sicherheitsmaßnahme verwendet werden.


Bestimmte Länder erlauben und einzelne IP-Adressen sperren

Beispiel: Zugriff nur aus Deutschland und Spanien, aber bestimmte IP-Adressen zusätzlich blockieren.

<IfModule mod_maxminddb.c>
    RewriteEngine On
    RewriteCond %{ENV:MM_COUNTRY_CODE} !^(DE|ES)$
    RewriteRule .* - [F]
</IfModule>

<RequireAll>
    Require all granted
    Require not ip 12.34.56.78
    Require not ip 23.45.67.89
    Require not ip 34.56.78.90
</RequireAll>

Dies eignet sich insbesondere in Kombination mit dem IP Blocker in cPanel.


ASN- oder Provider-basierte Sperren

Anstatt Länder zu sperren, können auch ganze Provider oder Rechenzentren blockiert werden.

Nach ASN sperren

<IfModule mod_maxminddb.c>
    SetEnvIf MM_ASN ^(16509)$ BlockASN

    <RequireAll>
        Require all granted
        Require not env BlockASN
    </RequireAll>
</IfModule>

Nach Organisationsnamen sperren

<IfModule mod_maxminddb.c>
    SetEnvIfNoCase MM_ASORG ^.*(AMAZON|HETZNER).*$ BlockASNOrg

    <RequireAll>
        Require all granted
        Require not env BlockASNOrg
    </RequireAll>
</IfModule>

Da große Anbieter wie AWS Millionen von IP-Adressen verwalten, sollten solche Sperren mit Bedacht eingesetzt werden.


Fazit

Mit Mod MaxMind DB können Sie den Zugriff auf Ihre Website gezielt nach Ländern, IP-Adressen oder ganzen Providern steuern. Die Funktion eignet sich beispielsweise zum Schutz vor unerwünschtem Traffic, zur Einschränkung regionaler Inhalte oder zur Reduzierung von Missbrauch. Aufgrund möglicher Fehlzuordnungen und der Umgehung per VPN sollte Geo-Blocking jedoch nicht als alleinige Sicherheitsmaßnahme betrachtet werden