Hvernig á að stjórna aðgangi byggt á IP tölu viðskiptavinar í NGINX


Það eru nokkrar leiðir til að herða NGINX vefþjónsöryggi, þar af ein er aðgangsstýring byggð á IP tölu. Þessi handbók útskýrir hvernig á að tryggja vefforrit með því að stjórna aðgangi byggt á IP tölu viðskiptavinar í NGINX.

Þessi handbók gerir ráð fyrir að þú sért með NGINX vefþjón uppsettan og í gangi, annars skoðaðu þessar handbækur:

  • Hvernig á að setja upp Nginx vefþjón á Ubuntu
  • Hvernig á að setja upp Nginx á CentOS
  • Hvernig á að setja upp Nginx á Debian
  • Hvernig á að setja upp Nginx á RHEL

Stjórna aðgangi byggt á IP tölu viðskiptavinar í NGINX

ngx_http_access_module einingin í NGINX gerir kleift að takmarka aðgang að ákveðnum IP tölum viðskiptavinarins. Þú getur virkjað það með leyfi og neita tilskipunum.

Leyfa tilskipunin eins og nafnið gefur til kynna leyfir aðgang fyrir tiltekið IP tölu, net, Unix fals eða allt (lykilorð fyrir fyrri aðila), og neita tilskipunin neitar aðgangi fyrir tiltekið IP tölu, net, Unix fals eða allt.

Báðar tilskipanirnar gilda í HTTP, miðlara, staðsetningu sem og limit_except samhengi. Hér er dæmi um notkun leyfa og neita tilskipunum innan staðsetningarsamhengis til að takmarka aðgang að API þjónustu:

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

Í dæminu hér að ofan eru allar beiðnir um að fá aðgang að einhverjum af proxy-endapunktum API aðeins leyfðar fyrir 10.10.10.20, 10.10.40.29, 192.168.2.23 IP-tölur og hvaða sem er í 192.168.10.0/24 netinu. Beiðnum frá hvaða IP-tölu eða netkerfi sem er eða UNIX-lénstengi verður hafnað.

NGINX mun svara með 403 bannaða villu til viðskiptavinarins eins og sýnt er.

Þegar þú athugar /var/log/nginx/app_api_error.log villuskrána finnurðu færslur eins og þær sem sýndar eru á eftirfarandi skjámynd:

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

Fyrir fleiri NGINX vefþjóna öryggisherðingu ráðleggingar, skoðaðu: The Ultimate Guide to Secure and Harden Nginx Web Server.