Jinsi ya Kudhibiti Upataji Kulingana na Anwani ya IP ya Mteja katika NGINX


Kuna njia kadhaa za ugumu wa usalama wa seva ya wavuti ya NGINX moja ambayo ni udhibiti wa ufikiaji kulingana na anwani ya IP. Mwongozo huu unaelezea jinsi ya kupata programu za wavuti kwa kudhibiti ufikiaji kulingana na anwani ya IP ya mteja katika NGINX.

Mwongozo huu unadhania kuwa una seva ya wavuti ya NGINX iliyosanikishwa na inayoendesha, vinginevyo angalia miongozo hii:

  • Jinsi ya Kusakinisha Seva ya Wavuti ya Nginx kwenye Ubuntu
  • Jinsi ya kusakinisha Nginx kwenye CentOS
  • Jinsi ya kusakinisha Nginx kwenye Debian
  • Jinsi ya kusakinisha Nginx kwenye RHEL

Dhibiti Ufikiaji Kulingana na Anwani ya IP ya Mteja katika NGINX

Moduli ya ngx_http_access_module katika NGINX huwezesha kuzuia ufikiaji wa anwani fulani za IP za mteja. Unaweza kuiwasha kwa kuruhusu na kukataa maagizo.

Agizo la kuruhusu kama jina linamaanisha huruhusu ufikiaji wa anwani mahususi ya IP, mtandao, soketi ya Unix, au zote (neno kuu la huluki zilizopita), na agizo la kukataa linakataa ufikiaji wa anwani mahususi ya IP, mtandao, soketi ya Unix, au zote.

Maagizo yote mawili ni halali katika HTTP, seva, eneo na limit_isipokuwa muktadha. Huu hapa ni mfano wa kutumia ruhusu na kukataa maagizo ndani ya muktadha wa eneo ili kuzuia ufikiaji wa huduma ya 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;
    }
}

Katika mfano ulio hapo juu, ombi lolote la kufikia sehemu za mwisho za API zilizowekwa linaruhusiwa tu kwa anwani za IP za 10.10.10.20, 10.10.40.29, 192.168.2.23, na mojawapo ya anwani za IP za 192.168.10.0/24. Maombi kutoka kwa anwani nyingine yoyote ya IP au mtandao au soketi ya kikoa cha UNIX yatakataliwa.

NGINX itajibu kwa kosa la 403 lililokatazwa kwa mteja kama inavyoonyeshwa.

Unapoangalia logi ya makosa ya /var/log/nginx/app_api_error.log, utapata maingizo kama yale yaliyoonyeshwa kwenye skrini ifuatayo:

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

Kwa vidokezo zaidi vya ugumu wa usalama wa seva ya wavuti ya NGINX, angalia: Mwongozo wa Mwisho wa Kulinda na Kuimarisha Seva ya Wavuti ya Nginx.