Eigenen IP-Info Dienst betreiben

Ich beschreibe euch wie ihr einen eigenen IP-Info oder auch „wie-ist-meine-ip“ Dienst nur mit NGINX und GeoIP2 betreiben könnt.

So wurde auch der adminForge Service: ipwho.de konfiguriert.

Aufbau des Setups:

  • Ubuntu 18.04 LTS als Betriebssystem
  • NGINX Webserver: HTTP Port 80, HTTPS Port 443
  • MaxMind GeoIP: GeoLite2-City und GeoLite2-ASN Datenbanken

Punkt 1: NGINX Repository hinzufügen

Als ersten Schritt installieren wir unter Ubuntu 18.04 LTS das PPA Repo von Ondřej Surý.
Es kann auch jedes andere NGINX Repo verwendet werden, es sollte nur libnginx-mod-http-geoip2 enthalten sein!

Punkt 2: NGINX mit GeoIP2 installieren

Jetzt kann nginx installiert werden, dabei wir automatisch libnginx-mod-http-geoip2 mit installiert und geladen.

Punkt 3: NGINX vHost erstellen

Wir erstellen den vHost. Passt bitte den server_name sowie ssl_certificate und ssl_certificate_key an! Den Footer könnt ihr natürlich auch anpassen.

Wie ihr ein SSL Zertifikat erstellt beschreibe ich im Let’s Encrypt via acme.sh für Apache und Nginx Tutorial.

Wir aktivieren den vHost. Starten NGINX aber noch nicht neu!

Punkt 4: Installation der MaxMind Datenbank

Ich fasse mich gewohnt kurz, es kann auch gerne nach der offiziellen Anleitung von MaxMind vorgegangen werden.

Wir aktivieren das Repository und installieren geoipupdate.

Punkt 5: MaxMind Account erstellen und Lizenzkey

Um die MaxMind GeoLite2 Datenbanken nutzen zu können benötigen wir einen Account. Wir erstellen uns hier einen MaxMind Account. Wer sein Postfach sauber halten möchte, darf gerne unseren Trash Mailer verwenden.

Anschließend können wir uns hier einen Lizenzkey generieren.

Die Account/User ID und den License key fügen wir in diese Datei ein. Die EditionIDs Zeile kann so übernommen werden.

Punkt 6: geoipupdate

Wir lassen geoipupdate einmalig laufen und legen uns einen Cronjob an.

Punkt 7: NGINX Config prüfen

Wir prüfen ob unsere NGINX Konfiguration korrekt ist.

Sollte alles passen starten wir NGINX neu.

Punkt 8: Testen

Wenn alles richtig verlaufen ist sollte nun eine Ausgabe wie diese kommen.

 

UnterstützenDas Betreiben der Dienste, Webseite und Server machen wir gerne, kostet aber leider auch Geld.
Unterstütze unsere Arbeit mit einer Spende.

Dominion

Linux Systemadministrator

Das könnte dich auch interessieren …

5 Antworten

  1. Mike sagt:

    Hallo und guten Abend,

    ich habe mir testweise ebenfalls einen IP-Dienst nach der obigen Anleitung eingerichtet. Mir wird auch die passende IPv4-Adresse angezeigt. Selbst wenn ich meinen Dienst mit dem Handy aufrufe wird mir die IPv4-Adresse angezeigt. Rufe ich euren Dienst auf, wird mir jedoch mit IPv6-Adresse angezeigt. Habt ihr einen Tipp für mich, was ich ändern muss, damit auch mein IPv6 zurückgegeben wird? Wie schaut eure nginx.conf aus?

    Vielen Dank und Grüße
    Mike

    • Dominion sagt:

      Hallo Mike,

      wenn du der Domain eine IPv4 und eine IPv6 Adresse zuweist, dann wird die IPv6 bei der Rückgabe bevorzugt.
      Du könntest wie bei ipwho.de eine Subdomain für IPv4 und eine für IPv6 anlegen.

      Gruß
      Dominion

  2. Mike sagt:

    Hallo Dominion,

    danke für deine Antwort. Wenn ich das korrekt verstanden habe, hast du den DNS Record A von 4.ipwho.de auf die IPv4 gelegt und den Record AAAA von 6.iPhone.de auf die IPv6 des WebServers? Mein Server hat zwar auch eine IPv6 Adresse, warum auch immer werden trotzdem die Anfragen vom nginx auf IPv4 umgeleitet.

  3. Mike sagt:

    Guten Abend,

    lt netstat läuft nginx auf IPv4 und IPv6. Hab jetzt testweise die DNS Records erstellt, nun heißt es geduldig sein und in 24-48h wieder testen 😉

    Danke für deine Unterstützung.

Schreibe einen Kommentar

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