Konfigurasi ACL berdasarkan alamat IP dan lokasi geografi dalam proksi terbalik Nginx

WBOY
Lepaskan: 2023-06-10 10:39:25
asal
1690 orang telah melayarinya

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

  1. Apakah 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).

  1. Klasifikasi alamat IP

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.

  1. Konfigurasi ACL berdasarkan alamat IP dalam Nginx

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;
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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

  1. MaxMind GeoIP2

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.

  1. Pemasangan GeoIP2

Memasang GeoIP2 terutamanya dibahagikan kepada empat langkah:

(1) Pasang pakej bergantung

yum -y install automake autoconf libtool gcc make pcre-devel zlib-devel
Salin selepas log masuk

( 2) Muat turun GeoIP2

wget https://github.com/maxmind/geoip-api-c/releases/download/v1.9.2/GeoIP-1.9.2.tar.gz
Salin selepas log masuk

(3) Nyahzip dan pasang GeoIP2

tar xzf GeoIP-1.9.2.tar.gz
cd GeoIP-1.9.2
./configure
make && make check && make install
Salin selepas log masuk

(4) Muat turun GeoIP2-Library dan GeoIP2-City

rreee
  1. Nginx berdasarkan geografi Konfigurasi ACL lokasi

Selepas 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
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!