Cara Memasang Mod_Geoip untuk Apache di RHEL dan CentOS

Cara Memasang Mod_Geoip untuk Apache di RHEL dan CentOS

Mod_geoip adalah modul Apache yang boleh digunakan untuk mendapatkan lokasi geografi Ip alamat pelawat ke Apache webserver. Modul ini membolehkan anda menentukan pelawat negara, organisasi, dan Lokasi. Ia amat berguna untuk GEO AD berkhidmat, Kandungan sasaran, SPAM FIGHTING, Pengesanan penipuan, Mengalihkan/menyekat pelawat berdasarkan negara mereka dan banyak lagi.

Modul GeoIP membolehkan pentadbir sistem mengalihkan atau menyekat trafik web mengikut lokasi geografi pelanggan. Lokasi geografi dipelajari melalui alamat IP klien.

Mod_geoip mempunyai dua versi yang berbeza adalah Percuma Dan yang lain adalah Dibayar dan menggunakan Maxmind Geoip / Geocity pangkalan data.

  1. Versi Percuma: Dalam versi percuma, Geo City dan Pangkalan data negara boleh didapati dengan 99.5% ketepatan.
  2. Versi Dibayar: Dalam versi berbayar, anda akan mendapat kedua -dua pangkalan data 99.8% ketepatan dengan beberapa butiran yang lebih maju mengenai Ip alamat.

Sekiranya anda ingin menyemak lebih banyak perbezaan antara Percuma dan Dibayar versi, sila lawati MaxMind.com.

Artikel ini menerangkan cara menubuhkan dan memasang Mod_geoip modul untuk Apache di RHEL dan Centos menggunakan Epel repositori dengan utiliti pengurus pakej yum.

Kami menganggap bahawa anda sudah berlari RHEL dan Centos sistem dengan kerja Lampu (Linux, Apache, Mysql, dan Php) persediaan. Jika tidak, kemudian baca artikel kami di mana kami telah menunjukkan pemasangan kedua -dua sistem operasi dengan Lampu.

Pemasangan RHEL/CentOs
  1. Pemasangan Rhel 7 dan CentOS 7 Minimum.
  2. Pemasangan RHEL 8 dan CentOS 8 Minimum.
Persediaan Lampu di RHEL/CentO
  1. Cara Memasang Lampu (Linux, Apache, MySQL, PHP) pada RHEL dan CentOS 7
  2. Cara Memasang Apache, MySQL/MariaDB, dan PHP pada RHEL dan CentOS 8

Dayakan repositori Epel di RHEL dan CentOS

Secara lalai mod_geoip tidak tersedia di bawah RHEL / CENTOS repositori rasmi, jadi kita perlu memasang dan membolehkan pihak ketiga Epel repositori.

# yum Pasang Epel-Release # yum Pasang https: // dl.Fedoraproject.org/pub/epel/epel-release-latest-8.Noarch.RPM [pada RHEL 8] 

Pasang mod_geoip dalam rhel dan centos

Sebaik sahaja anda Epel repositori diaktifkan pada sistem anda, anda hanya boleh memasang mod_geoip dengan menjalankan arahan berikut dengan pakej ketergantungan mereka.

# yum Pasang mod_geoip geoip geoip-devel geoip-data zlib-devel 

Muat turun pangkalan data Geo City dan Country terkini

Adalah idea yang baik untuk memuat turun yang terkini Geo City dan Pangkalan data negara untuk terus dikemas kini.

# cd/usr/share/geoip/ # mv geoip.DAT GEOIP.dat_org # wget http: // geolite.MaxMind.com/muat turun/geoip/pangkalan data/negara geolite2.tar.gz # wget http: // geolite.MaxMind.com/muat turun/geoip/pangkalan data/geolite2-city.tar.GZ # Gunzip Geolite2-Country.tar.GZ # Gunzip Geolite2-City.tar.Gz 

Dayakan mod_geoip di Apache

Selepas modul telah dipasang, buka dan edit fail konfigurasi utama modul, dengan editor teks baris arahan seperti vi, dan mengaktifkan modul pelayan, seperti yang digambarkan dalam petikan di bawah.

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

Tetapkan garis geoipenable dari Mati ke Pada. Juga, pastikan anda menambah laluan mutlak ke fail pangkalan data GEOIP.

 Geoipenable on Geoipdbfile/usr/share/geoip/geoip.DAT MemoryCache  

Mulakan semula Apache perkhidmatan untuk mencerminkan perubahan.

# Systemctl mulakan semula httpd atau # perkhidmatan httpd mulakan semula

Walau bagaimanapun, tidak disyorkan untuk menghidupkan modul Geoip yang luas. Anda harus membolehkan modul geoip hanya masuk atau blok di mana anda sebenarnya akan melakukan pengalihan lalu lintas atau blok.

Ujian mod_geoip modul

Untuk menguji mod_geoip Modul berfungsi dengan betul dengan Apache, kita perlu membuat a Php fail yang dipanggil testgeoip.php di bawah Apache Direktori Root (e.g. /var/www/html).

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

Masukkan sekeping kod PHP berikut.

  Apakah alamat IP saya - tentukan atau dapatkan alamat IP saya   Negara Anda: $ negara ($ country_code) "; ?>   

Sekarang, cuba hubungi fail menggunakan penyemak imbas web (e.g. http: // localhost/testgeoip.php). Anda akan mendapat alamat IP dan Negara perincian.

Mengemas kini pangkalan data GEOIP

Pangkalan Data GeoIP dikemas kini bermula setiap bulan. Oleh itu, sangat penting untuk memastikan pangkalan data Geoip terkini. Untuk memuat turun versi terkini pangkalan data gunakan arahan berikut.

# cd/usr/share/geoip/ # mv geoip.DAT GEOIP.dat_org # wget http: // geolite.MaxMind.com/muat turun/geoip/pangkalan data/negara geolite2.tar.gz # wget http: // geolite.MaxMind.com/muat turun/geoip/pangkalan data/geolite2-city.tar.GZ # Gunzip Geolite2-Country.tar.GZ # Gunzip Geolite2-City.tar.Gz 

Kemas kini pangkalan data GeoIP automatik

Kami telah menulis skrip shell kecil yang secara automatik akan memuat turun versi terkini pangkalan data geoip setiap bulan. Letakkan mana -mana skrip berikut di bawah /etc/cron.bulanan.

Skrip 1
# Kemas kini Pangkalan Data Geoip Automatik #!/Bin/SH CD/USR/SHARE/GEOIP MV GEOIP.DAT GEOIP.dat_org wget -q http: // geolite.MaxMind.com/muat turun/geoip/pangkalan data/negara geolite2.tar.gz gzip -d -f geolite2 -country.tar.Gz
Skrip 2
#!/bin/sh geoip_mirror = "http: // geolite.MaxMind.com/muat turun/geoip/pangkalan data "geoipdir =/usr/share/geoip tmpdir = pangkalan data =" geolitecity geolitecountry/geoip asnum/geoipasnum geoipv6 "if [-d" $ geoipdir; "$ Pangkalan data"]; kemudian tmpdir = $ (mktemp -d geoipupdate.Xxxxxxxxxx) echo "Mengemas kini pangkalan data GEOIP ..." untuk DB dalam pangkalan data $; lakukan fname = $ (baseName $ db) wget --no -arverbose -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 "selesai [-d" $ tmpdir "] && rm -rf $ tmpdir fi fi

Mengalihkan pengguna berdasarkan negara

Kod contoh di bawah akan mengalihkan pengguna berdasarkan kod negara yang kami tetapkan Sebagai (Asia). Dengan cara ini anda boleh mengalihkan mana -mana pengguna berdasarkan kod daerah mereka.

Geoipenable on Geoipdbfile/usr/share/geoip/geoip.dat # redirect One Country RewriteEngine on RewriteCond %env: geoip_country_code ^Sebagai$ Penulisan semula ^(.*) $ https: // www.Tecmint.com$ 1 [r, l]

Menyekat pengguna berdasarkan negara

Contoh ini akan menyekat pengguna berdasarkan kod negara yang ditetapkan Geoip. Contoh di bawah akan menghalang pengguna dari Sebagai (Asia) dan Kita (Amerika Syarikat) negara.

Geoipenable on Geoipdbfile/usr/share/geoip/geoip.dat setenvif geoip_country_code Sebagai Blockcountry setenvif geoip_country_code Kita BlockCountry #... Letakkan lebih banyak negara di sini menafikan dari env = blockcountry

Membenarkan pengguna berdasarkan negara

Contoh di bawah ini hanya akan membolehkan pengguna dari negara yang disebutkan di bawah.

Geoipenable on Geoipdbfile/usr/share/geoip/geoip.dat setenvif geoip_country_code Sebagai AllowCountry setenvif geoip_country_code Kita AllowCountry #... Letakkan lebih banyak negara di sini menafikan dari semua membenarkan dari Env = AllowCountry

Untuk maklumat lanjut mengenai mod_geoip dan penggunaannya boleh didapati di http: // www.MaxMind.com/app/mod_geoip. Sekiranya anda menghadapi masalah dalam menubuhkan modul mod_geoip, sila beritahu kami melalui komen dan jangan lupa untuk berkongsi dengan rakan anda.