RHEL और CentOS में Apache के लिए Mod_GeoIP कैसे स्थापित करें
Mod_GeoIP एक अपाचे मॉड्यूल है जिसका उपयोग आगंतुक के IP पते की भौगोलिक स्थिति Apache वेब सर्वर में करने के लिए किया जा सकता है। यह मॉड्यूल आपको आगंतुक के देश , संगठन और स्थान को निर्धारित करने की अनुमति देता है। यह जियो विज्ञापन सेवा , लक्ष्य सामग्री , स्पैम से लड़ने , धोखाधड़ी का पता लगाने , पुनर्निर्देशन के लिए विशेष रूप से उपयोगी है/ब्लॉकिंग आगंतुकों को उनके देश के आधार पर और बहुत कुछ।
जियोआईपी मॉड्यूल सिस्टम प्रशासक को क्लाइंट भौगोलिक स्थान के अनुसार वेब ट्रैफ़िक को पुनर्निर्देशित या ब्लॉक करने की अनुमति देता है। भौगोलिक स्थिति क्लाइंट आईपी पते के माध्यम से सीखी जाती है।
Mod_GeoIP के दो अलग-अलग संस्करण हैं Free और दूसरा एक है भुगतान और MaxMind का उपयोग करता है GeoIP / GeoCity डेटाबेस।
- Free Version : In Free version the Geo City and Country databases are availble with 99.5% accuracy.
- Paid Version : In Paid version you will get both databases with 99.8% accuracy with some more advanaced details about IP address.
यदि आप अधिक अंतरों को देखना चाहते हैं, तो नि: शुल्क और भुगतान किया गया संस्करण देखें, कृपया Maxmind.com पर जाएं।
यह आलेख बताता है कि Apache के लिए mod_GeoIP मॉड्यूल को कैसे सेटअप और इंस्टॉल करें: रंग:
हम मानते हैं कि आपके पास पहले से ही चल रहा है RHEL और CentOS सिस्टम एक काम के साथ LAMP ( लिनक्स , अपाचे , MySQL और PHP ) सेटअप। यदि नहीं, तो हमारे लेख पढ़ें जहां हमने LAMP के साथ दोनों ऑपरेटिंग सिस्टम की स्थापना दिखाई है।
- Installation of Red Hat Enterprise Linux (RHEL) 7.3 Guide
- Installation of CentOS 7.3 Guide
- How to Install LAMP (Linux, Apache, MySQL, PHP) on RHEL and CentOS
डिफ़ॉल्ट रूप से mod_Geoip RHEL/CentOS आधिकारिक रिपॉजिटरी के तहत उपलब्ध नहीं है, इसलिए हमें तीसरे पक्ष को स्थापित करने और सक्षम करने की आवश्यकता है EPEL रिपॉजिटरी।
# yum install epel-release
एक बार जब आप अपने सिस्टम पर EPEL रिपॉजिटरी सक्षम हो जाते हैं, तो आप उनके निर्भरता पैकेजों के साथ कमांड चलाकर mod_geoip सरल स्थापित कर सकते हैं।
# 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 मॉड्यूल सही तरीके से काम कर रहा है, इसके लिए हमें testgeoip.php Apache > नामक PHP फ़ाइल बनाने की आवश्यकता है। मजबूत> रूट डायरेक्टरी ( उदा।/var/www/html )।
# vi /var/www/html/testgeoip.php
इसके लिए 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 ) का उपयोग करके फ़ाइल को कॉल करने का प्रयास करें। आपको अपना IP पता और देश विवरण मिलेगा।
जियोआईपी डेटाबेस हर महीने की शुरुआत में अपडेट किया जाता है। इसलिए, जियोआईपी डेटाबेस को अप-टू-डेट रखना बहुत महत्वपूर्ण है। डेटाबेस के नवीनतम संस्करण को डाउनलोड करने के लिए निम्नलिखित कमांड का उपयोग करें।
# 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
नीचे दिया गया उदाहरण कोड उन उपयोगकर्ताओं के देश कोड के आधार पर रीडायरेक्ट करेगा, जिन्हें हम AS ( एशिया ) पर सेट करते हैं। इस तरह आप किसी भी उपयोगकर्ता को उनके काउंटी कोड के आधार पर पुनर्निर्देशित कर सकते हैं।
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]
यह उदाहरण उपयोगकर्ताओं को उस देश कोड के आधार पर ब्लॉक करेगा जो जियोआईपी सेट करता है। नीचे दिए गए उदाहरण उपयोगकर्ताओं को AS ( एशिया ) और US ( संयुक्त राज्य ) देशों से रोकेंगे।
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 मॉड्यूल स्थापित करने में कोई परेशानी हो रही है, तो कृपया हमें टिप्पणियों के माध्यम से बताएं और कृपया इसे अपने दोस्तों के साथ साझा करना न भूलें।