Como controlar o acesso com base no endereço IP do cliente no nginx

Como controlar o acesso com base no endereço IP do cliente no nginx

Existem várias maneiras de endurecer a segurança do servidor da web nginx, uma das quais é o controle de acesso com base no endereço IP. Este guia explica como proteger aplicativos da Web controlando o acesso com base no endereço IP de um cliente no Nginx.

Este guia pressupõe que você tenha um servidor Web Nginx instalado e em execução; caso contrário, confira estes guias:

  • Como instalar o Nginx Web Server no Ubuntu
  • Como instalar o nginx no CentOS
  • Como instalar o Nginx no Debian
  • Como instalar o nginx no rhel

Controle o acesso com base no endereço IP do cliente no nginx

O ngx_http_access_module Módulo no Nginx permite limitar o acesso a determinados endereços IP do cliente. Você pode ativá -lo com o permitir e negar diretivas.

O permitir A diretiva como o nome implica permite o acesso a um endereço IP específico, rede, soquete Unix ou todas (palavra -chave para as entidades anteriores) e o negar A diretiva nega o acesso para um endereço IP específico, rede, soquete Unix ou todos.

Ambas as diretivas são válidas no Http, servidor, localização e também Limite excedido contexto. Aqui está um exemplo de usar o permitir e negar diretivas dentro de um localização Contexto para restringir o acesso a um serviço de API:

upstream App_Api Keepalive 100; Servidor 10.1.1.50: 5000; Servidor 10.1.1.71: 5001;  servidor Ouça 80; nome do servidor _; access_log/var/log/nginx/app_api_access.log main; error_log/var/log/nginx/app_api_error.depuração de log; root/usr/share/nginx/html/; Localização / Try_files $ URI / API;  localização /api proxy_read_timeout 3600; proxy_connect_timeout 3600s; Keepalive_timeout 15; send_timeout 300; proxy_set_header x forwarded para $ proxy_add_x_forwarded_for; proxy_set_header x forwarded-proto $ esquema; proxy_set_header host $ http_host; proxy_redirect off; proxy_http_version 1.1; proxy_set_header conexão ""; proxy_pass http: // app_api $ request_uri; #list of permitido ips para acessar a API Permitir 10.10.10.20; Aguarde 10.10.40.29; Permitir 192.168.2.23; Permitir 192.168.10.0/24; negar tudo;  

No exemplo acima, qualquer solicitação para acessar qualquer um dos pontos de extremidade da API proxado é permitido apenas para o 10.10.10.20, 10.10.40.29, 192.168.2.23 Endereços IP e qualquer um dos 192.168.10.0/24 rede. Solicitações de qualquer outro endereço IP ou rede ou soquete de domínio UNIX serão negados.

Nginx responderá com um erro proibido 403 ao cliente, como mostrado.

Nginx 403 Erro proibido

Quando você verifica o /var/log/nginx/app_api_error.registro Log de erros, você encontrará entradas como as mostradas na captura de tela a seguir:

# cat/var/log/nginx/app_api_error.depuração de log 
Verifique os logs de erro nginx

Para mais dicas de endurecimento de segurança do servidor da web nginx, consulte: o guia final para proteger e endurecer o servidor web nginx nginx.