Autenticação e Controle de Acesso no Apache
Autor: Vinicius B. | Publicado: 2011-08-20T07:08:00-07:00

O  servidor web apache fornece a possibilidade de efetuar autenticação e  controle de acesso ao conteúdo disponibilizado pelo teu site ou sistema  web, tal recurso é aplicado pelo módulo “mod_auth” e “mod_access”.A configuração pode ser disparada por um  arquivo “.htaccess” que verifica a autenticação do usuário por outro  arquivo que é especificado na configuração. Os usuários são adicionados  ao arquivo de configuração com o comando “htpasswd”.
1htpasswd -c /home/dominio/public_html/security/.htpasswd user1
Argumentos válidos para o comando htpasswd:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19&nbsp;# htpasswdUsage:
htpasswd [-cmdpsD] arquivo usuario
htpasswd -b[cmdpsD] arquivo usuario senha

htpasswd -n[mdps] usuario
htpasswd -nb[mdps] usuario senha

-c &nbsp;Cria um novo arquivo.
-n &nbsp;Não atualiza o arquivo, Mostra os resultados de saida stdout.
-m &nbsp;Força encriptação MD5 para a senha.
-d &nbsp;Força encriptação CRYPT para o arquivo de senha. (Padrão)
-p &nbsp;Não encripta a senha (Texto pleno).
-s &nbsp;Força encriptação SHA para a senha.
-b &nbsp;Usa a senha na linha de comando ao invés de perguntar para o usuário.
-D &nbsp;Remove um usuário específico.

No Windows, NetWare e sistemas TPF sinalizador '-m' é usado por padrão.
Em todos os outros sistemas, a flag '-p' provavelmente não funcionará.
&nbsp;SimulaçãoNada melhor do que a prática para fixar o  aprendizado. Suponha que queiramos protejer o diretório “libs” dentro  do diretório “public_html”, podemos iniciar a configuração da seguinte  maneira. Primeiro crie um arquivo “.htaccess” dentro de  “/home/seu-usuario/public_html/libs”.Se possuir acesso SSH basta entrar com o seguinte comando ou efetue o upload do arquivo já configurado por FTP.
1touch /home/seu-usuario/public_html/libs/.htaccess
Acrescente o seguinte conteúdo para o arquivo criado, e não se  esqueça de alterar a linha acima “[seu-usuário]” por um caminho válido.


1&nbsp; 
2
3
4
5
6# Controle de acesso ao diretório da pasta [/home/seu-usuario/public_html/libs]
AuthType Basic
AuthName "Zona Restrita"
AuthUserFile /home/meu-usuario/public_html/libs/.htpasswd
Require valid-user
Options FollowSymLinks Indexes

Ou por SSH linha de comando:


cat &lt;&lt; EOF &gt; /home/seu-usuario/public_html/libs/.htaccess
# Controle de acesso ao diretório da pasta [/home/seu-usuario/public_html/libs]
AuthType Basic
AuthName "Zona Restrita"
AuthUserFile /home/meu-usuario/public_html/libs/.htpasswd
Require valid-user
Options FollowSymLinks Indexes
EOF


A configuração acima diz ao apache para  restringir o diretório atual, liberando acesso somente aos usuários  válidos pelo arquivo especificado pela propriedade “AuthUserFile”, que  no nosso caso é “/home/seu-usuario/public_html/libs/.htaccess”.A propriedade “AuthType” pode receber dois parametros diferentes: (Mais detalhes AuthType)
1AuthType Basic|Digest
A diretiva “Require valid-user”, que fala por sí só, requer um usuário  válido, ou seja os usuários especificados no arquivo “.htpasswd”. E por fim a diretiva “Options FollowSymLinks Indexes”, que no nosso caso  fará com que o apache liste os arquivos e diretórios existentes na  pasta restrita. Agora basta criar o arquivo que irá conter os usuários ou usuário de acesso ao diretório restrito. 
1htpasswd -c /home/seu-usuário/public_html/libs/.htpasswd user1

Pronto, Agora basta ir ao seu navegador e digitar a sua URL, como abaixo:Se tudo ocorreu bem a caixa de diálogo a  seguir ira aparecer na tela requisitando o nome do usuário configurado e  a senha para acessar o diretório  especificado.
Insira o nome de usuário e senha para ter acesso ao conteúdo do diretório restrito.