Dica: Como proteger com password um site no Apache?
O Apache é provavelmente o servidor Web mais usado em todo o mundo. Este serviço oferece as mais diversas funcionalidades e hoje ensinamos como podem facilmente proteger um site com utilizador + password. O processo é bastante simples e não necessitam de qualquer ferramenta da terceiros.
Proteger um site com autenticação é algo bastante simples de realizar no Apache. No passado já ensinamos aqui como fazer mas hoje vamos ter como base uma distribuição Linux, em concreto o Ubuntu.
Quando um utilizador pretender aceder a uma determinada página web e se no directório dessa página existir uma ficheiro .htaccess, o utilizador recebe um formulário para introdução de credenciais (utilizador + password). Caso estejam correctas as credenciais introduzidas, o utilizador passa a ter acesso a essa página/site.
Pré-Requisitos
Para começar (considerando que já tem o apache instalado) é necessário instalar o pacote apache2-utils que disponibiliza o utilitário htpasswd que permite criar um ficheiro com uma password.
sudo apt-get install apache2-utils |
Configurar o Apache para permitir autenticação
Por omissão o Apache não vem com suporte para o .htaccess. Para activar vamos abrir o ficheiro de configuração do Apache:
sudo nano /etc/apache2/apache2.conf |
Localizar a secção Directory "/var/www/html" e mudar a linha AllowOverride none para AllowOverride AuthConfig
Criar o ficheiro com a Password
Para criar um ficheiro com password para um determinado utilizador basta usar o comando (considerando que o utilizador será ppinto)
sudo htpasswd -c /etc/apache2/.htpasswd ppinto |
Vamos agora atribuir as permissões correctas ao ficheiro criado.
sudo chown www-data:www-data /etc/apache2/.htpasswd sudo chmod 0660 /etc/apache2/.htpasswd |
Configurar Autenticação por password
O próximo passo é criar o ficheiro .htaccess dentro do directório com o site que pretendemos proteger (neste caso /var/www/html/) e adicionamos o seguinte conteúdo:
AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user |
- AuthType: Define o tipo de autenticação
- AuthName: Nome que é apresentado na página que solicita as credenciais ao utilizador
- AuthUserFile: localização do ficheiro com as credenciais do utilizador
- require valid-user: Indica que apenas os utilizadores com credenciais válidas podem aceder à página
Depois das configurações devem reiniciar o Apache para testar.
sudo /etc/init.d/apache2 restart |
Depois basta aceder a um browser e inserir o endereço IP do servidor Apache Para quem precisa de proteger conteúdos no servidor Web de uma forma simples e rápida a utilização do .htaccess é sem dúvida uma das melhores opções. Se não conheciam, experimentem.
Este artigo tem mais de um ano
Também útil para proteger apenas um pasta…
uma pasta? Onde é só uma pasta?
Colocar o ficheiro na pasta a proteger… Ex: /var/www/html/pasta/
e que tal teres um vhost em:
/var/www/teuwebsite
e meteres nessa pasta a pass? Todo o dir é afetado… ou seja, todo o site.
E para remover? adicionem no tópico era útil.
Essa é realmente difícil. Apagas a informação que foi adicionada ao ficheiro .htaccess