تكوين MAXMIND لعمليات البحث العكسي عن عناوين IP

What is MAXMIND and why would I want it?

Discourse uses MAXMIND to provide geographical information for reverse IP lookups.

location

Without Maxmind’s database you’ll see something like this:
nolocation

Or perhaps you’ve noticed this message fly by when you rebuild your container:

MaxMind IP database download requires an account ID and a license key
Please set DISCOURSE_MAXMIND_ACCOUNT_ID and DISCOURSE_MAXMIND_LICENSE_KEY. See https://meta.discourse.org/t/configure-maxmind-for-reverse-ip-lookups/173941 for more details.

Why would I care?

It’s often useful for moderators to see where someone is logging in from to determine if the person is who (and where) they say they are or to diagnose problems with your site. (“Oh, we frequently see problems with Special-ISP”.)

Also, as of 2.2.0.beta4, Discourse also uses this information to notify admins if a login is seen from a new location. Without the Maxmind database, Discourse cannot provide this notification.

What if I don’t setup a MaxMind account and generate a license key

You won’t be able to do reverse lookups. If the issues above do not concern you, then it is a good bet that nothing bad will happen if you just ignore this.

How do I setup a MaxMind account and obtain an Account ID and a license key?

See Maxmind’s https://support.maxmind.com/hc/en-us/articles/4407111582235-Generate-a-License-Key page for up-to-date instructions, but you need to

  • Visit the GeoLite2 Sign Up page.
  • generate a license key on the Manage License Keys tab in the left navigation bar once you’ve logged in. Generate a new key, and copy the account ID and the license key. If you lose it, you’ll need to generate a new one.

You then add that key to the ENV section of your app.yml with a line like this:

  DISCOURSE_MAXMIND_ACCOUNT_ID: your-account-id-here
  DISCOURSE_MAXMIND_LICENSE_KEY: your-key-here

Or via discourse-setup when prompted.

Notes for IPv6 users

The Standard install doesn’t fully support IPv6 out of the box. If you have a server with IPv6 configured and need Maxmind information for IPv6 addresses, you’ll need to make sure that the user’s actual IP address is what is getting to Discourse, normally by using an external proxy that passes the remote IP address to Discourse. This requires more systems administration expertise than the standard install.

31 إعجابًا

@pfaffman، يحتوي عنوان URL لـ “مفاتيح الترخيص الخاصة بي” على معرف حسابك في MaxMind وبالتالي لن يعمل لأي شخص سواك :wink:

3 إعجابات

يعمل من أجلي! :winking_face_with_tongue:
المضحك في الأمر هو أنه لم يشتكِ أحد آخر منذ 3 سنوات! إنها ويكي، لذا يمكنك إصلاحها. سأحاول التحديث عندما أصل إلى جهاز كمبيوتر إذا تمكنت من تذكر ذلك.

إعجابَين (2)

يظهر كم عدد الأشخاص الذين يقرؤون الصفحات كهذه :grin:

لقد قمت بتحرير الصفحة :nerd_face:

3 إعجابات

حقًا! وقد أمضيت وقتًا طويلاً في إنشائها. لست متأكدًا كيف فاتني أن الرابط كان يعمل بالنسبة لي فقط، ولكني أعتقد أن الاضطرار إلى تسجيل الدخول كان كافيًا لتشتيتي وربما الكثير من الأشخاص الآخرين.

إعجابَين (2)

مجرد سؤال فضولي يا @evert، هل قصدت ترك الأقواس هناك؟ إذا كان الأمر كذلك، فهل سيبدو أفضل كزر؟

مثال على زر

Manage License Keys

<kbd>Manage License Keys</kbd>
3 إعجابات

بالتأكيد، لماذا لا؟ :+1:t2:

إعجابَين (2)

حتى الآن، يبدو أنني جاهز للانطلاق

image

ولكن جميع المستخدمين يظهرون الموقع “غير معروف”

أي مساعدة ستكون محل تقدير.

تحتاج إلى إزالة الحرف # من الأمام وإعادة البناء. الحرف # يجعل السطر بأكمله تعليقًا في ملف YAML.

5 إعجابات

شكراً لك، هل تكتب وتخرج أو تعيد البناء أيضاً؟

يجب عليك إعادة البناء. لن يرى Discourse تغييرات app.yml بخلاف ذلك.

4 إعجابات

شكرا لك، تم الانتهاء والعمل :hugs:

إعجابَين (2)

ربما لا داعي لقول ذلك لمعظم الحاضرين هنا، ولكن قد يؤدي استخدام VPN إلى إنشاء المزيد من التنبيهات أكثر من غيره. إنها دفعة للمسؤولين ولكنها لا تشير بالضرورة إلى مستخدم خبيث.

إعجابَين (2)

ممتاز! شكراً لهذا البرنامج التعليمي.

إعجاب واحد (1)

عذرًا،عندما يقوم ديسكورس (Discourse) بإجراء بحث عن عنوان IP (بحث IP عكسي) للوحة الإدارة، هل يعتمد على قاعدة بيانات GeoIP غير متصلة بالإنترنت أم يستعلم من واجهة برمجة تطبيقات (API) خارجية في كل مرة؟شكرًا جزيلاً!!

إعجاب واحد (1)

للسياق، أفضّل التعامل مع عمليات البحث عن عناوين IP دون اتصال بالإنترنت عن طريق توجيه ديسكورس إلى ملف GeoLite2-City.mmdb محلي، بدلاً من استدعاء واجهة برمجة تطبيقات خارجية.

لا يدعم IPv6 حتى الآن؟ ربما حان الوقت لإعادة توجيه هذا المرور إلى v4 ):

حسنًا، أنا عالق. أعتقد أنني قمت بإعداد كل شيء بشكل صحيح، لكنني أتلقى خطأ 401 عند محاولة تنزيل قواعد بيانات MaxMind.

أنا على تثبيت قياسي، مُستضاف ذاتيًا وحديث.

أنشأت حسابًا على MaxMind، وأضفت مفتاح ترخيص جديد.

قمت بتعديل قسم ENV في ملف app.yml إلى ما يلي:

  ## مفتاح MaxMind لتحديد الموقع الجغرافي عنوان IP لاستعلام عن عنوان IP
  ## انظر https://meta.discourse.org/t/-/137387/23 للحصول على التفاصيل
  DISCOURSE_MAXMIND_ACCOUNT_ID: [معرف حسابي]
  DISCOURSE_MAXMIND_LICENSE_KEY: [مفتاح الترخيص الخاص بي]

ثم قمت بتشغيل ./launcher rebuild app

أثناء إعادة البناء، تم تسجيل هذه الأخطاء “401 غير مصرح به”:

فشل تنزيل قاعدة بيانات MaxMind GeoLite2-City: OpenURI::HTTPError : خطأ 401
فشل تنزيل قاعدة بيانات MaxMind GeoLite2-ASN: OpenURI::HTTPError : خطأ 401

(… وبالطبع، لم تصل أي ملفات قاعدة بيانات إلى مجلد /var/www/discourse/vendor/data)

بناءً على هذا الاقتراح، استخدمت أمرًا وُجد في بوابة مطوري MaxMind — باستخدام نفس بيانات الاعتماد — لتنزيل قاعدة بيانات مباشرة:

curl -O -J -L -u [معرف حسابي]:[مفتاح الترخيص الخاص بي] \
'https://download.maxmind.com/geoip/databases/GeoLite2-City/download?suffix=tar.gz'

وقد نجح الأمر تمامًا.

ما الذي قد أكون أفقده مما يسبب خطأ 401 عند الاتصال من Discourse؟