Cara Mengawal Akses Berdasarkan Alamat IP Klien di Nginx

Cara Mengawal Akses Berdasarkan Alamat IP Klien di Nginx

Terdapat beberapa cara pengerasan keselamatan pelayan web nginx salah satu daripadanya adalah kawalan akses berdasarkan alamat IP. Panduan ini menerangkan bagaimana untuk mendapatkan aplikasi web dengan mengawal akses berdasarkan alamat IP pelanggan di nginx.

Panduan ini mengandaikan bahawa anda mempunyai pelayan web nginx yang dipasang dan berjalan, jika tidak, lihat panduan ini:

  • Cara memasang pelayan web nginx di ubuntu
  • Cara Memasang Nginx di CentOS
  • Cara Memasang Nginx di Debian
  • Cara memasang nginx pada rhel

Akses kawalan berdasarkan alamat IP klien di nginx

The ngx_http_access_module Modul di nginx membolehkan mengehadkan akses ke alamat IP klien tertentu. Anda boleh mengaktifkannya dengan Benarkan dan menafikan arahan.

The Benarkan Arahan seperti namanya membolehkan akses untuk alamat IP tertentu, rangkaian, soket unix, atau semua (kata kunci untuk entiti sebelumnya), dan menafikan Arahan menafikan akses untuk alamat IP tertentu, rangkaian, soket unix, atau semua.

Kedua -dua arahan itu sah di Http, pelayan, lokasi dan juga Limit_except konteks. Berikut adalah contoh menggunakan Benarkan dan menafikan arahan dalam a Lokasi konteks untuk menyekat akses kepada perkhidmatan API:

hulu app_api Keepalive 100; pelayan 10.1.1.50: 5000; pelayan 10.1.1.71: 5001;  pelayan Dengar 80; nama pelayan _; Access_log/var/log/nginx/app_api_access.log utama; error_log/var/log/nginx/app_api_error.log debug; root/usr/share/nginx/html/; lokasi / try_files $ uri / api;  lokasi /api proxy_read_timeout 3600; proxy_connect_timeout 3600s; Keepalive_timeout 15; Send_Timeout 300; proxy_set_header x-forward-for $ proxy_add_x_forwarded_for; proxy_set_header x-forwarded-proto $ skema; proxy_set_header host $ http_host; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_pass http: // app_api $ request_uri; #senarai IP yang dibenarkan untuk mengakses API membenarkan 10.10.10.20; Benarkan 10.10.40.29; Benarkan 192.168.2.23; Benarkan 192.168.10.0/24; menafikan semua;  

Dalam contoh di atas, sebarang permintaan untuk mengakses mana -mana titik akhir API proksi hanya dibenarkan untuk 10.10.10.20, 10.10.40.29, 192.168.2.23 Alamat IP, dan mana -mana yang ada di 192.168.10.0/24 rangkaian. Permintaan dari alamat IP atau rangkaian domain UNIX yang lain akan dinafikan.

Nginx akan bertindak balas dengan kesilapan 403 yang dilarang kepada pelanggan seperti yang ditunjukkan.

Nginx 403 kesilapan terlarang

Apabila anda memeriksa /var/log/nginx/app_api_error.log Log ralat, anda akan menemui penyertaan seperti yang ditunjukkan dalam tangkapan skrin berikut:

# kucing/var/log/nginx/app_api_error.log debug 
Semak log ralat nginx

Untuk lebih banyak petua pengerasan keselamatan pelayan web nginx, lihat: Panduan Ultimate untuk Mengamankan dan Mengeras Nginx Web Server.