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: 35.299 ]

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

Problema resolvido: VMware Server 1.0.7 rodando no Debian Lenny Linux

Configurando cliente na rede wireless com criptografia WPA - Debian

Compilar kernel em distros baseadas em Debian

Leitura recomendada

Wmap web scanner

Snort em modo defensivo com Flex Response 2

Backup gerenciável usando tar

Jogando pesado na segurança de seu SSH

Monitorando máquinas Windows com o Nagios

  
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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts