Table of Contents
Introdução
Este tutorial trará um passo a passo sobre como proteger ativos em um servidor Web Apache em execução no Ubuntu 18.04. O cumprimento desses passos dará segurança adicional para seu servidor, de modo que usuários não autorizados não possam acessar certas partes de sua página.
Para obter uma versão mais detalhada deste tutorial, com explicações mais detalhadas de cada passo, consulte o artigo sobre Como configurar a autenticação por senha com o Apache no Ubuntu 18.04.
Pré-requisitos
Para completar este tutorial, será necessário ter acesso ao seguinte em um servidor Ubuntu 18.04:
- Um usuário
sudono seu servidor
- Um servidor de Web Apache2
- Um site protegido com o protocolo SSL
Passo 1 — Instalar o pacote de utilitários do Apache
Instalaremos um serviço chamado htpasswd, que faz parte do pacote apache2-utils para gerenciar nomes de usuário e senhas de acesso ao conteúdo restrito.
sudo apt update
sudo apt install apache2-utils
Passo 2 — Criar o arquivo de senha
Criaremos o primeiro usuário do seguinte modo (substitua o `<^>first_username<^> pelo nome de usuário de sua escolha):
sudo htpasswd -c /etc/apache2/.htpasswd <^>first_username<^>
Será solicitado que forneça e confirme uma senha para o usuário.
Deixe o argumento -c para quaisquer usuários adicionais que queira adicionar para que você não substitua o arquivo:
sudo htpasswd /etc/apache2/.htpasswd <^>another_user<^>
Passo 3 — Configurar a autenticação por senha do Apache
Neste passo, precisamos configurar o Apache para verificar esse arquivo, antes de atender nosso conteúdo protegido. Faremos isso usando o arquivo de host virtual do site. Há, porém, outra opção detalhada no tutorial mais longo, caso não tenha acesso ou prefira usar os .htaccess.
Abra o arquivo de host virtual ao qual deseja adicionar uma restrição, usando um editor de texto, como o nano:
sudo nano /etc/apache2/sites-enabled/<^>default-ssl.conf<^>
A autenticação é feita com base em cada diretório. Em nosso exemplo, iremos restringir o diretório base inteiro. Entretanto, você poderá alterar essa listagem para atingir um diretório específico, dentro do espaço Web.
Neste passo, adicione as linhas destacadas no seu arquivo:
[label /etc/apache2/sites-enabled/default-ssl.conf]
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/www/html">
<^>AuthType Basic<^>
<^>AuthName "Restricted Content"<^>
<^>AuthUserFile /etc/apache2/.htpasswd<^>
<^>Require valid-user<^>
</Directory>
</VirtualHost>
Verifique a configuração com o seguinte comando:
É possível reiniciar o servidor para implementar sua política de senha e, em seguida, verificar o status do seu servidor.
sudo systemctl restart apache2
sudo systemctl status apache2
Passo 4 — Confirmar a autenticação por senha
Para confirmar se o seu conteúdo está protegido, tente acessar seu conteúdo restrito em um navegador Web. Você deve receber um prompt com nome de usuário e senha:
Tutoriais relacionados
Aqui estão os links para os guias mais detalhados relacionados a este tutorial:
- Familiarizando-se com arquivos e diretórios importantes do Apache, no nosso Guia de instalação do Apache.