Restrição em diretórios usando o Apache2 sem mistérios

Olá comunidade! Esse artigo nos mostra uma maneira rápida, detalhada e eficiente de instalar e configurar o Apache2 para restringir diretórios em um servidor Linux rodando Slackware 9.

[ Hits: 53.102 ]

Por: Lucas Diniz de Paula Lima em 13/04/2004


Criando os arquivos de configuração



Apenas para esclarecimentos, os nomes dos arquivos realmente estão iniciando no "ponto", uma medida de segurança importante para preservar o conteúdo dos mesmos. Para o nosso exemplo, onde vamos proteger o diretório digitalbr localizado no nosso diretório padrão do Apache2, /var/www/htdocs/, digitamos no console:

# vi /var/www/htdocs/digitalbr/.htaccess

Vamos inserir o seguinte conteúdo dentro dele:

AuthType Basic
AuthName "Testando restrição de diretórios"
AuthUserFile /var/www/htdocs/digitalbr/.htpasswd
require valid-user

Desmembrando as linhas, vamos as explicações:
  • AuthType Basic: é o tipo de autorização que será requerida. Ainda não tive a necessidade de alterar essa linha. ;o)
  • AuthName: nesse ítem podemos inserir um comentário sobre o compartilhamento. Ele deverá vir entre aspas, como em nosso exemplo.
  • AuthUserFile: aqui iremos especificar o caminho do arquivo de senhas. Podemos ter arquivos individuais por diretórios, como no nosso exemplo, como também podemos usar um arquivo comum para vários deles.
  • require valid-user: essa opção é responsável por informar ao Apache como os usuários serão autenticados. No nosso exemplo o Apache irá procurar por qualquer usuário contido no arquivo .htpasswd informado no ítem acima. Podemos brincar com as variações desse comando, outras alternativas seriam:

    Require user digitalbr: dessa maneira, informamos ao Apache que apenas o usuário "digitalbr" poderá acessar o diretório protegido. Muito útil quando você quiser ter apenas um arquivo de senhas, com vários usuários, para restringir diretórios distintos.

  • require group digitalbr: igual o ítem anterior, porém informando todo um grupo de usuários.

Com essas informações já podemos imaginar mil situações de uso, não? Ainda falta criarmos o dito cujo arquivo de senhas, o .htpasswd, lembrando é claro que o nome dele pode variar conforme o nosso desejo.

Para essa tarefa usaremos uma ferramenta padrão do Apache, o htpasswd (descobriram o porque do nome?). Sua sintaxe é bem simples, no console digite:

# htpasswd -c /var/www/htdocs/digitalbr/.htpasswd digitalbr

Após o comando acima o sistema irá solicitar uma senha e com isso, criamos o usuário digitalbr dentro do arquivo /var/www/htdocs/digitalbr/.htpasswd. Em um futuro próximo, caso desejarmos criar um outro usuário neste mesmo arquivo, apenas retiramos o parâmetro "-c", ficando assim:

# htpasswd /var/www/htdocs/digitalbr/.htpasswd digitalbr2

E se desejarmos apagar um usuário? Simples:

# htpasswd -D /var/www/htdocs/digitalbr/.htpasswd usuario
Deleting password for user usuario

Simples, não? Agora só falta um detalhe, ver funcionando! =)

Página anterior     Próxima página

Páginas do artigo
   1. Instalando o Apache2
   2. Entendendo e fazendo
   3. Criando os arquivos de configuração
   4. Na prática
Outros artigos deste autor

NFS sem segredos

Screensaver para todos

Leitura recomendada

Análise Forense - Aspectos de perícia criminal

MaraDNS: Simples - Seguro - Robusto (parte 3)

Encapsulando BIND 9 e Apache 2 para obter maior segurança

Segurança com Iptables

Instalando um firewall em ambientes gráficos leves

  
Comentários
[1] Comentário enviado por snma em 13/04/2004 - 08:43h

cara vc tambem pode incrementar o .htaccess direto no httpd.conf
tipo assim:

Alias /digitalbr "/var/www/htdocs/"
<Directory "/var/www/htdocs">
Options Indexes FollowSymLinks
AllowOverride AuthConfig
AuthType Basic
AuthName "Testando restrição de diretórios"
AuthUserFile /var/www/htdocs/digitalbr/.htpasswd
require valid-user
</Directory>

[2] Comentário enviado por cvs em 13/04/2004 - 10:18h

bom artigo... eu só nao gosto muito de instalar pacotes pré compilados.

[3] Comentário enviado por coffnix em 18/02/2006 - 15:38h

muito bom esse artigo cara!

Esses arquivos .htacess e .htpasswd, cada pasta tem q ter?????

não pode ser um arquivo único de htpasswd? e sobre a dica do amigo snma.... será q dava pra tu explicar um pouco melhor??

[4] Comentário enviado por mrluk em 17/03/2006 - 15:45h

Fala Chemonz!

Cada pasta que vc for compartilhar deverá ter o arquivo .htacess, ele é quem garante que o Apache irá validar um usuário ou grupo para o acesso.

O arquivo .htpasswd é único, o caminho dele fica definido no próprio .htacess.

Fique a vontade de perguntar diretamente no meu email!

Falow


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts