Kif tikkontrolla l-aċċess Ibbażat fuq l-indirizz IP tal-Klijent f'NGINX


Hemm diversi modi kif is-sigurtà tas-server tal-web NGINX titwebbis, li wieħed minnhom huwa l-kontroll tal-aċċess ibbażat fuq l-indirizz IP. Din il-gwida tispjega kif tiżgura l-applikazzjonijiet tal-web billi tikkontrolla l-aċċess ibbażat fuq l-indirizz IP tal-klijent f'NGINX.

Din il-gwida tassumi li għandek server tal-web NGINX installat u jaħdem, inkella iċċekkja dawn il-gwidi:

  • Kif tinstalla Nginx Web Server fuq Ubuntu
  • Kif tinstalla Nginx fuq CentOS
  • Kif tinstalla Nginx fuq Debian
  • Kif tinstalla Nginx fuq RHEL

Kontroll Aċċess Ibbażat fuq Indirizz IP tal-Klijent f'NGINX

Il-modulu ngx_http_access_module f'NGINX jippermetti li jillimita l-aċċess għal ċerti indirizzi IP tal-klijenti. Tista' tattivaha bid-direttivi ta' permess u ċaħda.

Id-direttiva tal-permess kif jimplika l-isem tippermetti aċċess għal indirizz IP speċifiku, netwerk, socket Unix, jew kollha (kelma ewlenija għall-entitajiet preċedenti), u d-direttiva tiċħad l-aċċess għal indirizz IP speċifiku, netwerk, socket Unix, jew kollha.

Iż-żewġ direttivi huma validi fil-kuntest HTTP, server, post kif ukoll limit_except. Hawn hu eżempju tal-użu tad-direttivi tal-permess u ċ-ċaħda f'kuntest ta' post biex jirrestrinġu l-aċċess għal servizz API:

upstream app_api {
	keepalive 100;
	server 10.1.1.50:5000;
	server 10.1.1.71:5001;
}
server {
    listen 80;
    server_name _;
    access_log /var/log/nginx/app_api_access.log main;
    error_log /var/log/nginx/app_api_error.log debug;
    root /usr/share/nginx/html/;    
    location / {
        try_files $uri /api;
    }
    location /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;
            proxy_set_header X-Forwarded-Proto $scheme;
            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;
	
	#list of allowed IPs to access API
	allow 10.10.10.20;
	allow 10.10.40.29;
	allow 192.168.2.23;  
	allow 192.168.10.0/24;
   	deny  all;
    }
}

Fl-eżempju ta 'hawn fuq, kwalunkwe talba għall-aċċess għal kwalunkwe punt finali tal-API proxyed hija permessa biss għall-indirizzi IP 10.10.10.20, 10.10.40.29, 192.168.2.23, u kwalunkwe wieħed minn dawk fin-netwerk 192.168.10.0/24. Talbiet minn kwalunkwe indirizz IP ieħor jew netwerk jew socket tad-dominju UNIX se jiġu miċħuda.

NGINX se jirrispondi bi żball projbit 403 lill-klijent kif muri.

Meta tiċċekkja l-log tal-iżbalji /var/log/nginx/app_api_error.log, issib entrati bħal dawk murija fil-screenshot li ġej:

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

Għal aktar pariri dwar it-twebbis tas-sigurtà tas-server tal-web NGINX, iċċekkja: The Ultimate Guide to Secure and Harden Nginx Web Server.