Restringir acesso a diretórios com Apache

Iniciado por rodweb, 14 de Fevereiro , 2008, 04:36:52 PM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

rodweb

Restringir acesso a diretórios com Apache

Este aqui é um tutorial básico mais que aborda algumas formas para você proteger diretórios, ou arquivos importantes, é muito útil para proteger por exemplo uma pasta com os arquivos de administração.

Espero que gostem...

Para começar precisamos permitir que o .htaccess funcione, então você deve ir no httpd.conf na pasta conf do Apache e procurar algo como:

Citar# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None

Então troque o AllowOverride None por AllowOverride All

Agora tudo ok com o .htaccess, agora precisamos adicionar o módulo mod_auth, para isso procure por:

CitarLoadModule auth_module modules/mod_auth.so

e descomente tirando o jogo da velhas (#) da frente.

Caso esteja usando o Apache 1.3, procure também por:

CitarAddModule mod_auth.c

e faça o mesmo.


Restringir por Autenticação

Agora vou mostrar basicamente como restringir pelo modo de autenticação (usuário/senha).

Explicação rápida:

.htaccess - Guardará as configurações de acesso
.htpasswd - Guardará os usuários e senhas


No .htaccess - Exemplo de utilização

CitarAuthType Basic
AuthName "Pasta Protegida"
AuthUserfile "caminho/.htpasswd"
Require valid-user

Explicando:

AuthType Basic - Informa o tipo de autorização, neste caso "basic"
AuthName: - Nome ou comentário, exemplo "pasta protegida"
AuthUserFile: - Caminho do ".htpasswd"
require valid-user: - Diz para buscar os usuários e senhas no ".htpasswd"


No .htpasswd - Exemplo de utilização

Citarusuario:senha

Explicando:

Separe o usuário e senha por dois pontos (:), um por linha.


Proteger arquivos .ht*:

Esta configuração abaixo serve para impedir que alguma pessoa veja o conteúdo dos arquivos que começam com .ht, como o .htaccess e .htpasswd. Creio que isso vem como padrão do Apache, mais vou postar assim mesmo:

Citar
    Order allow,deny
    Deny from all


Explicando:

Irá bloquear o acesso a todos os arquivos que começem com .ht.


Restringir no .htaccess por IP:

Bloquear qualquer acesso:

.htaccess
CitarOrder Deny, Allow
Deny from all

Bloquear faixa de IPs:

.htaccess
CitarOrder Deny,Allow
Deny from 192.168.0.

Explicando:

Order Deny,Allow - Indica a ordem de interpretação
Deny from all - Irá bloquear todos os acessos

*Também pode usar Allow from all para permitir acessos, e também trocar all por uma faixa de IPs ou somente um.


Restringir pelo httpd.conf:

Você deve criar um setor como no exemplo abaixo:

httpd.conf - Exemplo de utilização
Citar
    AllowOverride All
    Order deny,allow
    Deny from all


Explicando:

- Indica a pasta
Order deny, allow - Indica a ordem de interpretação
Deny from all - Irá bloquear todos os acessos

*Também pode usar Allow from all para permitir acessos, e também trocar all por uma faixa de IPs ou somente um.


Créditos:
Rodrigo Aparecido - rodweb ([email:rozfpxem]rod.apd@gmail.com[/email:rozfpxem])

*Caso forem copiar, mantenham os créditos!


Saiba mais:

Tutorial interessante:
Aprendendo a utilizar o htaccess
Documentação do .htaccess:
Apache 1.3 | 2.0 | 2.2
Documentação do .htpasswd:
Apache 1.3 | 2.0 | 2.2


Caso eu tenha errado em algo, ou não tenham entendido, comentem aí!

Flws...