Leia abaixo meu artigo sobre a autenticação no Squid, que permite de maneira simples configurar a sua proxy para exigir login e senha (através do browser) dos usuários que desejam acessar determinados sites (ou toda a web), registrar este acesso e criar regras personalizadas de acesso. Este artigo foi publicado anteriormente aqui mesmo no Linux in Brazil, e agora está adaptado ao novo formato do site.
Veja também o livro Squid - Configurando proxy para Linux, que tem um capítulo específico sobre autenticação, incluindo até mesmo o método via arquivo htpasswd.
Augusto C. Campos (brain@matrix.com.br)
O Squid é uma popular ferramenta para a criação de proxy e cache de web e ftp, permitindo que as máquinas de sua rede local compartilhem o acesso à internet controlado por um servidor central, mesmo que elas não tenham acesso direto à Internet. Entre os recursos do Squid (o qual já analisamos neste artigo anterior e neste outro, publicado originalmente pela Revista do Linux), estão a possibilidade de definir listas de controle de acesso, ou seja, determinar quem poderá acessar o quê.
Nota: este artigo não irá apresentar conceitos introdutórios. Leia outros artigos sobre o Squid, redes mistas Linux/Windows e autenticação antes de prosseguir.
Geralmente este controle de acesso é feito por máquina (mais exatamente, por endereço IP). Entretanto, o Squid tem acesso a permissões por usuário, onde cada pessoa que tentar acessar a web é obrigada a fornecer login e senha (através do browser) para verificação. A verificação pode ser feita de muitas maneiras: através de um arquivo passwd tradicional, ou no formato NCSA (geralmente associado ao utilitário htpasswd), ou ainda através de um servidor LDAP, um PDC de domínio Windows NT, ou módulos PAM.
Para utilizar estas formas de autenticação, você deve compilar o Squid com os módulos de suporte adequados (ou utilizar o que vem em sua distribuição de Linux favorita, caso ele tenha este suporte). Não daremos aqui as instruções de compilação, já que elas constam na documentação que acompanha o software e também na FAQ do Squid. Mas uma vez que você tenha compilado, a configuração é simples, como veremos a seguir neste exemplo de autenticação em um domínio NT.
Muitas organizações dispõem de domínios baseados em Windows NT, onde os usuários de estações de trabalho rodando várias versões de Windows se autenticam. Se for o seu caso, siga as instruções de compilação do Squid e compile o módulo smb_auth, e em seguida copie-o para o local mais apropriado (no nosso exemplo, /usr/local/squid/smb_auth).
Uma vez que todos os arquivos estejam compilados e adequadamente copiados para os locais corretos, está na hora de informar ao Squid onde você colocou o programa autenticador, e os parâmetros com os quais ele deve ser chamado.
No exemplo, vamos considerar que o PDC do domínio Windows tem o endereço IP 10.11.12.13, e o nome do domínio é PRODUCAO. Neste caso, a linha seria como a que segue, retirada diretamente do squid.conf:
authenticate_program /usr/local/squid/smb_auth -W PRODUCAO -U 10.11.12.13
A documentação do smb_auth informa que precisamos incluir um arquivo \netlogon\proxyauth no PDC. Peça ao administrador do seu domínio NT (caso não seja você mesmo) que localize o compartilhamento netlogon do seu servidor, e crie nele um arquivo texto com o nome de proxyauth (e não proxyauth.txt!) contendo simplesmente a palavra allow. Em seguida, dê permissão de Leitura a este arquivo para todos os usuários do domínio que deverão ter acesso à web através do Squid. Simples, não?
Agora só temos que criar as listas de controle de acesso, ou ACLs do Squid. Vamos "pular" os exemplos básicos, e avançar diretamente para um exemplo da vida real, adaptado do FAQ do Squid (a numeração de linhas é apenas para fins didáticos e deve ser desconsiderada) :
1: acl geral proxy_auth REQUIRED 2: acl restritos proxy_auth didi dede mussum zacarias 3: acl horario_coml time 08:00-18:00 4: acl todos src 0/0 5: http_access allow restritos 6: http_access allow geral horario_coml 7: http_access deny todos
A primeira linha define uma ACL chamada geral, do tipo proxy_auth (ou seja, exigência de autenticação utilizando o authenticate_program que definimos acima). O parâmetro REQUIRED indica que qualquer usuário será aceito, desde que ele tenha uma senha no domínio.
A linha 2 cria uma ACL chamada restritos, também do tipo proxy_auth, mas desta vez definindo os nomes de 4 usuários que terão tratamento diferenciado.
As linhas 3 e 4 não têm relação com autenticação - elas definem uma acl chamada horario_coml, como sendo as horas entre 08:00 e 18:00, e outra chamada todos, baseada em endereço IP, e abrangendo todos os endereços de origem (src) possíveis.
As linhas de 5 a 7 definem as regras de acesso, pela ordem:
Para o exemplo ficar ainda mais realista, vamos imaginar que exista um site (www.proibido.net) que só deve ser acessado pelo usuario diretor. Para acrescentar esta regra, basta inserir as linhas abaixo entre a linha 4 e a linha 5:
acl proibido dstdomain proibido.net acl privilegiado proxy_auth diretor http_access allow privilegiado proibido http_access deny proibido
Após efetuar as alterações no arquivo de configurações, faça o Squid reler o
arquivo de acordo com as instruções de sua distribuição (killall -HUP
squid deve funcionar em todos os casos), e boa sorte!
Postado por brain em junho 10, 2003 10:32 AM
» Postado por: Manoel em julho 17, 2003 09:53 AM, 200.211.35.:
Gostaria de saber como faço este procedimento para que autentique usuários do active directory do windows2000
» Postado por: leonardo Silva em setembro 3, 2003 01:14 PM, 200.222.5.7:
Gostaria de saber como faço este procedimento para que autentique usuários do active directory do windows2000?
» Postado por: Victor em setembro 11, 2003 08:59 AM, 200.187.173:
Existe em seu site algum tutorial que exemplifica a utilizaçao da TAG ident no squid ?
» Postado por: Danniel em outubro 28, 2003 11:33 AM, 200.254.1.1:
Como faço para autenticar os usuarios do SAMBA, sem precisar cadastrar todos novamente!? Quero usar o mesmo arquivo de senhas do SAMBA para autenticar os usuarios do proxy.
» Postado por: walter em novembro 28, 2003 04:00 PM, 200.199.142:
Meu proxy é o squid nao consigo liberar as portas 20 21, existe outro proxy ?
Como trabalhar squid c/ firewall e qual firewall?
» Postado por: Ricardo em dezembro 4, 2003 05:13 PM, 200.148.96.:
Estou com um problema .
depois da autenticacao , o internet explorer volta pra tela de login.
o q pode estar acontecendo?
Agradeco desde ja.
» Postado por: kleber theodoro em dezembro 9, 2003 10:20 AM, 200.150.225:
Uso a versao SuSE do linux, ate a versao 8.1 eu conseguia fazer autenticacao com o ncsa agora ja comprei a 8.2 e a 9.0 e nao funciona mais o meu squid com autenticacao com o ncsa_auth o que mudou pois usava o seguinte comando.
acl autenticados proxy_auth "/etc/squid/usuarios"
authenticate_program /usr/bin/ncsa_auth /etc/squid/usuarios.pwd
Obs. notei que o suse 8.2 e 9.0 nao vem com o ncsa_auth no /usr/bin/ncsa_auth
ele so vem no /usr/sbin/ncsa_auth, mudei a minha linha de comando para o caminho que existe e mesmo assim nao funciona o que devo fazer.
kleber
» Postado por: Filipe em janeiro 29, 2004 05:15 PM, 200.149.219:
Como faço para autenticar o SQUID pela base LDAP ?
» Postado por: Moreira em fevereiro 16, 2004 05:26 PM, 200.167.240:
Lembro a todos que estao tendo problemas com a autenticação do squid em um servidor NT, que a linha usada no arquivo squid.conf, tambem pode ser usada na linha de comando para debugar possiveis erros de configuracao. Por exemplo, voce pode digitar a seguite linha no prompt:
/usr/local/squid/smb_auth -W PRODUCAO -U 10.11.12.13 -d
(o parametro -d, informa ao smb_auth que use o modo de debug)
o cursor ira imediatamente para linha inferior, ai é so digitar o usuario/senha da seguinte maneira:
usuario senha
e apertar enter... o smb_auth ira fazer a autenticacao , e exibir uma linha de debug para cada acao.
maiores detalhes em: http://www.gnubh.com.br
» Postado por: Leonardo em maio 15, 2004 03:53 PM, 200.163.79.:
Como faço para autenticar os usuarios do SAMBA, sem precisar cadastrar todos novamente!? Quero usar o mesmo arquivo de senhas do SAMBA para autenticar os usuarios do proxy.
» Postado por: Leonardo em maio 21, 2004 07:10 PM, 201.1.31.21:
Cara seu tutorial está muito bom, porém eu tenho uma observação! Esse "esquema" de autenticação, funciona perfeitamente em um NT 4.0 ou até um 2000 server, porém se o 2000 server estiver rodando o Active Directory essa autenticação passa a não funcionar correto? Pois o AD utiliza o kerberos5 para autenticar a credencial do usuario certo? Bom eu gostaria de saber se você conseguiu autenticar usuarios cadastrados em OU's Unidades Organizacionais do Dominio Active Directory, pois estou com está situação hoje, e não consegui resolver ainda. Agradeço sua colaboração e aguardo um retorno seu mesmo positivo ou negativo ok!!! abraço.
» Postado por: levi em agosto 10, 2004 09:34 AM, 200.206.184:
Estou precisando de help na autenticacao do squid.
Minha rede 10.0.1.0 / 24 quero construir o squid.conf para autenticacao, mas nao funciona.
Alguem tem um exemplo que funcione, inclusive com os passos anteriores como por exemplo instalacao do ncsa, etc?
Uso conectiva 10.
» Postado por: Buy Amoxicillin em outubro 5, 2004 06:51 AM, 67.19.91.50:
Information on Amoxicillin online.
» Postado por: Carlos em outubro 24, 2004 07:39 PM, 201.1.11.50:
Cara seu tutorial está muito bom, porém eu tenho uma observação! Esse "esquema" de autenticação, funciona perfeitamente em um NT 4.0 ou até um 2000 server, porém se o 2000 server estiver rodando o Active Directory essa autenticação passa a não funcionar correto? Pois o AD utiliza o kerberos5 para autenticar a credencial do usuario certo? Bom eu gostaria de saber se você conseguiu autenticar usuarios cadastrados em OU's Unidades Organizacionais do Dominio Active Directory, pois estou com está situação hoje, e não consegui resolver ainda. Agradeço sua colaboração e aguardo um retorno seu mesmo positivo ou negativo ok!!! abraço.
O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.