ວິທີການຕິດຕັ້ງ Mod_GeoIP ສຳ ລັບ Apache ໃນ RHEL ແລະ CentOS
Mod_GeoIP ແມ່ນໂມດູນ Apache ທີ່ສາມາດຖືກ ນຳ ໃຊ້ເພື່ອໃຫ້ມີທີ່ຕັ້ງພູມສາດຂອງທີ່ຢູ່ IP ຂອງຜູ້ເຂົ້າຊົມເຂົ້າໃນ Apache webserver. ໂມດູນນີ້ຊ່ວຍໃຫ້ທ່ານສາມາດ ກຳ ນົດປະເທດ, ອົງການແລະສະຖານທີ່ຂອງນັກທ່ອງທ່ຽວ. ມັນມີປະໂຫຍດໂດຍສະເພາະ ສຳ ລັບ Geo Ad Serving, ເນື້ອຫາເປົ້າ ໝາຍ, ການຕໍ່ສູ້ກັບສະແປມ, ການຊອກຄົ້ນຫາການສໍ້ໂກງ, ການປ່ຽນເສັ້ນທາງ/ການຂັດຂວາງຜູ້ມາຢ້ຽມຢາມໂດຍອີງໃສ່ປະເທດຂອງພວກເຂົາແລະອື່ນໆ.
ໂມດູນ GeoIP ຊ່ວຍໃຫ້ຜູ້ບໍລິຫານລະບົບສາມາດປ່ຽນເສັ້ນທາງຫລືສະກັດກັ້ນການເຂົ້າຊົມເວັບໄຊຕ໌ຕາມສະຖານທີ່ທາງພູມສາດຂອງລູກຄ້າ. ສະຖານທີ່ທາງພູມສາດແມ່ນຮຽນຮູ້ຜ່ານທີ່ຢູ່ IP ຂອງລູກຄ້າ.
Mod_GeoIP ມີສອງລຸ້ນທີ່ແຕກຕ່າງກັນ ໜຶ່ງ ແມ່ນ Free ແລະອີກລຸ້ນ ໜຶ່ງ ແມ່ນຈ່າຍແລະໃຊ້ຖານຂໍ້ມູນ MaxMind GeoIP/GeoCity.
<
ຖ້າທ່ານຕ້ອງການກວດສອບຄວາມແຕກຕ່າງລະຫວ່າງລຸ້ນ Free ແລະຈ່າຍ, ກະລຸນາເຂົ້າເບິ່ງທີ່ Maxmind.com.
ບົດຂຽນນີ້ອະທິບາຍເຖິງວິທີການຕັ້ງແລະຕິດຕັ້ງໂມດູນ Mod_GeoIP ສຳ ລັບ Apache ໃນ RHEL ແລະ CentOS ໂດຍໃຊ້ຫໍສະມຸດ EPEL ກັບເຄື່ອງມືຈັດການຊຸດ YUM.
ພວກເຮົາສົມມຸດວ່າທ່ານໄດ້ໃຊ້ລະບົບ RHEL ແລະ CentOS ແລ້ວໂດຍມີການຕັ້ງຄ່າ LAMP (Linux, Apache, MySQL, ແລະ PHP) ແລ້ວ. ຖ້າບໍ່, ຫຼັງຈາກນັ້ນອ່ານບົດຄວາມຂອງພວກເຮົາທີ່ພວກເຮົາໄດ້ສະແດງການຕິດຕັ້ງລະບົບປະຕິບັດການທັງສອງກັບ LAMP.
<
<
ໂດຍຄ່າເລີ່ມຕົ້ນ 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 ໃນລະບົບຂອງທ່ານ, ທ່ານສາມາດຕິດຕັ້ງ mod_geoip ໄດ້ງ່າຍໆໂດຍການເຮັດວຽກຕາມ ຄຳ ສັ່ງຕໍ່ໄປນີ້ກັບແພັກເກັດເພິ່ງພາຂອງພວກມັນ.
# yum install mod_geoip GeoIP GeoIP-devel GeoIP-data zlib-devel
ມັນເປັນຄວາມຄິດທີ່ດີທີ່ຈະດາວໂຫລດຖານຂໍ້ມູນ Geo City ແລະຖານຂໍ້ມູນປະເທດທີ່ລ້າສຸດເພື່ອສືບຕໍ່ປັບປຸງ.
# 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, ແລະກະຕຸ້ນໂມດູນທົ່ວ server, ດັ່ງທີ່ສະແດງຢູ່ໃນຂໍ້ຄວາມຂ້າງລຸ່ມນີ້.
# vi /etc/httpd/conf.d/geoip.conf
ຕັ້ງຄ່າ GeoIPEnable ຈາກ Off to On. ນອກຈາກນີ້, ໃຫ້ແນ່ໃຈວ່າທ່ານເພີ່ມເສັ້ນທາງຢ່າງແທ້ຈິງໃນເອກະສານຖານຂໍ້ມູນຂອງ GeoIP.
<IfModule mod_geoip.c> GeoIPEnable On GeoIPDBFile /usr/share/GeoIP/GeoIP.dat MemoryCache </IfModule>
ເລີ່ມຕົ້ນການບໍລິການ Apache ເພື່ອສະທ້ອນການປ່ຽນແປງ.
# systemctl restart httpd OR # service httpd restart
ເຖິງຢ່າງໃດກໍ່ຕາມ, ມັນບໍ່ໄດ້ຖືກແນະ ນຳ ໃຫ້ເປີດໃຊ້ໂມດູນ GeoIP ກວ້າງ. ທ່ານຄວນເປີດໃຊ້ໂມດູນ GeoIP ພຽງແຕ່ໃນ
ຫຼື
block ທີ່ທ່ານຈະປະຕິບັດການປ່ຽນເສັ້ນທາງການຈະລາຈອນຕົວຈິງຫຼືຕັນ.
ເພື່ອທົດສອບໂມດູນ mod_geoip ເຮັດວຽກຢ່າງຖືກຕ້ອງກັບ Apache, ພວກເຮົາຕ້ອງສ້າງເອກະສານ PHP ທີ່ມີຊື່ວ່າ testgeoip.php ພາຍໃຕ້ໄດເລກະທໍລີຮາກຂອງ Apache (ເຊັ່ນ: 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 ຂອງທ່ານແລະລາຍລະອຽດຂອງປະເທດ.
ຖານຂໍ້ມູນ 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 ໂດຍອັດຕະໂນມັດທຸກໆເດືອນ. ພຽງແຕ່ໃສ່ ຕຳ ລາຕໍ່ໄປນີ້ພາຍໃຕ້ /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]
ຕົວຢ່າງນີ້ຈະກີດຂວາງຜູ້ໃຊ້ໂດຍອີງໃສ່ລະຫັດປະເທດທີ່ GeoIP ກຳ ນົດ. ຕົວຢ່າງຂ້າງລຸ່ມນີ້ຈະສະກັດຜູ້ໃຊ້ຈາກ AS (ອາຊີ) ແລະບັນດາປະເທດສະຫະລັດອາເມລິກາ (ສະຫະລັດ).
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, ກະລຸນາແຈ້ງໃຫ້ພວກເຮົາຮູ້ຜ່ານ ຄຳ ເຫັນແລະກະລຸນາຢ່າລືມແບ່ງປັນກັບ ໝູ່ ຂອງທ່ານ.