Proteção de Diretórios Apache Usando .htaccess no Windows
Neste artigo, serão passados alguns passos básicos para proteger diretórios utilizando o recurso htaccess do Apache sob plataforma Windows NT/2000/XP. No Linux a configuração é similar, porém não entrarei em detalhes neste artigo.
1º Passo:
O primeiro passo é gerar um arquivo de senhas/passwords.
Para gerar este arquivo, é necessária a existência de um executável do Apache chamado htpasswd, que deverá estar dentro de ServerRoot/bin.
*ServerRoot é Diretório raiz do Apache, geralmente C:\Apache ou C:\Arquivos de Programas\Apache Group\Apache.
Usando o Prompt de Comando do MSDos, acesse a pasta bin do Apache, e execute o seguinte comando:
Sintaxe:
-c = criar arquivo de senhas
arquivo_de_senhas = nome do arquivo de senhas a ser gerado
username_para_acesso = username adicionado ao arquivo.
Após execução desta linha, o aplicativo, solicitará uma senha para este usuário, e em seguida a confirmação, digite uma senha pessoal, não precisa ser a senha do windows.
Após estes passos foi gerado um arquivo contendo seu username/senha. Provavelmente na pasta corrente.
2º Passo:
Após realização da primeira etapa, será necessário, criar um arquivo denominado .htacess (com ponto na frente) dentro do diretório que será protegido,
Este arquivo deverá conter o seguinte texto:
Notas:
- Todos os diretórios protegidos deverão conter este arquivo.
- Todos os subdiretórios do diretório protegido pelo htaccess herdarão a proteção.
AuthUserFile, é o caminho do arquivo que criamos na primeira etapa.
3º Passo:
Abra o arquivo ServerRoot/conf/httpd.conf
Localize o texto:
Comente a linha AllowOverride None e abaixo dela adicione a seguinte linha:
Deixando-o assim:
Esta linha informará ao Apache a existência de Configurações de Autorização, ou seja, a existência de htaccesss. No momento do acesso o Apache verificará se o usuário possui ou não permissões para acessar tal diretório.
Após estas etapas serem seguidos, salve o arquivo httpd.conf, feche todas as janelas do Browser que estiverem acessando o Servidor, e Reinicie o servidor, ou de preferência pare o mesmo e inicie novamente.
Com os comandos:
Acesse o diretório protegido, ao carregar, deverá aparecer um painel de login, caso contrario revise todos os passos acima, ou escreva-me
Um grande abraço a Todos!!!
Tiago Luis Cesa Seibel
Desenvolvedor de Sistemas
John Deere Brasil
1º Passo:
O primeiro passo é gerar um arquivo de senhas/passwords.
Para gerar este arquivo, é necessária a existência de um executável do Apache chamado htpasswd, que deverá estar dentro de ServerRoot/bin.
*ServerRoot é Diretório raiz do Apache, geralmente C:\Apache ou C:\Arquivos de Programas\Apache Group\Apache.
Usando o Prompt de Comando do MSDos, acesse a pasta bin do Apache, e execute o seguinte comando:
htpasswd -c arquivo_de_senhas username_para_acesso
Sintaxe:
-c = criar arquivo de senhas
arquivo_de_senhas = nome do arquivo de senhas a ser gerado
username_para_acesso = username adicionado ao arquivo.
Após execução desta linha, o aplicativo, solicitará uma senha para este usuário, e em seguida a confirmação, digite uma senha pessoal, não precisa ser a senha do windows.
Após estes passos foi gerado um arquivo contendo seu username/senha. Provavelmente na pasta corrente.
2º Passo:
Após realização da primeira etapa, será necessário, criar um arquivo denominado .htacess (com ponto na frente) dentro do diretório que será protegido,
Este arquivo deverá conter o seguinte texto:
AuthType Basic AuthName "Mensagem do Painel de Login" AuthUserFile C:/Apache/senhas/pw_portal Require valid-user
Notas:
- Todos os diretórios protegidos deverão conter este arquivo.
- Todos os subdiretórios do diretório protegido pelo htaccess herdarão a proteção.
AuthUserFile, é o caminho do arquivo que criamos na primeira etapa.
3º Passo:
Abra o arquivo ServerRoot/conf/httpd.conf
Localize o texto:
<Directory /> Options FollowSymLinks AllowOverride None </Directory>
Comente a linha AllowOverride None e abaixo dela adicione a seguinte linha:
AllowOverride AuthConfig Limit FileInfo
Deixando-o assim:
<Directory /> Options FollowSymLinks #AllowOverride None AllowOverride AuthConfig Limit FileInfo </Directory>
Esta linha informará ao Apache a existência de Configurações de Autorização, ou seja, a existência de htaccesss. No momento do acesso o Apache verificará se o usuário possui ou não permissões para acessar tal diretório.
Após estas etapas serem seguidos, salve o arquivo httpd.conf, feche todas as janelas do Browser que estiverem acessando o Servidor, e Reinicie o servidor, ou de preferência pare o mesmo e inicie novamente.
Com os comandos:
net stop Apache net start Apache
Acesse o diretório protegido, ao carregar, deverá aparecer um painel de login, caso contrario revise todos os passos acima, ou escreva-me
Um grande abraço a Todos!!!
Tiago Luis Cesa Seibel
Desenvolvedor de Sistemas
John Deere Brasil
No caso de eu proteger um diretório completo vai proteger automaticamente os subdiretórios também, certo? Como eu faço para desproteger apenas um dos diretórios? Ou seja, não ativar esta proteção de senha em apenas um deles.
24/03/2006 9:57am
(~19 anos atrás)
O tutorial está bem montado e mostrando todo o conteudo do sistema... parabéns! Foi de grande utilidade! ^^
22/02/2006 6:21am
(~19 anos atrás)
Nossa! Este artigo foi escrito em 2003, lembraram dele ... legal :) vou tentar ajudar!
Pessoal!!! Humildes desculpas por não estar acompanhando...
Respondendo ao Klaus....
- Sim, deverá apontar para o arquivo criado, constando neste, o caminho completo
-A diretiva AllowOverride, dirá o que o usuário poderá acessar, seguindo esta regra:
None - Nenhum acesso.
All - Permite todos os acessos.
AuthConfig - Permite configurações de autenticação.
FileInfo - Permite a inclusão de MIME para a árvore de diretórios. (o HTACCESS, por exemplo).
Limit - Permite o controle de acesso por diretório.
Options - Permite alterar as diretivas do Options (Outra diretiva)
Respondendo o gladiador...
O AuthUserFile é o arquivo que criastes, você deve por o caminho completo até ele ... E para proteger o "lontra" você deverá por o arquivo .htaccess dentro da pasta sem o .conf no final.
Realmente ele vai proteger toda a estrutura a partir do diretório onde está o htaccess.
frozengld, aquele campo vai a mensagem que você deseja exibir ao usuário na tela de login quanto a mensagem de erro, parece que seu arquivo de configurações está corrompido ... isso OS: Acontece quando ele é criado no linux e usado no Windows, por exemplo. Pois as quebras de linha são diferentes.
Robson , eu nunca testei o mod_rewrite... sorry!!!
Helton ... Estuda guri ...
Um Abraço!!!
Pessoal!!! Humildes desculpas por não estar acompanhando...
Respondendo ao Klaus....
- Sim, deverá apontar para o arquivo criado, constando neste, o caminho completo
-A diretiva AllowOverride, dirá o que o usuário poderá acessar, seguindo esta regra:
None - Nenhum acesso.
All - Permite todos os acessos.
AuthConfig - Permite configurações de autenticação.
FileInfo - Permite a inclusão de MIME para a árvore de diretórios. (o HTACCESS, por exemplo).
Limit - Permite o controle de acesso por diretório.
Options - Permite alterar as diretivas do Options (Outra diretiva)
Respondendo o gladiador...
O AuthUserFile é o arquivo que criastes, você deve por o caminho completo até ele ... E para proteger o "lontra" você deverá por o arquivo .htaccess dentro da pasta sem o .conf no final.
Realmente ele vai proteger toda a estrutura a partir do diretório onde está o htaccess.
frozengld, aquele campo vai a mensagem que você deseja exibir ao usuário na tela de login quanto a mensagem de erro, parece que seu arquivo de configurações está corrompido ... isso OS: Acontece quando ele é criado no linux e usado no Windows, por exemplo. Pois as quebras de linha são diferentes.
Robson , eu nunca testei o mod_rewrite... sorry!!!
Helton ... Estuda guri ...
Um Abraço!!!
16/02/2006 4:50pm
(~19 anos atrás)
Nao funcionou de nenhum jeito aki!! nem do jeito do tiago e nem do jeito do gladiador!!
Alias oq q tem q por no"Acesso ao meu Diretório Restrito"?? o local onde ta a pasta q eu quero por senha?
Quando eu modifiquei do jeito do gladiador e tentei reiniciar o apache da isso aki...
"Erro no ficheiro do Apache:
"Sintax error on line 330 of c:/arquivos de programas/easyphp1-8/conf/httpd.conf:
AuthUserFile takes 1-2 arguments, text file containing user IDs and passwords"
Alias oq q tem q por no"Acesso ao meu Diretório Restrito"?? o local onde ta a pasta q eu quero por senha?
Quando eu modifiquei do jeito do gladiador e tentei reiniciar o apache da isso aki...
"Erro no ficheiro do Apache:
"Sintax error on line 330 of c:/arquivos de programas/easyphp1-8/conf/httpd.conf:
AuthUserFile takes 1-2 arguments, text file containing user IDs and passwords"
13/02/2006 8:06am
(~19 anos atrás)
Fala cara, Bom artigo. Mas vê se responde as perguntas dos que comentaram. Até mais.
02/02/2006 4:57am
(~19 anos atrás)
/* agora fiz como no linux e deu, porém protege todas as pastas :
basta editar o httpd.conf
///////////////////////////////
<Directory />
Options FollowSymLinks
#AllowOverride All
AllowOverride AuthConfig Limit FileInfo
AuthName "Acesso ao meu Diretório Restrito"
AuthType Basic
AuthUserFile /windows/SERV-N/apache/bin/senhas
require valid-user
Order allow,deny
</Directory>
////////////////////////////////////////
assim protege !!!
basta editar o httpd.conf
///////////////////////////////
<Directory />
Options FollowSymLinks
#AllowOverride All
AllowOverride AuthConfig Limit FileInfo
AuthName "Acesso ao meu Diretório Restrito"
AuthType Basic
AuthUserFile /windows/SERV-N/apache/bin/senhas
require valid-user
Order allow,deny
</Directory>
////////////////////////////////////////
assim protege !!!
23/01/2006 4:10pm
(~19 anos atrás)
Há sim só acresecentando criei o .htaccess dentro do diretorio lontra salvei como .htaccess.conf certo ?
23/01/2006 3:30pm
(~19 anos atrás)
/* bom, até a criação de sem problemas entrei no /bin
htpasswd -c minhasenha jao
legal funfou criou o arquivo minhasenha
Tá bom agora quero proteger o arquivo lontra que está na pasta C:/windows/serv-n/apache/www/lontra
e ai
coloquei assim:
AuthType Basic
AuthName "Mensagem do Painel de Login"
AuthUserFile C:/windows/serv-n/apache/www/lontra
Require valid-user
e não funfou, o restante fiz tudo , e ai ? onde errei ?
htpasswd -c minhasenha jao
legal funfou criou o arquivo minhasenha
Tá bom agora quero proteger o arquivo lontra que está na pasta C:/windows/serv-n/apache/www/lontra
e ai
coloquei assim:
AuthType Basic
AuthName "Mensagem do Painel de Login"
AuthUserFile C:/windows/serv-n/apache/www/lontra
Require valid-user
e não funfou, o restante fiz tudo , e ai ? onde errei ?
23/01/2006 3:27pm
(~19 anos atrás)
Cara, de primeiro momento não funcionou o esqueminha, mas tenho quase absoluta certeza que deixei passar algo em branco.
Em AuthUserFile, devo apontar para o arquivo criado em "
htpasswd -c arquivo_de_senhas username_para_acesso"?
Outra coisa, o seu "AllowOverride" está apontando "none" certo... o meu está "all"... qual a diferença?
Vlz!!!
Em AuthUserFile, devo apontar para o arquivo criado em "
htpasswd -c arquivo_de_senhas username_para_acesso"?
Outra coisa, o seu "AllowOverride" está apontando "none" certo... o meu está "all"... qual a diferença?
Vlz!!!
23/01/2006 3:57am
(~19 anos atrás)