Dica: Como proteger com password um site no Apache?

6 Comentários

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.

htaccess_00


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

apache4

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

apache5

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

apache6

  • 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
apache7
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.

Partilhar:
Tags:

Comentários

6

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Manuel Silva
    Manuel Silva

    Também útil para proteger apenas um pasta…

    1. Avatar de int3
      int3

      uma pasta? Onde é só uma pasta?

      1. Avatar de Manuel Silva
        Manuel Silva

        Colocar o ficheiro na pasta a proteger… Ex: /var/www/html/pasta/

        1. Avatar de int3
          int3

          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.

  2. Avatar de Pedro Ivo
    Pedro Ivo

    E para remover? adicionem no tópico era útil.

    1. Avatar de Modem
      Modem

      Essa é realmente difícil. Apagas a informação que foi adicionada ao ficheiro .htaccess