DevOps

Configuração de Autenticação de Senha Nginx

A configuração de autenticação de senha no servidor web Nginx em um sistema Ubuntu pode ser realizada utilizando o módulo “ngx_http_auth_basic_module”. Este módulo permite que você restrinja o acesso a determinados recursos do seu site ou aplicativo da web por meio de uma autenticação baseada em senha.

Aqui está um guia passo a passo sobre como configurar a autenticação de senha com o Nginx em um servidor Ubuntu:

  1. Instale o Nginx:
    Certifique-se de ter o Nginx instalado em seu servidor Ubuntu. Se não estiver instalado, você pode fazê-lo utilizando o gerenciador de pacotes apt:

    sql
    sudo apt update sudo apt install nginx
  2. Crie um arquivo de senha:
    Primeiro, você precisa criar um arquivo que conterá os pares de nome de usuário e senha. Você pode fazer isso usando a ferramenta htpasswd, que geralmente está disponível no pacote apache2-utils:

    sql
    sudo apt update sudo apt install apache2-utils

    Depois de instalar as apache2-utils, você pode criar o arquivo de senha com o seguinte comando, substituindo pelo nome do arquivo que você deseja usar (por exemplo, senhas):

    php
    sudo htpasswd -c /etc/nginx/<nome_do_arquivo> <nome_de_usuário>

    Você será solicitado a inserir e confirmar a senha para o usuário especificado. Se você estiver adicionando mais usuários posteriormente, não use a opção -c, pois ela é usada apenas para criar um novo arquivo. Adicione usuários adicionais sem a opção -c:

    php
    sudo htpasswd /etc/nginx/<nome_do_arquivo> <nome_de_usuário>

    Certifique-se de substituir e pelos valores desejados.

  3. Configure o Nginx para usar a autenticação básica:
    Agora que você tem o arquivo de senha pronto, pode configurar o Nginx para usar a autenticação básica. Abra o arquivo de configuração do seu site em um editor de texto. Por exemplo, se você estiver configurando o site padrão do Nginx, o arquivo de configuração pode ser encontrado em /etc/nginx/sites-available/default.

    Adicione as seguintes linhas dentro do bloco de servidor para o local que deseja proteger:

    bash
    location /diretorio_protegido { auth_basic "Área restrita"; auth_basic_user_file /etc/nginx/; # Outras diretivas de configuração, se houver... }

    Substitua /diretorio_protegido pelo caminho do diretório que você deseja proteger e pelo nome do arquivo de senha que você criou anteriormente.

  4. Teste a configuração e recarregue o Nginx:
    Antes de aplicar as alterações, é importante testar a configuração do arquivo de configuração do Nginx para garantir que não haja erros de sintaxe. Você pode fazer isso executando o seguinte comando:

    sudo nginx -t

    Se o teste for bem-sucedido, você verá uma mensagem indicando que a configuração do arquivo está OK. Em seguida, recarregue o Nginx para aplicar as alterações:

    sudo systemctl reload nginx
  5. Acesse o diretório protegido:
    Agora, ao acessar o diretório protegido em seu navegador, você será solicitado a inserir um nome de usuário e senha. Insira as credenciais que você configurou no arquivo de senha e você deverá ter acesso ao conteúdo do diretório protegido.

  6. Gerenciar usuários e senhas:
    Se você precisar adicionar ou remover usuários ou alterar suas senhas, você pode fazer isso usando o comando htpasswd novamente:

    Para adicionar um novo usuário:

    php
    sudo htpasswd /etc/nginx/<nome_do_arquivo> <novo_nome_de_usuário>

    Para remover um usuário:

    php
    sudo htpasswd -D /etc/nginx/<nome_do_arquivo> <nome_de_usuário_a_ser_removido>

    Para alterar a senha de um usuário:

    php
    sudo htpasswd /etc/nginx/<nome_do_arquivo> <nome_de_usuário>

    Certifique-se de recarregar o Nginx após fazer qualquer alteração no arquivo de senha para que as alterações entrem em vigor.

Este guia fornece os passos necessários para configurar a autenticação de senha com o Nginx em um servidor Ubuntu. Lembre-se de que a autenticação de senha básica não é criptografada, portanto, é recomendável usá-la apenas em conjunto com HTTPS para garantir a segurança das informações de login.

“Mais Informações”

Claro, vou expandir ainda mais sobre cada etapa da configuração de autenticação de senha com o Nginx no Ubuntu, fornecendo mais detalhes e contexto para cada passo:

  1. Instalação do Nginx:
    O Nginx é um servidor web de código aberto conhecido por sua excelente escalabilidade e desempenho. No Ubuntu, a instalação do Nginx é bastante simples, pois está disponível nos repositórios padrão do sistema. Após a instalação, o Nginx geralmente é configurado para servir arquivos do diretório /var/www/html/ como a raiz do site padrão.

  2. Criação do arquivo de senha:
    Para restringir o acesso a determinadas partes do seu site ou aplicativo da web, você precisa primeiro criar um arquivo que armazenará as informações de autenticação dos usuários. Este arquivo é criado com o auxílio da ferramenta htpasswd, que geralmente faz parte do pacote apache2-utils no Ubuntu.

    O comando htpasswd é usado para adicionar, remover e modificar usuários e senhas em arquivos de senha. Ao criar o arquivo de senha pela primeira vez, você utiliza a opção -c para indicar que é um novo arquivo. Se estiver adicionando usuários adicionais, você não precisa usar essa opção.

  3. Configuração do Nginx para autenticação básica:
    Dentro do arquivo de configuração do Nginx do seu site, você define as regras de autenticação básica usando o módulo ngx_http_auth_basic_module. Este módulo permite que você defina áreas restritas do seu site e especifique um arquivo de senha que contém as informações de autenticação dos usuários.

    Ao definir uma área restrita, você utiliza a diretiva auth_basic para especificar a mensagem exibida na caixa de diálogo de autenticação do navegador e a diretiva auth_basic_user_file para apontar para o arquivo de senha que você criou anteriormente.

  4. Teste da configuração e recarregamento do Nginx:
    Antes de aplicar as alterações de configuração, é crucial testar a sintaxe do arquivo de configuração do Nginx para evitar possíveis erros que possam causar problemas no servidor. O comando nginx -t verifica a sintaxe do arquivo de configuração sem recarregar o Nginx. Se o teste for bem-sucedido, você pode recarregar o Nginx para aplicar as alterações usando systemctl reload nginx.

  5. Acesso ao diretório protegido:
    Após configurar a autenticação de senha, ao acessar o diretório protegido em um navegador da web, o servidor Nginx solicitará um nome de usuário e senha. Essas credenciais são verificadas pelo arquivo de senha especificado na configuração. Se as credenciais estiverem corretas, o acesso ao conteúdo protegido será concedido.

  6. Gerenciamento de usuários e senhas:
    Você pode adicionar, remover ou modificar usuários e senhas no arquivo de senha usando o comando htpasswd. Este comando oferece várias opções para realizar essas operações de maneira fácil e segura. Lembre-se sempre de recarregar o Nginx após fazer alterações no arquivo de senha para garantir que as alterações entrem em vigor imediatamente.

Este processo de configuração de autenticação de senha com o Nginx proporciona uma camada adicional de segurança para áreas restritas do seu site ou aplicativo da web, garantindo que apenas usuários autorizados possam acessar o conteúdo protegido. Ao seguir esses passos detalhados, você pode configurar facilmente a autenticação de senha em seu servidor Nginx no Ubuntu.

Botão Voltar ao Topo