Usando HTTP autenticado no Apache

Este tutorial requer que já se tenha em mãos um webserver Apache configurado e funcionando. Você já teve momentos em que desejou que algum usuário não autorizado deixasse de fuçar determinada pasta em seu servidor web? Eis aqui a solução para seus problemas!

[ Hits: 39.049 ]

Por: Rafael Henrique da Silva Correia em 30/06/2009 | Blog: http://abraseucodigo.com.br


Mão na massa com .htaccess



* Você terá de usar o root para realizar essas configurações.

1. Abra o arquivo /etc/apache2/apache2.conf com o editor de texto da sua preferência, ou use meu exemplo:

# vim /etc/apache2/apache2.conf

2. Verifique se a linha AccessFileName está desta forma:

AccessFileName .htaccess

3. Agora vamos criar o arquivo .htaccess e jogá-lo dentro do diretório.

Criar o diretório admin:

# mkdir /var/www/admin

Criar o arquivo .htaccess e acrescentar as linhas descritas (não digite o número das linhas, somente o conteúdo):

# vim /var/www/admin/.htaccess

1 AuthType Basic
2 AuthName "Digite usuário e senha"
3 AuthUserFile /etc/apache2/.htpasswd
4 Require valid-user
5 Satisfy Any

Explicando:

Linha 1: Isso significa que vou usar o tipo Base64 de transferência (que não é criptografado e sim codificado e é facilmente decodificado, explicarei aspectos relacionados a segurança logo mais neste tutorial).

Linha 2: Lembram da mensagem de resposta HTTP?

WWW-Authenticate: Basic realm="Digite seu usuário e senha"

Esta linha adiciona o rótulo da mensagem do Realm.

Linha 3: Digo que ele buscará a senha do arquivo de senhas /etc/apache2/.htpasswd.

Linha 4: Requer que exista um usuário válido a ser autenticado.

Linha 5: Satisfy pode ter dois valores All ou Any:
  • o All diz que o usuário tem que passar na restrição de acesso (Required ou Allow, no nosso caso required) e entrar com um usuário e senha válidos para realizar a autenticação;
  • o Any diz que o usuário tem que passar na restrição de acesso OU entrar com um usuário e senha válidos para realizar a autenticação.

4. Agora como foi visto acima, o arquivo de senhas /etc/apache2/.htpasswd tem que ser criado. Crio este arquivo facilmente com o comando htpasswd da seguinte forma:

# htpasswd -c /etc/apache2/.htpasswd root

Onde:
  • -c = create new archive

Este comando pedirá senha para o usuário especificado, em nosso caso, root.

5. Reinicie o Apache:

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start


ou:

# /etc/init.d/apache2 restart

6. Agora a autenticação já tem de estar funcionando! Tente entrar pelo browser no seu servidor apache no diretório admin, em uma máquina "normal", a URL ficaria assim no browser:

http://localhost/admin

Se ele pedir usuário e senha quando esta URL for especificada, parabéns! Senão reveja novamente os passos deste tutorial, ou email-me. :D

Agora vocês vão me perguntar:

"Mas meu, você não falou que quando eu tenho acesso aos arquivos de configuração do Apache eu não devo criar arquivos .htaccess devido ao desempenho e mais a um monte de coisas?"

Eis que lhe responderei:

"SIM!"

Agora explicarei como você faria se tivesse acesso aos arquivos de configuração do Apache.

Página anterior     Próxima página

Páginas do artigo
   1. Um pouco de teoria do protocolo HTTP
   2. O arquivo .htaccess
   3. Mão na massa com .htaccess
   4. Mão na massa com arquivo de configuração do Apache
   5. Aspectos e cuidados com a segurança
Outros artigos deste autor

Configurando cliente na rede wireless com criptografia WPA - Debian

Compilar kernel em distros baseadas em Debian

Problema resolvido: VMware Server 1.0.7 rodando no Debian Lenny Linux

Leitura recomendada

VPN em Linux com OpenVPN

Como forçar alteração de senha de usuário no próximo login no Linux

HoneyPots em Linux

Instalando um firewall em ambientes gráficos leves

Mantendo a segurança no Linux

  
Comentários
[1] Comentário enviado por paulorvojr em 01/07/2009 - 15:16h

Muito bem explicado, parabéns.
Ou seja você refez cada passo enquanto escrevia o artigo. É assim que gostamos de ver artigos com pé e cabeça, e não aqueles que parecem papo de bar.

Abraços

[2] Comentário enviado por rafaelhenrique em 02/07/2009 - 18:48h

Muito obrigado pelo elogio paulorvojr, prentendo continuar escrevendo artigos que agradem os leitores!!

Abraço

[3] Comentário enviado por qxada07 em 29/03/2011 - 19:27h

Parabéns pelo artigo...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts