কীভাবে আরএইচইল এবং সেন্টস-এ অ্যাপাচি-র জন্য Mod_GeoIP ইনস্টল করবেন


Mod_GeoIP একটি অ্যাপাচি মডিউল যা অ্যাপাচি ওয়েবসার্ভারে দর্শকের আইপি ঠিকানার ভৌগলিক অবস্থান পেতে ব্যবহার করা যেতে পারে। এই মডিউলটি আপনাকে দর্শকের দেশ, সংস্থা এবং অবস্থান নির্ধারণ করতে দেয়। এটি বিশেষত জিও বিজ্ঞাপন পরিবেশন, টার্গেট সামগ্রী, স্প্যাম ফাইটিং, জালিয়াতি সনাক্তকরণ, তাদের দেশের উপর ভিত্তি করে দর্শনার্থীদের পুনঃনির্দেশ/অবরুদ্ধকরণ এবং আরও অনেক কিছুর জন্য কার্যকর।

জিওআইপি মডিউল সিস্টেম প্রশাসককে ক্লায়েন্টের ভৌগলিক অবস্থান অনুযায়ী ওয়েব ট্র্যাফিক পুনঃনির্দেশ বা ব্লক করতে দেয়। ভৌগলিক অবস্থানটি ক্লায়েন্টের আইপি ঠিকানার মাধ্যমে শিখেছে।

মোড_জিওআইপি-র দুটি পৃথক সংস্করণ রয়েছে একটি ফ্রি এবং অন্যটির অর্থ প্রদেয় এবং ম্যাক্সমাইন্ড জিওআইপি/জিওসিটি ডেটাবেস ব্যবহার করে।

  1. ফ্রি সংস্করণ: ফ্রি সংস্করণে জিও সিটি এবং কান্ট্রি ডাটাবেসগুলি 99.5% নির্ভুলতার সাথে উপলব্ধ
  2. পেইড সংস্করণ: পেইড সংস্করণে, আপনি আইপি ঠিকানা সম্পর্কে আরও কিছু উন্নত বিশদ সহ 99.8% যথার্থতার সাথে উভয় ডাটাবেস পাবেন

আপনি যদি ফ্রি এবং পেইড সংস্করণটির মধ্যে আরও পার্থক্য পরীক্ষা করতে চান তবে দয়া করে ম্যাক্সমাইন্ড ডট কম দেখুন।

এই নিবন্ধটি ব্যাখ্যা করে যে কীভাবে YH প্যাকেজ ম্যানেজার ইউটিলিটি সহ EPEL সংগ্রহস্থলটি ব্যবহার করে RHEL এবং CentOS এ অ্যাপাচি জন্য Mod_GeoIP মডিউল সেট আপ এবং ইনস্টল করা যায়।

আমরা ধরে নিই যে আপনার কাছে ইতিমধ্যে একটি कार्यरत এলএএমপি (লিনাক্স, অ্যাপাচি, মাইএসকিউএল এবং পিএইচপি) সেটআপ সহ আরএইচইএল এবং সেন্টোস সিস্টেম চলছে। যদি তা না হয় তবে আমাদের নিবন্ধগুলি পড়ুন যেখানে আমরা এলএএমপি সহ দুটি অপারেটিং সিস্টেমের ইনস্টলেশন দেখিয়েছি।

  1. CentOS 7 ন্যূনতম ইনস্টলেশন
  2. সেন্টোস 8 ন্যূনতম ইনস্টলেশন

  1. আরএইচইএল এবং সেন্টোস on এ এলএএমপি (লিনাক্স, অ্যাপাচি, মাইএসকিউএল, পিএইচপি) কীভাবে ইনস্টল করবেন
  2. আরএইচইএল এবং সেন্টোস 8 এ অ্যাপাচি, মাইএসকিউএল/মারিয়াডিবি এবং পিএইচপি কীভাবে ইনস্টল করবেন

ডিফল্টরূপে Mod_Geoip RHEL/CentOS অফিসিয়াল সংগ্রহস্থলের অধীনে উপলভ্য নয়, সুতরাং আমাদের তৃতীয় পক্ষের EPEL সংগ্রহস্থল ইনস্টল এবং সক্ষম করতে হবে।

# yum install epel-release
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm  [On RHEL 8]

একবার আপনি আপনার সিস্টেমে EPEL সংগ্রহস্থল সক্ষম হয়ে গেলে, আপনি তাদের নির্ভরতা প্যাকেজগুলি সহ নিম্নলিখিত কমান্ডটি চালিয়ে কেবল মোড_জিওপ ইনস্টল করতে পারেন।

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

আপডেট থাকার জন্য সর্বশেষতম জিও সিটি এবং কান্ট্রি ডেটাবেস ডাউনলোড করা ভাল ধারণা।

# 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

মডিউলটি ইনস্টল হওয়ার পরে, vi এর মতো কমান্ড-লাইন পাঠ্য সম্পাদক সহ মডিউলটির প্রধান কনফিগারেশন ফাইলটি খুলুন এবং সম্পাদনা করুন এবং মডিউলটি সার্ভার-ওয়াইডকে সক্রিয় করুন, যেমন নীচের অংশে চিত্রিত হয়েছে।

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

জিওআইপিএল লাইনটি অফ থেকে চালু করুন সেট করুন। এছাড়াও, নিশ্চিত করুন যে আপনি জিওআইপি ডাটাবেস ফাইলে নিখুঁত পথ জুড়েছেন।

<IfModule mod_geoip.c>
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat MemoryCache
</IfModule>

পরিবর্তনগুলি প্রতিফলিত করতে অ্যাপাচি পরিষেবাটি পুনরায় চালু করুন।

# systemctl restart httpd
OR
# service httpd restart

তবে জিওআইপি মডিউল সার্ভার-ওয়াইড চালু করার পরামর্শ দেওয়া হচ্ছে না। আপনার জিওআইপি মডিউলটি কেবলমাত্র বা < ডিরেক্টরি> ব্লকগুলিতে সক্ষম করা উচিত যেখানে আপনি প্রকৃতপক্ষে ট্র্যাফিক পুনঃনির্দেশ বা ব্লক সম্পাদন করবেন।

Mod_geoip মডিউলটি অ্যাপাচি-র সাথে সঠিকভাবে কাজ করছে তা পরীক্ষা করতে, আমাদের অ্যাপাচি রুট ডিরেক্টরিতে (যেমন,/var/www/html) অধীনে টেস্টজিও.পিপি নামে একটি পিএইচপি ফাইল তৈরি করতে হবে।

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

এটিতে পিএইচপি কোডের নীচের অংশটি .োকান।

<html>
<head>
  <title>What is my IP address - determine or retrieve my IP address</title>
 </head>
<body>
 <?php
     if (getenv(HTTP_X_FORWARDED_FOR)) {
        $pipaddress = getenv(HTTP_X_FORWARDED_FOR);
        $ipaddress = getenv(REMOTE_ADDR);
        echo "Your Proxy IP address is : ".$pipaddress. " (via $ipaddress) " ;
    } else {
        $ipaddress = getenv(REMOTE_ADDR);
        echo "Your IP address is : $ipaddress";
    }
    $country = getenv(GEOIP_COUNTRY_NAME);
    $country_code = getenv(GEOIP_COUNTRY_CODE);
    echo "<br/>Your country : $country ( $country_code ) ";
?>
</body>
</html>

এখন, ওয়েব ব্রাউজার ব্যবহার করে ফাইলটি কল করার চেষ্টা করুন (উদাঃ http://localhost/testgeoip.php)। আপনি আপনার আইপি ঠিকানা এবং দেশের বিবরণ পাবেন।

জিওআইপি ডাটাবেস প্রতি মাসের শুরুতে আপডেট হয়। সুতরাং, জিওআইপি ডাটাবেসকে যুগোপযোগী রাখা খুব জরুরি। ডাটাবেসের সর্বশেষতম সংস্করণটি ডাউনলোড করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

# 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

আমরা একটি ছোট শেল স্ক্রিপ্ট লিখেছি যা প্রতিমাসে জিওআইপি ডাটাবেসের সর্বশেষতম সংস্করণটি ডাউনলোড করবে। নীচের যেকোন স্ক্রিপ্টকে /etc/cron.monthly এর নীচে রাখুন।

# Automatic GeoIP Database Update
#!/bin/sh
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
#!/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}" ]; then
        cd $GEOIPDIR
        if [ -n "${DATABASES}" ]; then
                TMPDIR=$(mktemp -d geoipupdate.XXXXXXXXXX)

                echo "Updating GeoIP databases..."

                for db in $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"
                done
                [ -d "${TMPDIR}" ] && rm -rf $TMPDIR
        fi
fi

নীচের উদাহরণ কোডটি এএস (এশিয়া) এ সেট করা দেশের কোডের ভিত্তিতে ব্যবহারকারীদের পুনর্নির্দেশ করবে। এইভাবে আপনি যে কোনও ব্যবহারকারীর তাদের কাউন্টি কোডের ভিত্তিতে পুনর্নির্দেশ করতে পারেন।

GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat

# Redirect one country
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AS$
RewriteRule ^(.*)$ https://linux-console.net$1 [R,L]

জিওআইপি সেট করে যে দেশীয় কোডের ভিত্তিতে এই উদাহরণ ব্যবহারকারীদের ব্লক করবে। নীচের উদাহরণ এএস (এশিয়া) এবং মার্কিন যুক্তরাষ্ট্র (মার্কিন যুক্তরাষ্ট্র) দেশগুলির ব্যবহারকারীদের ব্লক করবে।

GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat

SetEnvIf GEOIP_COUNTRY_CODE AS BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE US BlockCountry
# ... place more countries here

Deny from env=BlockCountry

এই নীচের উদাহরণটি কেবল নীচে উল্লিখিত দেশগুলির ব্যবহারকারীদের অনুমতি দেবে।

GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat

SetEnvIf GEOIP_COUNTRY_CODE AS AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
# ... place more countries here

Deny from all
Allow from env=AllowCountry

Mod_geoip এবং এর ব্যবহার সম্পর্কে আরও তথ্যের জন্য http://www.maxmind.com/app/mod_geoip পাওয়া যাবে। যদি আপনার একটি Mod_geoip মডিউল সেট আপ করতে কোনও সমস্যা হয় তবে দয়া করে আমাদের মন্তব্যগুলির মাধ্যমে জানান এবং দয়া করে এটি আপনার বন্ধুদের সাথে ভাগ করতে ভুলবেন না।