Autenticação Web com arquivo .htaccess Apache

Às vezes, queremos limitar o acesso a um diretório da web específico para protegê-lo contra o mundo externo. Para tornar uma pasta protegida por senha no apache, precisamos de uma ferramenta para gerar nome de usuário e senhas(htpasswd) separada da autenticação do sistem, além de algumas outros parâmetros dentro da configuração do site.

Ajustando arquivo de configuração do site

Edite o arquivo do seu site, caso seja o default use como o do exemplo abaixo:

# vim /etc/apache2/sites-enabled/000-default.conf

Como no arquivo abaixo, dentro do campo VirtualHost adicione as diretivas em negrito:

<VirtualHost *:80>
   ServerName site.com.br
   DocumentRoot /var/www/html/site/
   <Directory /var/www/html/site>
      AllowOverride AuthConfig
   </Directory>
</VirtualHost>

Criando arquivo com user/passwd

Defina um local para salvar o arquivo de credenciais, no meu caso será /etc/apache2/pass.

Execute o comando abaixo para criar o arquivo e o usuário gabriel:

# htpasswd -B -c /etc/apache2/pass gabriel

Será solicitada a senha e em seguida a confirmação da mesma.

Opções do comando:

  • -B: define encriptação para bcrypt, pode ser omitido que por padrão será usado MD5;
  • -c: especificamos o arquivo para onde será salvo, caso precise adicionar mais usuários no arquivo basta não passar esse parâmetro quando for adicionar novos usuários como por exemplo “htpasswd /etc/apache2/pass roberto“;

Criado file .htpasswd

Criei o arquivo .htpasswd dentro da pasta onde deseja fazer a restrição de acesso, editando e inserindo o conteúdo seguinte, ajustando paramentros conforme seu ambiente:

# vim /var/www/html/site/.htpasswd

Conteúdo do arquivo:

AuthName "Mensagem"
AuthType Basic
AuthUserFile /etc/apache2/pass
Require valid-user

Reinicie o apache:

# systemctl restart apache2

Fonte

https://borosan.gitbook.io/lpic2-exam-guide/2081-implementing-a-web-server

Marcado com , , , , , ,