Aktionen

Apache2 Ubuntu 20.04 GeoIP Blocking einrichten

Aus znilwiki

Changelog: 2021-01-30 erste Version


Vorwort

Ich setze für diverse Dienste/Programme/Zugriffe immer jeweils eine Subdomain ein.
Am Standort wo auch diese Webseite gehostet wird habe ich mehrere öffentliche IP-Adressen hinter einer pfSense Firewall.
Auf diese nutze ich schon seit Jahren ein GeoIP-Blocking und erlaube den Zugriff auf bestimmte Dienste z.B. nur aus Deutschland.

Zu Hause habe ich inzwischen auch eine feste IP-Adresse und auch dort einiges laufen was über diverse Subdomänen erreichbar ist.
Nur habe ich dort "nur" eine FritzBox dazwischen welche per NAT die Ports 80 und 443 auf einen internen Server mit einem Apache2 weiterleitet.
Dieser hostet einiges selbst bzw. dient als Reverse Proxy zu diversen anderen Diensten/Geräten.
Um auch hier den Zugriff einzuschränken brauchte ich also eine Lösung die auf dem Ubuntu-Server ansetzt statt auf dem Router/Firewall.

Ich arbeite hier immer als root, alle Befehle sind deshalb immer ohne sudo davor, mit

sudo -i

könnt auch Ihr dauerhaft (für die Sitzung) zum root wechseln.


Zugriff auf MaxMind GeoIP Datenbank geolite2 erhalten

Zunächst brauchen wir eine Liste / Datenbank mit allen IP-Adressen und deren Zugehörigkeit zu den verschiedenen Ländern.
Ich setze hier die kostenlose Datenbank geolite2 von MaxMind ein, die wird etwa einmal in der Woche aktualisiert und dröselt die Adressen bis auf Ländereben auf was für unsere Zwecke reicht.
Zunächst müsst Ihr euch registrieren:

https://www.maxmind.com/en/geolite2/signup

Wenn Ihr euch danach erfolgreich angemeldet habt könnten Ihr in den Account-Einstellungen unter My License Key einen neuen Zugriffsschlüssel erstellen:

ClipCapIt-210130-124342.PNG

Vergebt einen passenden Namen (z.B. des Servers auf welchem Ihr das einsetzen wollt) und setzt die Einstellungen wie folgt:

ClipCapIt-210130-124623.PNG


Dann seht Ihr eine Seite wo euch der Key angezeigt wird - notiert auch die Daten, es gibt keine Möglichkeit sich das noch einmal anzeigen zu lassen !!!!!

ClipCapIt-210130-124804.PNG

Die Datei geoIP.conf könnt auch gleich herunterladen und speichern.


GeoIP Update installieren und einrichten

MaxMind bietet ein Tool an welches automatisch die Datenbank herunterladen und aktualisieren kann - geoipupdate.
Und für Ubuntu sogar als Repository so das man sich um Updates auch nicht extra manuell bemühen muss.
Wir fügen das Repository hinzu:

add-apt-repository ppa:maxmind/ppa

danach ein

apt update
apt upgrade -y
apt install geoipupdate


Quellen


Kommentare

steffenrehfuss@web.de
45 Monaten zuvor
Punktzahl 0 Du
Vielen Dank für die Anleitung. Hat hervorragend funktioniert. Genau was ich gesucht habe!
Hopp
42 Monaten zuvor
Punktzahl 0 Du
Auch vielen vielen Dank für die Anleitung. Hat auch bei mir super funktioniert mit Bitnami und Lightsail.
Beyond
37 Monaten zuvor
Punktzahl 0 Du
Vielen Dank für die super Anleitung! Alles funktioniert soweit wie gewünscht.

Mir fehlt nur gerade die Idee, zusätzlich das lokale private Netzwerk zu erlauben. Da ich von dort ja mit einer privaten IP zugreife und somit nicht in das DE Raster falle. Hast du dazu eine Idee?

BLinz
37 Monaten zuvor
Punktzahl 0++
einfach eine Zeile mit allow from 192.168.1.0/24 ergänzen (passendes Netzwerk nehmen
Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen. Bei einem Kommentar wird deine IP-Adresse zusammen mit dem Text, den angegebenen Namen bzw. der Email-Adresse in der Datenbank für die Kommentare dauerhaft gespeichert. Genaueres kannst du hier nachlesen: Datenschutzerklärung
___________________________________________________________________________
Bitte beachte das der eingetragene Name oder die Email-Adresse für jeden sichtbar ist!