Autenticação de Diretório no Apache
Existe algum momento na vida em que o administrador da rede ou do servidor Web (Apache) precisa por algum motivo restringir os acessos a um determinado diretório Web e liberar apenas para usuários autenticados, em vez de criar um sistema de login utilizando linguagem Web é possível restringir o acesso ao diretório (através do Brownser) utilizando algumas linhas de comando no apache.
Este tipo de liberação é bastante util quando existe o casos no qual o Administrador precisa liberar acesso aos Logs de uma determinada aplicação que está no servidor para os desenvolvedores sem a necessidade de liberar um acesso SSH ou RDP para os desenvolvedores.
Neste exemplo estarei utilizando o seguinte ambiente:
Sistema Operacional: Linux CentOS
Servidor Web: Apache
Diretório com Senha: /var/www/html/jpandrade
Arquivo com usuário e senha para autenticação: /var/www/html/
[[email protected] ~]# htpasswd -c /var/www/html/.htpasswd MY_USER
New password:
Re-type new password:
Adding password for user MY_USER
Para verificar se o usuário foi criado corretamente, verifique o arquivo .htpasswd
[[email protected] ~]#cat /var/www/html/.htpasswd
MY_USER:HsekQv5sA
Obs: Repare que a senha é criptografada e o arquivo será ocultado devido o “.”, para visualizar arquivos ocultos basta executar o comando ls -la.
Após criado o arquivo com o usuário, vamos configurar as permissões de acesso no arquivo httpd.conf
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf
Acrescente as seguintes linhas no final do arquivo, lembrando de alterar os caminhos /var/www/html/jpandrade para o caminho do diretório no qual será restringido o acesso e /var/www/html/.htpasswd para aonde está armazenado o arquivo com o usuário e senha.
<Directory "/var/www/html/jpandrade/"> Options Indexes FollowSymLinks Includes AllowOverride AuthConfig AuthName "Acesso ao meu Diretório Restrito" AuthType Basic AuthUserFile /var/www/html/.htpasswd require valid-user Allow from all </Directory>