NGINX-de müşderi IP adresi esasynda elýeterliligi nädip dolandyrmaly


NGINX web serweriniň howpsuzlygyny berkitmegiň birnäçe usuly bar, bularyň biri IP adresi esasynda giriş gözegçiligi. Bu gollanma, NGINX-daky müşderiniň IP adresi esasynda girişi gözegçilikde saklamak arkaly web programmalaryny nädip goramalydygyny düşündirýär.

Bu gollanma, NGINX web serweriniň gurnalandygyny we işleýändigini çaklaýar, ýogsam şu gollanmalara göz aýlaň:

  • Ubuntu-da Nginx web serwerini nädip gurmaly
  • Centgin-de Nginx-i nädip gurmaly
  • Nbianx-i Debian-a nädip gurmaly
  • Rgin-de Nginx-i nädip gurmaly

NGINX-de müşderiniň IP salgysyna esaslanýan gözegçilik

NGINX-daky ngx_http_access_module moduly, belli bir müşderiniň IP adreslerine girişi çäklendirmäge mümkinçilik berýär. Rugsat bilen işjeňleşdirip we görkezmeleri inkär edip bilersiňiz.

Adyndan görnüşi ýaly rugsat beriş görkezmesi belli bir IP adrese, tora, Unix rozetkasyna ýa-da hemmesine (öňki guramalar üçin açar söz) girmäge mümkinçilik berýär we inkär etmek görkezmesi belli bir IP adrese, tora, Unix rozetkasyna ýa-da hemmesine girmegi ret edýär.

Iki görkezme hem HTTP, serwer, ýerleşýän ýeri we limit_except kontekstinde hereket edýär. Ynha, API hyzmatyna girmegi çäklendirmek üçin ýerleşiş kontekstindäki rugsatlary ulanmagyň we inkär etmegiň mysaly:

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

Aboveokardaky mysalda, proksi API ahyrky nokatlarynyň islendik birine girmek islegine diňe 10.10.10.20, 10.10.40.29, 192.168.2.23 IP adresleri we 192.168.10.0/24 torundaky haýsydyr bir salgy üçin rugsat berilýär. Islendik başga IP adresi ýa-da tor ýa-da UNIX-domen rozetkasyndan islegler ret ediler.

NGINX, görkezilişi ýaly müşderä 403 gadagan ýalňyşlyk bilen jogap berer.

/Var/log/nginx/app_api_error.log säwlik gündeligini barlasaňyz, aşakdaky skrinshotda görkezilişi ýaly ýazgylary taparsyňyz:

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

Has köp NGINX web serweriniň howpsuzlygyny berkitmek boýunça maslahatlar üçin göz aýlaň: Howpsuzlyk we Harden Nginx web serweri üçin iň soňky gollanma.