كيفية تثبيت Mod_GeoIP لـ Apache في RHEL و CentOS

instagram story viewer

Mod_GeoIP هي وحدة Apache التي يمكن استخدامها للحصول على الموقع الجغرافي لملف IP عنوان الزائر في اباتشي قاعدة بيانات للانترنت. تسمح لك هذه الوحدة بتحديد ملفات الزائر بلد, منظمة، و موقعك. إنه مفيد بشكل خاص لـ عرض الإعلانات الجغرافية, الهدف المحتوى, مكافحة البريد العشوائي, الكشف عن الغش, إعادة التوجيه / المنع الزائرين على أساس بلدهم وأكثر من ذلك بكثير.

تسمح وحدة GeoIP لمسؤولي النظام بإعادة توجيه أو حظر حركة مرور الويب وفقًا للموقع الجغرافي للعميل. يتم التعرف على الموقع الجغرافي عبر عنوان IP الخاص بالعميل.

Mod_GeoIP له نسختان مختلفتان أحدهما حر وآخر هو دفع ويستخدم MaxMind GeoIP / GeoCity قواعد بيانات.

  1. نسخة مجانية: في الإصدار المجاني ، فإن ملف جيو سيتي و قواعد البيانات القطرية متوفرة مع 99.5% صحة.
  2. النسخة المدفوعة: في الإصدار المدفوع ، ستحصل على قاعدتي البيانات بامتداد 99.8% مع بعض التفاصيل الأكثر تقدمًا حول IP تبوك.

إذا كنت ترغب في التحقق من المزيد من الاختلافات بين حر و دفع الإصدار ، يرجى زيارة Maxmind.com.

تشرح هذه المقالة كيفية إعداد وتثبيت Mod_GeoIP وحدة اباتشي في RHEL و CentOS باستخدام EPEL مستودع مع مدير الحزم YUM خدمة.

نحن نفترض أنك قمت بتشغيل بالفعل RHEL و CentOS نظام يعمل مصباح (لينكس, اباتشي, MySQL ، و بي أتش بي) يثبت. إذا لم يكن الأمر كذلك ، فاقرأ مقالاتنا حيث أظهرنا تثبيت كلا نظامي التشغيل مع مصباح.

تركيب RHEL / CentOS
  1. تركيب RHEL 7 و CentOS 7 الحد الأدنى.
  2. تركيب RHEL 8 و CentOS 8 الحد الأدنى.
إعداد LAMP على RHEL / CentOS
  1. كيفية تثبيت LAMP (Linux و Apache و MySQL و PHP) على RHEL و CentOS 7
  2. كيفية تثبيت Apache و MySQL / MariaDB و PHP على RHEL و CentOS 8

تفعيل مستودع EPEL في RHEL و CentOS

بشكل افتراضي mod_Geoip ليس متاحًا تحت RHEL / CentOS المستودع الرسمي ، لذلك نحن بحاجة إلى تثبيت وتمكين الطرف الثالث EPEL مخزن.

# yum تثبيت الإصدار epel. # يم التثبيت https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [على RHEL 8]

قم بتثبيت Mod_GeoIP في RHEL و CentOS

بمجرد الانتهاء EPEL تم تمكين المستودع على نظامك ، يمكنك ببساطة تثبيت mod_geoip عن طريق تشغيل الأمر التالي مع حزم التبعية الخاصة بهم.

# yum install mod_geoip GeoIP GeoIP-devel GeoIP-data zlib-devel. 

قم بتنزيل أحدث قاعدة بيانات Geo City و Country

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

# cd / usr / share / GeoIP / # mv GeoIP.dat GeoIP.dat_org. # wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz. # wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz. # gunzip GeoLite2-Country.tar.gz. # gunzip GeoLite2-City.tar.gz.

تفعيل Mod_GeoIP في Apache

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

# vi /etc/httpd/conf.d/geoip.conf. 

قم بتعيين الخط GeoIPEnable من عن ل على. تأكد أيضًا من إضافة المسار المطلق إلى ملف قاعدة بيانات GeoIP.


GeoIPEnable على. GeoIPDBFile /usr/share/GeoIP/GeoIP.dat MemoryCache. 

أعد تشغيل اباتشي خدمة لتعكس التغييرات.

# systemctl إعادة تشغيل httpd. أو. # إعادة تشغيل خدمة httpd

ومع ذلك ، لا يوصى بتشغيل وحدة GeoIP على مستوى الخادم. يجب عليك تمكين وحدة GeoIP بتنسيق أو كتل حيث ستقوم بالفعل بإعادة توجيه حركة المرور أو حظرها.

اختبار الوحدة النمطية Mod_GeoIP

لاختبار mod_geoip الوحدة النمطية تعمل بشكل صحيح مع Apache ، فنحن بحاجة إلى إنشاء ملف بي أتش بي ملف يسمى testgeoip.php تحت اباتشي دليل الجذر (على سبيل المثال / var / www / html).

# vi /var/www/html/testgeoip.php. 

أدخل الجزء التالي من كود php إليه.

ما هو عنوان IP الخاص بي - تحديد أو استرداد عنوان IP الخاص بيphp if (getenv (HTTP_X_FORWARDED_FOR)) {$ pipaddress = getenv (HTTP_X_FORWARDED_FOR) ؛ $ ipaddress = getenv (REMOTE_ADDR) ، صدى "عنوان IP الوكيل الخاص بك هو:". $ pipaddress. "(عبر $ ipaddress)" ؛ } else {$ ipaddress = getenv (REMOTE_ADDR) ؛ صدى "عنوان IP الخاص بك هو: $ ipaddress" ؛ } $ country = getenv (GEOIP_COUNTRY_NAME) ؛ $ country_code = getenv (GEOIP_COUNTRY_CODE) ، صدى "
بلدك: $ country ($ country_code)"؛

الآن ، حاول الاتصال بالملف باستخدام متصفح الويب (على سبيل المثال http://localhost/testgeoip.php). سوف تحصل على الخاص بك عنوان IP و دولة تفاصيل.

تحديث قاعدة بيانات GeoIP

يتم تحديث قاعدة بيانات GeoIP بداية كل شهر. لذلك ، من المهم جدًا الحفاظ على تحديث قاعدة بيانات GeoIP. لتنزيل أحدث إصدار من قاعدة البيانات ، استخدم الأمر التالي.

# cd / usr / share / GeoIP / # mv GeoIP.dat GeoIP.dat_org. # wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz. # wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz. # gunzip GeoLite2-Country.tar.gz. # gunzip GeoLite2-City.tar.gz.

التحديث التلقائي لقاعدة بيانات GeoIP

لقد قمنا بكتابة نص برمجي صغير يقوم تلقائيًا بتنزيل أحدث إصدار من قاعدة بيانات GeoIP كل شهر. فقط ضع أيًا من البرامج النصية التالية أسفل /etc/cron.monthly.

البرنامج النصي 1
# التحديث التلقائي لقاعدة بيانات GeoIP. #! / بن / ش. cd / usr / share / GeoIP. mv GeoIP.dat GeoIP.dat_org. wget -q http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz. gzip -d -f GeoLite2-Country.tar.gz
البرنامج النصي 2
#! / bin / sh GEOIP_MIRROR = " http://geolite.maxmind.com/download/geoip/database" GEOIPDIR = / usr / share / GeoIP. TMPDIR = DATABASES = "GeoLiteCity GeoLiteCountry / GeoIP asnum / GeoIPASNum GeoIPv6" if [-d "$ {GEOIPDIR}"] ؛ ثم cd $ GEOIPDIR إذا [-n "$ {DATABASES}"]؛ ثم TMPDIR = $ (التحديث الجغرافي mktemp -d. XXXXXXXXXX) صدى "تحديث قواعد بيانات GeoIP ..." لـ db في DATABASES $ ؛ do fname = $ (basename $ db) wget - no-verbose -t 3 -T 60 "$ {GEOIP_MIRROR} / $ {db} .dat.gz" -O "$ {TMPDIR} / $ {fname} .dat .gz "gunzip -fdc" $ {TMPDIR} / $ {fname} .dat.gz "> "$ {TMPDIR} / $ {fname} .dat" mv "$ {TMPDIR} / $ {fname} .dat" "$ {GEOIPDIR} / $ {fname} .dat" chmod 0644 "$ {GEOIPDIR} / $ { fname} .dat "تم [-d" $ {TMPDIR} "] && rm -rf $ TMPDIR فاي. فاي

إعادة توجيه المستخدمين على أساس الدولة

سيعيد رمز المثال أدناه توجيه المستخدمين بناءً على رمز البلد الذي قمنا بتعيينه إليه كما (آسيا). بهذه الطريقة يمكنك إعادة توجيه أي مستخدمين بناءً على كود المقاطعة الخاص بهم.

GeoIPEnable على. GeoIPDBFile /usr/share/GeoIP/GeoIP.dat # إعادة توجيه دولة واحدة. أعد كتابة المحرك على. RewriteCond٪ {ENV: GEOIP_COUNTRY_CODE} ^كما$ أعد كتابة القاعدة ^ (. *) $https://www.tecmint.com1 $ [R، L]

منع المستخدمين على أساس البلد

سيحظر هذا المثال المستخدمين بناءً على رمز البلد الذي يحدده GeoIP. المثال أدناه سيمنع المستخدمين من كما (آسيا) و نحن (الولايات المتحدة الأمريكية) الدول.

GeoIPEnable على. GeoIPDBFile /usr/share/GeoIP/GeoIP.dat SetEnvIf GEOIP_COUNTRY_CODE كما BlockCountry. SetEnvIf GEOIP_COUNTRY_CODE نحن BlockCountry. #... ضع المزيد من البلدان هنا Den from env = BlockCountry

السماح للمستخدمين على أساس البلد

سيسمح هذا المثال أدناه للمستخدمين من البلدان المذكورة أدناه فقط.

GeoIPEnable على. GeoIPDBFile /usr/share/GeoIP/GeoIP.dat SetEnvIf GEOIP_COUNTRY_CODE كما AllowCountry. SetEnvIf GEOIP_COUNTRY_CODE نحن AllowCountry. #... ضع المزيد من البلدان هنا انفي من الكل. السماح من env = AllowCountry

لمزيد من المعلومات حول mod_geoip ويمكن الاطلاع على استخدامه في http://www.maxmind.com/app/mod_geoip. إذا كنت تواجه أي مشكلة في إعداد وحدة mod_geoip ، فيرجى إخبارنا بذلك من خلال التعليقات ولا تنس مشاركتها مع أصدقائك.

Teachs.ru