Cara mengontrol akses berdasarkan alamat IP klien di nginx

Cara mengontrol akses berdasarkan alamat IP klien di nginx

Ada beberapa cara Nginx Web Server Security Hardening salah satunya adalah kontrol akses berdasarkan alamat IP. Panduan ini menjelaskan cara mengamankan aplikasi web dengan mengendalikan akses berdasarkan alamat IP klien di Nginx.

Panduan ini mengasumsikan bahwa Anda memiliki server web nginx yang diinstal dan berjalan, jika tidak, periksa panduan ini:

  • Cara menginstal server web nginx di ubuntu
  • Cara menginstal nginx di centos
  • Cara menginstal nginx di debian
  • Cara menginstal nginx di rhel

Kontrol Akses Berdasarkan Alamat IP Klien di Nginx

Itu ngx_http_access_module Modul di nginx memungkinkan membatasi akses ke alamat IP klien tertentu. Anda dapat mengaktifkannya dengan mengizinkan Dan membantah arahan.

Itu mengizinkan Petunjuk sesuai namanya memungkinkan akses untuk alamat IP tertentu, jaringan, soket UNIX, atau semua (kata kunci untuk entitas sebelumnya), dan membantah Petunjuk menolak akses untuk alamat IP tertentu, jaringan, soket unix, atau semua.

Kedua arahan itu valid di Http, server, lokasi serta Limit_Except konteks. Berikut adalah contoh menggunakan mengizinkan Dan membantah arahan dalam a Lokasi konteks untuk membatasi akses ke layanan API:

hulu app_api Keepalive 100; Server 10.1.1.50: 5000; Server 10.1.1.71: 5001;  server dengarkan 80; nama server _; 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-forwarded-for $ proxy_add_x_forwarded_for; skema $ proxy_set_header X-Forwarded-Proto $; proxy_set_header host $ http_host; proxy_redirect off; proxy_http_version 1.1; koneksi proxy_set_header ""; proxy_pass http: // app_api $ request_uri; #list IPS yang diizinkan untuk mengakses API Izinkan 10.10.10.20; Izinkan 10.10.40.29; Izinkan 192.168.2.23; Izinkan 192.168.10.0/24; menyangkal semua;  

Dalam contoh di atas, setiap permintaan untuk mengakses titik akhir API proksi yang diizinkan hanya untuk 10.10.10.20, 10.10.40.29, 192.168.2.23 Alamat IP, dan salah satu yang ada di 192.168.10.0/24 jaringan. Permintaan dari alamat IP lain atau jaringan atau soket unix-domain akan ditolak.

Nginx akan merespons dengan 403 kesalahan terlarang ke klien seperti yang ditunjukkan.

Nginx 403 kesalahan terlarang

Saat Anda memeriksa /var/log/nginx/app_api_error.catatan Log kesalahan, Anda akan menemukan entri seperti yang ditampilkan di tangkapan layar berikut:

# cat/var/log/nginx/app_api_error.log debug 
Periksa log kesalahan nginx

Untuk tips pengerasan keamanan server web NGINX lebih lanjut, lihat: Panduan Ultimate untuk mengamankan dan mengeraskan Nginx Web Server.