So steuern Sie den Zugriff basierend auf der Client -IP -Adresse in NGINX

So steuern Sie den Zugriff basierend auf der Client -IP -Adresse in NGINX

Es gibt verschiedene Möglichkeiten von Nginx Web Server Security, die eine auf der IP -Adresse auf der Basis von IP -Adresse zugreifen,. In diesem Handbuch wird erläutert, wie Sie Webanwendungen sichern, indem Sie den Zugriff basierend auf der IP -Adresse eines Kunden in NGINX steuern.

In dieser Handbuch wird davon ausgegangen, dass ein Nginx -Webserver installiert und ausgeführt wird. Andernfalls lesen Sie diese Anleitungen:

  • So installieren Sie den NGINX -Webserver auf Ubuntu
  • So installieren Sie Nginx auf CentOS
  • So installieren Sie Nginx auf Debian
  • So installieren Sie Nginx auf RHEL

Steuern Sie den Zugriff basierend auf der Client -IP -Adresse in NGINX

Der NGX_HTTP_ACCESS_MODULE Das Modul in NGINX ermöglicht die Begrenzung des Zugriffs auf bestimmte Client -IP -Adressen. Sie können es mit dem aktivieren erlauben Und leugnen Richtlinien.

Der erlauben Die Richtlinie Wie der Name impliziert, ermöglicht Zugriff auf eine bestimmte IP -Adresse, ein Netzwerk, eine Unix -Socket oder alle (Schlüsselwort für die vorherigen Entitäten) und die leugnen Die Richtlinie verweigert den Zugriff auf eine bestimmte IP -Adresse, ein Netzwerk, einen Unix -Socket oder alle.

Beide Richtlinien sind in der gültig Http, Server, Standort sowie limit_except Kontext. Hier ist ein Beispiel für die Verwendung des erlauben Und leugnen Richtlinien innerhalb von a Standort Kontext, um den Zugriff auf einen API -Dienst einzuschränken:

Upstream app_api keepalive 100; Server 10.1.1.50: 5000; Server 10.1.1.71: 5001;  server listen 80; Servername _; access_log/var/log/nginx/app_api_access.log main; ERROR_LOG/VAR/LOG/NGINX/app_api_error.Protokolldebug; root/usr/share/nginx/html/; Ort / try_files $ uri / api;  location /api proxy_read_timeout 3600; proxy_connect_timeout 3600s; keepalive_timeout 15; send_timeout 300; proxy_set_header x-forward-for $ proxy_add_x_forwarded_for; proxy_set_header x-forward-proto $ Schema; 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; #liste der erlaubten ip.10.10.20; zulassen 10.10.40.29; zulassen 192.168.2.23; zulassen 192.168.10.0/24; alles leugnen;  

Im obigen Beispiel ist jede Anfrage zum Zugriff auf einen der stellvertretenden API -Endpunkte nur für die zulässig 10.10.10.20, 10.10.40.29, 192.168.2.23 IP -Adressen und alle in der 192.168.10.0/24 Netzwerk. Anfragen von einer anderen IP-Adresse, einem Netzwerk oder einer Unix-Domain-Socket werden abgelehnt.

Nginx reagiert mit einem 403 verbotenen Fehler auf den Client wie gezeigt.

Nginx 403 Verbotener Fehler

Wenn Sie die überprüfen /var/log/nginx/app_api_error.Protokoll Fehlerprotokoll finden Einträge wie die im folgenden Screenshot gezeigten:

# cat/var/log/nginx/app_api_error.Protokolldebuggen 
Überprüfen Sie die Nginx -Fehlerprotokolle

Weitere Tipps zur Härtung von NGINX Web Server -Sicherheitshärten finden Sie in der ultimativen Anleitung zum sicheren und Harden Nginx -Webserver.