Kuinka hallita pääsyä asiakkaan IP-osoitteen perusteella NGINX:ssä
On olemassa useita tapoja NGINX-verkkopalvelimen turvallisuuden vahvistamiseen, joista yksi on IP-osoitteeseen perustuva pääsynhallinta. Tämä opas selittää, kuinka suojata verkkosovelluksia hallitsemalla pääsyä asiakkaan IP-osoitteen perusteella NGINX:ssä.
Tässä oppaassa oletetaan, että NGINX-verkkopalvelin on asennettu ja käynnissä. Muussa tapauksessa tutustu näihin oppaisiin:
- Kuinka asentaa Nginx Web Server Ubuntuun
- Kuinka asentaa Nginx CentOS:ään
- Kuinka asentaa Nginx Debianiin
- Kuinka asentaa Nginx RHEL:ään
Hallitse pääsyä asiakkaan IP-osoitteen perusteella NGINX:ssä
NGINX:n ngx_http_access_module-moduuli mahdollistaa pääsyn rajoittamisen tiettyihin asiakkaiden IP-osoitteisiin. Voit aktivoida sen allow- ja deny-komennoilla.
allow-direktiivi, kuten nimestä voi päätellä, sallii pääsyn tietylle IP-osoitteelle, verkolle, Unix-pistorasialle tai kaikille (avainsana aiemmille entiteeteille), ja kieltäy-direktiivi estää pääsyn. tietylle IP-osoitteelle, verkolle, Unix-pistorasialle tai kaikille.
Molemmat direktiivit ovat voimassa HTTP-, palvelin-, sijainti- ja limit_except-kontekstissa. Tässä on esimerkki allow- ja deny-käskyjen käytöstä sijaintikontekstissa rajoittamaan pääsyä API-palveluun:
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;
}
}
Yllä olevassa esimerkissä kaikki välityspalvelimen API-päätepisteiden käyttöpyynnöt sallitaan vain seuraaville: 10.10.10.20, 10.10.40.29, 192.168.2.23. IP-osoitteet ja mitkä tahansa 192.168.10.0/24-verkon osoitteet. Pyynnöt mistä tahansa muusta IP-osoitteesta tai verkosta tai UNIX-verkkotunnuksen pistokkeesta hylätään.
NGINX vastaa asiakkaalle 403 kielletyllä virheellä kuvan osoittamalla tavalla.
Kun tarkistat /var/log/nginx/app_api_error.log-virhelokin, löydät seuraavan kuvakaappauksen kaltaisia merkintöjä:
cat /var/log/nginx/app_api_error.log debug
Lisää vinkkejä NGINX-verkkopalvelimen tietoturvan vahvistamiseen on artikkelissa Ultimate Guide to Secure and Harden Nginx Web Server.