Jak kontrolować dostęp na podstawie adresu IP klienta w Nginx

Jak kontrolować dostęp na podstawie adresu IP klienta w Nginx

Istnieje kilka sposobów utwardzania bezpieczeństwa serwera WWW, z których jeden jest kontrola dostępu na podstawie adresu IP. Niniejszy przewodnik wyjaśnia, jak zabezpieczyć aplikacje internetowe, kontrolując dostęp na podstawie adresu IP klienta w Nginx.

W tym przewodniku zakłada, że ​​masz zainstalowany i uruchomiony serwer WWW Nginx, w przeciwnym razie sprawdź te przewodniki:

  • Jak zainstalować serwer WWW Nginx na Ubuntu
  • Jak zainstalować Nginx na centrali
  • Jak zainstalować Nginx na Debian
  • Jak zainstalować Nginx na RHEL

Kontrola dostępu na podstawie adresu IP klienta w Nginx

ngx_http_access_module Moduł w Nginx umożliwia ograniczenie dostępu do niektórych adresów IP klienta. Możesz go aktywować za pomocą umożliwić I zaprzeczyć dyrektywy.

umożliwić dyrektywa, jak sama nazwa wskazuje na dostęp do określonego adresu IP, sieci, gniazda unix lub wszystkich (słowo kluczowe dla poprzednich jednostek) i zaprzeczyć Dyrektywa zaprzecza dostępu do określonego adresu IP, sieci, gniazda Unixa lub wszystkich.

Obie dyrektywy są ważne w Http, serwer, lokalizacja i limit_except kontekst. Oto przykład używania umożliwić I zaprzeczyć dyrektywy w ramach Lokalizacja kontekst w celu ograniczenia dostępu do usługi API:

Upstream App_API KeepAlive 100; serwer 10.1.1.50: 5000; serwer 10.1.1.71: 5001;  serwer słuchaj 80; Nazwa serwera _; access_log/var/log/nginx/app_api_access.Log Main; error_log/var/log/nginx/app_api_error.DEBUG LOG; root/usr/share/nginx/html/; lokalizacja / try_files $ uri / api;  lokalizacja /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; #lista dozwolonych IPS dostępu do interfejsu API zezwala na 10.10.10.20; Pozwól 10.10.40.29; Pozwól 192.168.2.23; Pozwól 192.168.10.0/24; zaprzeczać wszystkiemu;  

W powyższym przykładzie każde żądanie dostępu do dowolnego z podrzędnych punktów końcowych API jest dozwolone tylko dla 10.10.10.20, 10.10.40.29, 192.168.2.23 Adresy IP i dowolne z tych w 192.168.10.0/24 sieć. Żądania z dowolnego innego adresu IP lub sieci lub gniazda domenu unixa zostaną odrzucone.

Nginx odpowie klientowi 403 zakazanym.

Nginx 403 Zakazany błąd

Kiedy sprawdzasz /var/log/nginx/app_api_error.dziennik Dziennik błędów znajdziesz wpisy, takie jak te pokazane na poniższym zrzucie ekranu:

# cat/var/log/nginx/app_api_error.DEBUG LOG 
Sprawdź dzienniki błędów Nginx

Aby uzyskać więcej wskazówek dotyczących zabezpieczenia serwera WWW Nginx, sprawdź: Ultimate Guide to Secure and Harden Nginx Server.