technology

Como permitir/restringir o acesso por endereço IP no NGINX

.

Para acesso à Web seguro e com melhor controle no NGINX, você pode permitir e restringir determinados endereços IP, intervalos, subdomínios e URLs na configuração do NGINX.

O servidor web NGINX fornece uma variedade de configurações para proteger seu servidor web, aplicativo web, etc.

Incluindo o controle de acesso do usuário com base no endereço IP.

Você pode facilmente permitir/colocar endereços IP na lista branca e proibir/restringir/colocar endereços IP na lista negra no NGINX com base no endereço IP, intervalo de IP, subdomínio e URL do arquivo de configuração.

Neste guia, você aprenderá como permitir ou restringir um determinado endereço IP ou o intervalo de endereços IP, subdomínios e URLs no servidor web NGINX.

Motivo para permitir/restringir o acesso por endereço IP

Pode haver vários motivos para permitir e restringir o acesso por endereço IP.

E um dos motivos que está passando pela minha cabeça é que, se você planeja criar um ponto de acesso à API para desenvolvedores, pode permitir que um IP específico ou intervalo de IPs tenha acesso ao ponto da API.

Outros usos podem restringir o acesso ao URL do administrador ou colocar na lista negra um intervalo de IPs para evitar ataques de aplicativos da Web, como DDOS.

Como permitir/restringir o acesso por endereço IP no NGINX

Permitir ou restringir o acesso do usuário ao aplicativo da Web exige que você especifique endereços IP no permitir e negar diretivas.

O permitir diretiva permite o acesso a um endereço IP especificado, rede ou soquete UNIX, e o negar A diretiva não permitirá o acesso ao endereço IP, rede ou soquete UNIX especificado.

Ambas as diretivas podem ser configuradas no arquivo de configuração NGINX com base na distribuição. No meu caso, estou usando as versões mais recentes da distribuição Ubuntu e Fedora como alternativas.

Abra o arquivo de configuração NGINX

Se você estiver usando a configuração NGINX padrão sem o host virtual, execute o seguinte comando em seu aplicativo de terminal:

$ sudo nano /etc/nginx/nginx.conf

Se você tiver um arquivo de configuração separado ou sua distribuição localizar a configuração em /etc/nginx/sites-enabled/defaultentão abra sua configuração com o seguinte comando:

$ sudo nano /etc/nginx/sites-enabled/default

Etapa 2: Permitindo ou Proibindo o Endereço IP

Existem várias maneiras de permitir ou proibir o acesso ao aplicativo da web com base no endereço IP, conforme mostrado abaixo.

Para isso, anote o endereço IP que você precisa permitir e negar e defina-o nas diretivas NGINX. Abaixo estão os possíveis exemplos que você pode precisar ao modificar o arquivo de configuração.

allow 192.168.108.252;        # Only Allow 192.168.108.252 IP Address
deny 192.168.108.153;         # Only Deny 192.168.108.153 IP Address
##################################################################
allow all;                    # Allow All IP Address
deny all;                     # Deny All IP Address
##################################################################
allow 192.168.108.0/24;       # Allow IPs range from 192.168.108.0 to 192.168.108.255 
deny 192.168.108.0/24;        # Deny IPs range from 192.168.108.0 to 192.168.108.255 

As diretivas acima serão usadas para controlar o acesso do usuário com base no endereço IP ou intervalo de endereços IP definidos no arquivo de configuração NGINX.

Permitir ou proibir endereços IP no NGINX para o domínio

Agora vamos permitir o acesso ao 192.168.108.252 endereço IP e deny all solicitações de todos os endereços IP para todo o nosso domínio, usando a diretiva abaixo.

allow 192.168.108.252;
deny all;

Coloque as diretivas acima no meio do server bloquear no arquivo de configuração NGINXcomo mostrado abaixo.

Permitir ou proibir endereços IP no NGINX para o domínio padrão
Controle o acesso no NGINX por endereço IP: Permitir ou proibir endereços IP no NGINX para o domínio na configuração padrão

Se você deseja permitir todos os endereços IP e proibir 192.168.108.252em seguida, adicione as diretivas abaixo no arquivo de configuração NGINX.

allow all;
deny 192.168.108.252;

Finalmente, você pode recarregar o servidor web NGINX para aplicar as alterações.

Permitir ou proibir endereços IP no NGINX para subdomínios

As coisas ficam bem diferentes quando você tem dois subdomínios para o seu site.

Por exemplo, blog.exemplo.com e loja.exemplo.com com seus arquivos de configuração em /etc/nginx/sites-enabled/blog.conf e /etc/nginx/sites-enabled/shop.conf e deseja permitir o acesso ao 192.168.108.252 endereço IP e deny all solicitações de todos os endereços IP para o seu blog.exemplo.com subdomínio.

Para isso, você precisa abrir o blog.conf arquivo de configuração e coloque as diretivas abaixo dentro do server bloquear.

allow 192.168.108.252;
deny all;

Abaixo está o resultado das alterações acima.

Permitir ou proibir endereços IP no NGINX para subdomínio por padrão
Controle de acesso no NGINX: Permitir ou proibir endereços IP no NGINX para o subdomínio padrão

Se você deseja aplicar alterações a ambos os subdomínios, edite o blog.conf e shop.conf arquivos de configuração para ambos os subdomínios e adicione as diretivas mencionadas anteriormente.

Finalmente, você pode recarregar o servidor web NGINX para aplicar as alterações.

Permitindo ou Proibindo Faixa de IP no NGINX

Se você quiser permitir um intervalo de IP de 192.168.108.0 para 192.168.108.255 e negar todos os outros endereços IP, você pode usar o formato CIDR para o intervalo de IP.

Você pode verificar o Ferramentas de IP para CIDR para encontrar o formato CIDR de um intervalo específico de endereços IP.

Depois de conhecer o formato CIDR para o seu intervalo de IP, no meu caso, será 192.168.108.0/24 para permitir IPs de 192.168.108.0 para 192.168.108.255 e negar todos os outros endereços IP, que você pode definir na diretiva, conforme mostrado abaixo.

allow 192.168.108.0/24;
deny all;

Adicione as diretivas acima dentro do server bloco no arquivo de configuração NGINX, conforme mostrado abaixo.

Permitindo ou não permitindo o intervalo de IP no conf NGINX padrão
Controle de acesso no NGINX: Permitir ou proibir o intervalo de IP no conf padrão do NGINX

Se você quiser negar o intervalo de endereços IP de 192.168.108.0 para 192.168.108.255 e permitir todos os outros, use as diretivas abaixo.

allow all;
deny 192.168.108.0/24;

Finalmente, você pode recarregar o servidor web NGINX para aplicar as alterações.

Permitindo ou Proibindo o Endereço IP no NGINX para URL

Se você tem um exemplo.com/api URL em seu site para desenvolvimento e deseja permitir apenas o acesso ao endereço IP específico.

Por exemplo, se eu quiser permitir o acesso ao 192.168.108.252 endereço IP e deny all solicitações de todos os endereços IP para o /api URL, então você pode criar um novo location para o /api URL e adicione o location bloquear no arquivo de configuração NGINX.

location /api {
    allow 192.168.108.252;
    deny all;
}

Abaixo está o resultado das alterações acima.

Permitindo ou não permitindo o endereço IP no NGINX para URL da API na configuração padrão
Controle de acesso no NGINX: Permitir ou proibir o endereço IP no NGINX para URL da API na configuração padrão

As alterações acima restringirão o acesso ao /api URL em vez de todo o site. Outro exemplo é se você tiver um /admin URL que os usuários normais não precisam inserir.

Você pode criar um novo location para o /admin URL e adicione o location bloquear no arquivo de configuração NGINX.

location /admin {
    allow 192.168.108.252;
    deny all;
}

Abaixo está o resultado das alterações acima.

Permitindo ou Proibindo o Endereço IP no NGINX para URL de administrador na conf padrão
Controle o acesso no NGINX: Permitindo ou Proibindo o Endereço IP no NGINX para URL de administrador na conf padrão

Finalmente, você pode recarregar o servidor web NGINX para aplicar as alterações.

Permitir ou proibir vários IPs no NGINX

Se você deseja permitir o acesso a vários endereços IP e negar o acesso a todos os outros endereços, pode especificar os dois endereços IP em dois endereços separados. allow diretivas, como mostrado abaixo.

allow 192.168.108.153;
allow 192.168.108.252;
deny all;

Ele só permitirá o acesso a 192.168.108.153 e 192.168.108.252 e negar o acesso ao restante dos endereços IP. Agora, adicione-o ao server bloquear ou location bloquear para um URL específico, conforme mostrado abaixo.

Permitir ou proibir vários IPs na configuração padrão do NGINX
Controle o acesso no NGINX: Permitir ou proibir vários IPs na configuração padrão do NGINX

Finalmente, você pode recarregar o servidor web NGINX para aplicar as alterações.

Etapa 3: reinicie o NGINX e verifique o log

Execute o seguinte comando para verificar se a configuração foi atualizada sem erros:

$ sudo nginx -t

Se não houver erros, execute o seguinte comando para recarregar o servidor NGINX:

$ sudo systemctl reload nginx

Você pode verificar o /var/log/nginx/error.log arquivo para encontrar as entradas das conexões de entrada e saída para ver se a restrição e permissão estão funcionando corretamente, conforme mostrado abaixo.

$ sudo cat /var/log/nginx/error.log debug

Abaixo está a saída do comando acima.

Logs de entrada e saída do NGINX
Controle o acesso no NGINX: Logs de entrada e saída do NGINX

Isso é tudo para este guia, onde expliquei como ter um melhor controle do acesso ao seu aplicativo da Web, permitindo e negando determinados endereços IP, intervalos e subdomínios no NGINX.

Se você tiver alguma dúvida sobre o tema, sinta-se à vontade para comentar.

Verifique: Lista de negação dinâmica de endereços IP

.

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo