NGINX-ലെ ക്ലയന്റ് IP വിലാസത്തെ അടിസ്ഥാനമാക്കി ആക്സസ് എങ്ങനെ നിയന്ത്രിക്കാം


NGINX വെബ് സെർവർ സുരക്ഷ കഠിനമാക്കുന്നതിന് നിരവധി മാർഗങ്ങളുണ്ട്, അതിലൊന്ന് IP വിലാസത്തെ അടിസ്ഥാനമാക്കിയുള്ള ആക്സസ് നിയന്ത്രണമാണ്. NGINX-ലെ ഒരു ക്ലയന്റിന്റെ IP വിലാസത്തെ അടിസ്ഥാനമാക്കി ആക്uസസ് നിയന്ത്രിച്ച് വെബ് ആപ്ലിക്കേഷനുകൾ എങ്ങനെ സുരക്ഷിതമാക്കാമെന്ന് ഈ ഗൈഡ് വിശദീകരിക്കുന്നു.

ഈ ഗൈഡ് നിങ്ങൾക്ക് ഒരു NGINX വെബ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുകയും പ്രവർത്തിക്കുകയും ചെയ്തിട്ടുണ്ടെന്ന് അനുമാനിക്കുന്നു, അല്ലാത്തപക്ഷം ഈ ഗൈഡുകൾ പരിശോധിക്കുക:

  • ഉബുണ്ടുവിൽ Nginx വെബ് സെർവർ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം
  • CentOS-ൽ Nginx എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം
  • ഡെബിയനിൽ Nginx എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം
  • RHEL-ൽ Nginx എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം

എൻuജിuഐuഎൻuഎക്uസിലെ ക്ലയന്റ് ഐപി വിലാസത്തെ അടിസ്ഥാനമാക്കി ആക്uസസ്സ് നിയന്ത്രിക്കുക

NGINX-ലെ ngx_http_access_module മൊഡ്യൂൾ ചില ക്ലയന്റ് IP വിലാസങ്ങളിലേക്കുള്ള പ്രവേശനം പരിമിതപ്പെടുത്തുന്നത് സാധ്യമാക്കുന്നു. അനുവദിക്കുകയും നിരസിക്കുകയും ചെയ്യുന്ന നിർദ്ദേശങ്ങൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇത് സജീവമാക്കാം.

പേര് സൂചിപ്പിക്കുന്നത് പോലെ അനുവദനീയമായ നിർദ്ദേശം ഒരു നിർദ്ദിഷ്uട IP വിലാസം, നെറ്റ്uവർക്ക്, Unix സോക്കറ്റ് അല്ലെങ്കിൽ എല്ലാം (മുമ്പത്തെ എന്റിറ്റികൾക്കുള്ള കീവേഡ്) ആക്uസസ്സ് അനുവദിക്കുന്നു, കൂടാതെ നിരസിക്കുന്ന നിർദ്ദേശം ഒരു നിർദ്ദിഷ്ട IP വിലാസം, നെറ്റ്uവർക്ക്, Unix സോക്കറ്റ് അല്ലെങ്കിൽ എല്ലാത്തിനുമുള്ള ആക്uസസ് നിഷേധിക്കുന്നു.

രണ്ട് നിർദ്ദേശങ്ങളും HTTP, സെർവർ, ലൊക്കേഷൻ എന്നിവയിലും പരിധി_ഒഴികെ സന്ദർഭത്തിലും സാധുതയുള്ളതാണ്. ഒരു API സേവനത്തിലേക്കുള്ള ആക്uസസ് നിയന്ത്രിക്കുന്നതിന് ഒരു ലൊക്കേഷൻ സന്ദർഭത്തിനുള്ളിൽ അനുവദിക്കുക, നിരസിക്കുക എന്നീ നിർദ്ദേശങ്ങൾ ഉപയോഗിക്കുന്നതിന്റെ ഒരു ഉദാഹരണം ഇതാ:

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;
    }
}

മേൽപ്പറഞ്ഞ ഉദാഹരണത്തിൽ, പ്രോക്uസി ചെയ്uത ഏതെങ്കിലും എപിഐ എൻഡ്uപോയിന്റുകൾ ആക്uസസ് ചെയ്യാനുള്ള ഏതൊരു അഭ്യർത്ഥനയും 10.10.10.20, 10.10.40.29, 192.168.2.23 IP വിലാസങ്ങൾക്കും 192.168.10.0/24 നെറ്റ്uവർക്കിലെ ഏതെങ്കിലുംവയ്uക്കും മാത്രമേ അനുവദിക്കൂ. മറ്റേതെങ്കിലും IP വിലാസത്തിൽ നിന്നോ നെറ്റ്uവർക്കിൽ നിന്നോ UNIX-ഡൊമെയ്uൻ സോക്കറ്റിൽ നിന്നോ ഉള്ള അഭ്യർത്ഥനകൾ നിരസിക്കപ്പെടും.

കാണിച്ചിരിക്കുന്നതുപോലെ ക്ലയന്റിനോട് NGINX 403 നിരോധിത പിശക് ഉപയോഗിച്ച് പ്രതികരിക്കും.

നിങ്ങൾ /var/log/nginx/app_api_error.log പിശക് ലോഗ് പരിശോധിക്കുമ്പോൾ, ഇനിപ്പറയുന്ന സ്ക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലുള്ള എൻട്രികൾ നിങ്ങൾ കണ്ടെത്തും:

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

കൂടുതൽ NGINX വെബ് സെർവർ സെക്യൂരിറ്റി ഹാർഡനിംഗ് നുറുങ്ങുകൾക്കായി, പരിശോധിക്കുക: Nginx വെബ് സെർവറിനെ സുരക്ഷിതമാക്കുന്നതിനും കഠിനമാക്കുന്നതിനുമുള്ള അൾട്ടിമേറ്റ് ഗൈഡ്.