Pular para o conteúdo principal

Configuração de segurança adicional em servidores de aplicação NGINX

atenção

⚠️ 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:

  1. Gere um hash a partir da sua senha (pode usar qualquer ferramenta htpasswd, por exemplo: https://htpasswd.utils.com);

  2. Crie um arquivo .htpasswd na raiz do seu projeto;

  3. Insira o conteúdo do hash gerado anteriormente dentro do arquivo .htpasswd e o salve;

  4. 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 na aplicacao toda

    • 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:

    Autenticação em diretorio especifico

  5. 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.

Tela de autenticação

🛑 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.

atenção
  • 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.

  1. 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:

    Restricao na aplicacao toda

    • 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:

    Restricao em diretorio especifico

  2. 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.

403 Forbidden

dica

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.

Diretiva satisfy

🧠 Dúvidas?

Entre em contato com o suporte técnico e envie sua dúvida que estaremos à disposição para te ajudar!