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 sistema, 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
Publicar comentário