Nginx ialah pelayan web sumber terbuka, berprestasi tinggi dan pelayan proksi terbalik yang digunakan secara meluas dalam persekitaran pengeluaran sebenar. Fungsi proksi terbaliknya boleh membantu kami melaksanakan fungsi seperti kawalan trafik, pengimbangan beban dan perlindungan keselamatan. Walau bagaimanapun, faktor lain perlu dipertimbangkan semasa melakukan proksi terbalik, seperti alamat IP pelanggan dan maklumat lokasi geografi, supaya kami dapat mengawal akses dengan lebih baik dan memastikan keselamatan tapak web.
Oleh itu, artikel ini akan memperkenalkan cara mengkonfigurasi ACL berdasarkan alamat IP dan lokasi geografi dalam proksi terbalik Nginx untuk mencapai kawalan akses yang lebih halus.
1. Apakah itu ACL
Sebelum memperkenalkan kaedah konfigurasi khusus, kita perlu memahami apa itu ACL. ACL (Senarai Kawalan Akses) ialah senarai kawalan akses, yang merupakan dasar yang digunakan untuk mengawal aliran data pada peranti rangkaian. Melalui ACL, trafik boleh dikelaskan dan dihadkan berdasarkan keadaan yang berbeza untuk mencapai keselamatan rangkaian dan tujuan kawalan trafik.
Dalam Nginx, kami boleh mengkonfigurasi ACL berdasarkan alamat IP, lokasi geografi dan keadaan lain untuk mengawal akses. Oleh itu, apabila melakukan proksi terbalik, kami boleh mengkonfigurasi ACL yang sepadan berdasarkan alamat IP pelanggan dan maklumat lokasi untuk mengawal permintaan pelanggan dengan lebih baik.
2. Konfigurasi ACL berdasarkan alamat IP
Alamat IP ialah singkatan dari Internet Protocol Address, iaitu alamat protokol Internet. Sebagai pengecam yang mengenal pasti komputer unik di Internet, ia terdiri daripada 32 bit perduaan, biasanya diwakili sebagai 4 nombor perpuluhan, setiap satunya mempunyai nilai antara 0 dan 255, dipisahkan oleh noktah (contohnya, 127.0 .0.1).
Alamat IP boleh dikelaskan mengikut faktor seperti skop penggunaannya, peraturan peruntukan dan format alamat. Kaedah pengelasan biasa adalah seperti berikut:
(1) Mengikut skop penggunaan, ia dibahagikan kepada alamat IP awam dan alamat IP awam digunakan untuk menyambung ke Internet, dan alamat IP peribadi digunakan untuk komunikasi intranet.
(2) Mengikut peraturan peruntukan, ia dibahagikan kepada alamat IP statik dan alamat IP dinamik. Alamat IP statik ialah alamat IP tetap yang ditetapkan secara manual oleh pentadbir rangkaian dan biasanya digunakan untuk peranti lokasi tetap seperti pelayan. Alamat IP dinamik ialah alamat IP yang diberikan secara dinamik oleh pembekal perkhidmatan rangkaian dan berubah dari semasa ke semasa.
(3) Mengikut format alamat, ia dibahagikan kepada alamat IPv4 dan alamat IPv6. Alamat IPv4 ialah format alamat 32-bit yang kini digunakan secara meluas Alamat IPv6 ialah alamat IP generasi baharu yang menggunakan format alamat 128-bit dan digunakan untuk menggantikan alamat IPv4.
Dalam Nginx, kami boleh melakukan konfigurasi ACL proksi terbalik berdasarkan alamat IP pelanggan. Konfigurasi khusus adalah seperti berikut:
(1) Sekatan alamat IP tunggal
Jika anda hanya perlu mengehadkan akses kepada satu alamat IP, anda boleh menggunakan konfigurasi berikut:
location / { #allow access from IP address 192.168.1.100 allow 192.168.1.100; deny all; }
Dalam konfigurasi di atas, benarkan Arahan digunakan untuk menyekat akses dan arahan penafian digunakan untuk menafikan akses. Hanya pelanggan dengan alamat IP 192.168.1.100 dibenarkan untuk mengakses, dan pelanggan lain dinafikan.
(2) Berbilang sekatan alamat IP
Jika anda perlu menyekat akses kepada berbilang alamat IP, anda boleh menggunakan konfigurasi berikut:
location / { #allow access from IP address 192.168.1.100 and 192.168.1.101 allow 192.168.1.100; allow 192.168.1.101; deny all; }
Dalam konfigurasi di atas, alamat IP yang dibenarkan ialah Pelanggan di 192.168.1.100 dan 192.168.1.101 dibenarkan untuk mengakses, dan pelanggan lain dinafikan akses.
(3) Sekatan berdasarkan segmen alamat IP
Jika anda perlu menyekat akses kepada segmen alamat IP tertentu, anda boleh menggunakan konfigurasi berikut:
location / { # allow access from IP address segments 192.168.1.0/24 allow 192.168.1.0/24; deny all; }
Dalam konfigurasi di atas, alamat IP dibenarkan Pelanggan dengan segmen 192.168.1.0/24 dibenarkan untuk mengakses, dan pelanggan lain dinafikan akses. Antaranya, "/24" bermaksud mask, yang bermaksud 24 bit pertama ialah alamat rangkaian dan 8 bit terakhir ialah alamat hos.
3. Konfigurasi ACL berdasarkan lokasi geografi
Melaksanakan konfigurasi ACL berdasarkan lokasi geografi dalam Nginx memerlukan MaxMind GeoIP2. MaxMind GeoIP2 ialah pangkalan data lokasi geografi IP yang menyediakan maklumat lokasi geografi yang kaya. Melalui GeoIP2, kami boleh memetakan alamat IP pelanggan kepada maklumat seperti bandar, wilayah, negara dan kod ISOnya.
Memasang GeoIP2 terutamanya dibahagikan kepada empat langkah:
(1) Pasang pakej bergantung
yum -y install automake autoconf libtool gcc make pcre-devel zlib-devel
( 2) Muat turun GeoIP2
wget https://github.com/maxmind/geoip-api-c/releases/download/v1.9.2/GeoIP-1.9.2.tar.gz
(3) Nyahzip dan pasang GeoIP2
tar xzf GeoIP-1.9.2.tar.gz cd GeoIP-1.9.2 ./configure make && make check && make install
(4) Muat turun GeoIP2-Library dan GeoIP2-City
rreeeSelepas memasang GeoIP2, kami perlu mengkonfigurasinya dengan sewajarnya dalam Nginx. Langkah khusus adalah seperti berikut:
(1) Tambah konfigurasi berkaitan GeoIP2 dalam fail konfigurasi Nginx
mkdir /usr/share/GeoIP cd /usr/share/GeoIP/ wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz tar -zxvf GeoLite2-City.tar.gz tar -zxvf GeoLite2-Country.tar.gz
Dalam konfigurasi di atas, kami menetapkan laluan pangkalan data GeoIP2 dan mengkonfigurasi bandar, negara , Longitud, latitud dan maklumat lain yang berkaitan untuk kegunaan seterusnya.
(2) Gunakan GeoIP2 di lokasi Nginx
# set geoip database path geoip_country /usr/share/GeoIP/GeoLite2-Country.mmdb; geoip_city /usr/share/GeoIP/GeoLite2-City.mmdb; # enable nginx api http { geoip2 /usr/share/GeoIP/GeoLite2-City.mmdb { $geoip2_data_city_name city names en; $geoip2_data_country_iso_code country iso_code; $geoip2_data_latitude latitude; $geoip2_data_longitude longitude; } }
Dalam konfigurasi di atas, kami menentukan maklumat lokasi geografi pelanggan dan hanya membenarkan pelanggan dari China (kod negara ialah CN) untuk mengakses .
4. Ringkasan
Melalui pengenalan artikel ini, kami telah mempelajari tentang konfigurasi ACL berdasarkan alamat IP dan lokasi geografi dalam proksi terbalik Nginx, dan cara menggunakan MaxMind GeoIP2 untuk membuat pertanyaan dan mengakses maklumat lokasi geografi. Fungsi ini boleh membantu kami mengawal akses pelanggan dengan lebih baik dan menyediakan perkhidmatan yang lebih selamat dan cekap. Semoga artikel ini bermanfaat kepada pembaca.
Atas ialah kandungan terperinci Konfigurasi ACL berdasarkan alamat IP dan lokasi geografi dalam proksi terbalik Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!