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.075 ]

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

Screensaver para todos

NFS sem segredos

Leitura recomendada

Segurança da Informação na Internet

Escrevendo em discos sem sistemas de arquivos

Servidor de autenticação 802.1x com Freeradius

Resenha do livro: Praticando a Segurança da Informação

A mitologia da imunidade a vírus no Linux

  
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