Configuração de segurança adicional em servidores de aplicação NGINX
⚠️ Todas as configurações feitas neste manual são exemplos simples e hipotéticos. Será necessário realizar adaptações conforme a topologia do seu ambiente.
Aprenda a realizar configurações de segurança adicionais para sua aplicações PHP hospedadas em servidores de aplicação NGINX utilizando autenticação
ou restrição de acesso
.
🔒 Autenticação
Para realizar a configuração de acesso por autenticação, siga os passos abaixo:
-
Gere um hash a partir da sua senha (pode usar qualquer ferramenta htpasswd, por exemplo: https://htpasswd.utils.com);
-
Crie um arquivo
.htpasswd
na raiz do seu projeto; -
Insira o conteúdo do hash gerado anteriormente dentro do arquivo
.htpasswd
e o salve; -
Acesse o arquivo
default.conf
no diretório /etc/nginx/conf.d/sites-enabled e realize as seguintes modificações:- Autenticação para a aplicação toda: adicione as seguintes diretivas nas configurações do location.
auth_basic "Area restrita";
auth_basic_user_file /var/www/webroot/ROOT/.htpasswd;Devendo ficar da seguinte maneira:
- Autenticação para um diretório específico: adicione as seguintes diretivas nas configurações do location, devendo o diretório específico ser informado.
auth_basic "Area restrita";
auth_basic_user_file /var/www/webroot/ROOT/.htpasswd;Devendo ficar da seguinte maneira:
-
Salve as alterações realizadas e reinicie o NGINX.
Ao acessar a sua aplicação ou diretório protegido, um usuário e senha será solicitado para se autenticar.
🛑 Restrição de acesso
Você também pode definir quais clientes podem acessar a sua aplicação permitindo ou negando o acesso por endereço IP por meio das diretivas allow
e deny
.
-
A permissão e negação por endereço IP só funcionará se a instância estiver utilizando endereço IP público.
-
As regras definidas são verificadas em sequência.
-
Acesse o arquivo
default.conf
no diretório /etc/nginx/conf.d/sites-enabled e realize as seguintes modificações:- Negar acesso para a aplicação toda: adicione as seguintes diretivas nas configurações do location.
allow 192.168.0.1;
deny 172.31.0.0/16;
allow 2001:0db8::/32;
deny all;Devendo ficar parecido com o exemplo abaixo:
- Negar acesso para um diretório específico: adicione as seguintes diretivas nas configurações do location, devendo o diretório específico ser informado.
allow 192.168.0.1;
deny 172.31.0.0/16;
allow 2001:0db8::/32;
deny all;Devendo ficar parecido com o exemplo abaixo:
-
Salve as alterações realizadas e reinicie o NGINX.
Ao acessar a sua aplicação ou diretório protegido, qualquer IP como deny
terá como retorno o erro 403 Forbidden.
Você pode estar utilizando as configurações de segurança por autenticação e critérios de restrições de acesso em conjunto ao definir a diretiva satisfy
no começo da configuração.
ℹ️ Links úteis
🧠 Dúvidas?
Entre em contato com o suporte técnico e envie sua dúvida que estaremos à disposição para te ajudar!