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

- 4623
- 1004
- Wendell Legros
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.

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

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.
- « 10 ferramentas úteis para criar USB inicializável a partir de uma imagem ISO
- Ferramentas de GUI úteis para liberar espaço no Ubuntu e Linux Mint »