sábado, 20 de agosto de 2011

Autenticação e Controle de Acesso no Apache

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”.
1
htpasswd -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
 # htpasswd
Usage:
htpasswd [-cmdpsD] arquivo usuario
htpasswd -b[cmdpsD] arquivo usuario senha

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

-c  Cria um novo arquivo.
-n  Não atualiza o arquivo, Mostra os resultados de saida stdout.
-m  Força encriptação MD5 para a senha.
-d  Força encriptação CRYPT para o arquivo de senha. (Padrão)
-p  Não encripta a senha (Texto pleno).
-s  Força encriptação SHA para a senha.
-b  Usa a senha na linha de comando ao invés de perguntar para o usuário.
-D  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á.

 

Simulação

Nada 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.
1
touch /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.


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 << EOF > /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)
1
AuthType 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.
1
htpasswd -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.

Nenhum comentário:

Postar um comentário