Block IP per Region NGINX

| Linux

Zugriffe aus dem fernen Osten oder den USA auf einer deutschsprachigen Website. Klingt komisch, ist es auch. Wer Zugriffe dieser Art von Anfang an blockieren möchte, kann dies ganz leicht über die Konfiguration von NGINX einstellen.

Für den Geo-IP Block brauchen wir die zusätzliche Erweiterung von NGINX mit der geoip-database. Dies erfolgt ganz einfach, sowie alle anderen Linux Installationen auch:

  1. sudo apt update
  2. sudo apt install geoip-database libgeoip1

Nun ergänzen wir die Konfiguration von NGINX mit einer Bedingung, welche Länder für unsere Seite zugelassen sind. Hier findest du eine Liste aller Ländercodes.

  1. sudo vi /etc/nginx/nginx.conf
  2. im http Bereich:
    http{
    ...
       geoip_country /usr/share/GeoIP/GeoIP.dat;
        map $geoip_country_code $allowed_country {
            default no;
            AT yes;
       }
    ...
    }
  3. sudo vi /etc/nginx/sites-available/<sitename>
  4. nun im location Bereich die Bedingung einfügen:
      location / { ...      if ($allowed_country = no) {              return 444;               } ... }

Im Schritt 2 können n-Länder hinzugefügt werden um die Bedingung zu erweitern. Hier stellen wir standardmäßig ein, das nur keine Länder erlaubt sind, außer Österreich. Sonst bekommt kein anderes Land eine Antwort. Es ist auch Möglich die Bedingung umzudrehen, indem wir "default yes;" setzen und dann einzelne Länder sperren "US no;" 

Gib mir Feedback!

Hab ich Blödsinn geschrieben oder etwas vergessen? Dann zögere nicht weiter und lass es mich sofort wissen indem du hier einen Kommentar hinterlässt!

×
Captcha Code

Kann das Bild nicht gelesen werden? Klicken Sie hier, um zu aktualisieren