Konfigurieren Sie MAXMIND für Reverse-IP-Abfragen

Was ist MAXMIND und warum sollte ich es verwenden?

Discourse nutzt MAXMIND, um geografische Informationen für Reverse-IP-Lookups bereitzustellen.

Ohne die Datenbank von Maxmind siehst du etwas wie Folgendes:

Oder vielleicht hast du diese Meldung beim Neustart deines Containers vorbeiziehen sehen:

Der Download der MaxMind-IP-Datenbank erfordert eine Kontonummer und einen Lizenzschlüssel.
Bitte setze DISCOURSE_MAXMIND_ACCOUNT_ID und DISCOURSE_MAXMIND_LICENSE_KEY. Weitere Details findest du unter https://meta.discourse.org/t/configure-maxmind-for-reverse-ip-lookups/173941.

Warum sollte mich das interessieren?

Es ist für Moderatoren oft nützlich zu sehen, von wo aus sich jemand anmeldet, um festzustellen, ob die Person wirklich dort ist, wo sie angibt zu sein, oder um Probleme auf deiner Seite zu diagnostizieren. („Ach, wir sehen häufig Probleme mit Special-ISP".)

Außerdem nutzt Discourse seit 2.2.0.beta4 diese Informationen, um Administratoren zu benachrichtigen, wenn sich jemand von einem neuen Standort anmeldet. Ohne die Maxmind-Datenbank kann Discourse diese Benachrichtigung nicht bereitstellen.

Was passiert, wenn ich kein MaxMind-Konto einrichte und keinen Lizenzschlüssel erstelle?

Du wirst keine Reverse-Lookups durchführen können. Wenn die oben genannten Probleme dich nicht betreffen, ist es sehr wahrscheinlich, dass nichts Schlechtes passiert, wenn du dies einfach ignorierst.

Wie richte ich ein MaxMind-Konto ein und erhalte eine Kontonummer sowie einen Lizenzschlüssel?

Siehe die aktuelle Anleitung auf der Maxmind-Seite Generate a license key, aber du musst:

  • Die Seite GeoLite2 registrieren aufrufen.
  • Nach dem Einloggen auf der Registerkarte Lizenzschlüssel verwalten in der linken Navigationsleiste einen Lizenzschlüssel generieren. Generiere einen neuen Schlüssel und kopiere sowohl die Kontonummer als auch den Lizenzschlüssel. Wenn du sie verlierst, musst du einen neuen generieren.

Anschließend fügst du diesen Schlüssel im ENV-Bereich deiner app.yml mit einer Zeile wie dieser hinzu:

  DISCOURSE_MAXMIND_ACCOUNT_ID: deine-kontonummer-hier
  DISCOURSE_MAXMIND_LICENSE_KEY: dein-schlüssel-hier

Oder über discourse-setup, wenn du dazu aufgefordert wirst.

Hinweise für IPv6-Nutzer

Die Standardinstallation unterstützt IPv6 von Haus aus nicht vollständig. Wenn du einen Server mit konfigurierter IPv6 hast und Maxmind-Informationen für IPv6-Adressen benötigst, musst du sicherstellen, dass die tatsächliche IP-Adresse des Benutzers bei Discourse ankommt. Dies erfolgt normalerweise über einen externen Proxy, der die Remote-IP-Adresse an Discourse weiterleitet. Dies erfordert mehr Kenntnisse in der Systemadministration als die Standardinstallation.

31 „Gefällt mir“

@pfaffman, die URL zu „Meine Lizenzschlüssel“ enthält Ihre Account-ID bei MaxMind und funktioniert daher nur für Sie :wink:

3 „Gefällt mir“

Funktioniert bei mir! :winking_face_with_tongue:

Was aber lustig ist, ist, dass sich in 3 Jahren niemand sonst beschwert hat! Es ist ein Wiki, also kannst du es beheben. Ich werde versuchen, es zu aktualisieren, wenn ich an einen Computer komme, wenn ich mich daran erinnern kann.

2 „Gefällt mir“

Zeigt, wie viele Leute Seiten wie diese tatsächlich lesen :grin:

Ich habe die Seite bearbeitet :nerd_face:

3 „Gefällt mir“

Wirklich!? Und ich habe viel Zeit damit verbracht, sie zu erstellen. Ich bin mir nicht sicher, wie ich übersehen konnte, dass der Link nur für mich funktionierte, aber ich schätze, dass das Einloggen ausreichte, um mich und vielleicht viele andere Leute abzulenken.

2 „Gefällt mir“

Nur eine Neugierfrage, @evert, meintest du, die Klammern dort zu lassen? Wenn ja, würde es vielleicht besser als Button aussehen?

Button-Beispiel

Manage License Keys

<kbd>Manage License Keys</kbd>
3 „Gefällt mir“

Sicher, warum nicht? :+1:t2:

2 „Gefällt mir“

Soweit ich das beurteilen kann, bin ich bereit
image

aber alle Benutzer zeigen den Standort „unbekannt“ an

Jede Hilfe wird geschätzt.

Sie müssen das # Zeichen vorne entfernen und neu erstellen. Das # Zeichen macht die gesamte Zeile zu einem Kommentar in der YAML-Datei.

5 „Gefällt mir“

Danke, einfach ausführen und beenden oder auch neu erstellen?

Sie müssen neu erstellen. Andernfalls erkennt Discourse keine Änderungen an app.yml.

4 „Gefällt mir“

Danke, erledigt und funktioniert :hugs:

2 „Gefällt mir“

Es versteht sich wahrscheinlich für die meisten hier von selbst, aber jemand, der ein VPN verwendet, kann mehr Warnungen generieren als andere. Es ist ein Anstoß für die Administratoren, aber es zeigt nicht unbedingt einen böswilligen Benutzer an.

2 „Gefällt mir“

Perfekt! Danke für dieses Tutorial.

1 „Gefällt mir“

Entschuldigen Sie,
Wenn Discourse für das Admin-Panel eine IP-Abfrage (Reverse-IP-Lookup) durchführt, greift es dabei auf eine Offline-GeoIP-Datenbank zurück oder fragt es jedes Mal eine externe API ab?

Vielen Dank!!

1 „Gefällt mir“

Zum Kontext, meine Präferenz ist es, IP-Lookups offline zu handhaben, indem ich Discourse auf eine lokale GeoLite2-City.mmdb-Datei verweise, anstatt eine externe API aufzurufen.

Aber immer noch keine Unterstützung für IPV6? Vielleicht ist es an der Zeit, diesen Traffic auf v4 umzuleiten ):

Nun, ich stecke fest. Ich glaube, ich habe alles richtig eingerichtet, aber ich erhalte einen 401-Fehler bei den MaxMind-DB-Downloads.

Ich verwende eine Standardinstallation, selbst gehostet und aktuell.

Ich habe ein Konto bei MaxMind angelegt und einen neuen Lizenzschlüssel hinzugefügt.

Ich habe den ENV-Abschnitt der app.yml wie folgt bearbeitet:

  ## Der MaxMind-Geolokalisierungs-IP-Schlüssel für die IP-Adressenabfrage
  ## siehe https://meta.discourse.org/t/-/137387/23 für Details
  DISCOURSE_MAXMIND_ACCOUNT_ID: [meine Account-ID]
  DISCOURSE_MAXMIND_LICENSE_KEY: [mein Lizenzschlüssel]

…danach habe ich ./launcher rebuild app ausgeführt.

Beim Neubau wurden diese „401 Unauthorized“-Fehler protokolliert:

MaxMind-Datenbank GeoLite2-City-Download fehlgeschlagen. : OpenURI::HTTPError : 401 Error
MaxMind-Datenbank GeoLite2-ASN-Download fehlgeschlagen. : OpenURI::HTTPError : 401 Error

(… und natürlich wurden keine DB-Dateien in mein /var/www/discourse/vendor/data kopiert)

Gemäß diesem Vorschlag habe ich einen Befehl verwendet, den ich auf der MaxMind Developer Portal gefunden habe – mit denselben Anmeldeinformationen – um direkt eine Datenbank herunterzuladen:

curl -O -J -L -u [meine Account-ID]:[mein Lizenzschlüssel] \
'https://download.maxmind.com/geoip/databases/GeoLite2-City/download?suffix=tar.gz'

…was problemlos funktioniert hat.

Was könnte ich übersehen haben, dass eine 401-Fehlermeldung von Discourse ausgelöst wird?