Arquivos históricos do BR-Linux.org apresenta:

Autenticação no Squid

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.

Autenticação no Squid

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.

Autenticando em um PDC Windows 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

Comentários para "Autenticação no Squid"

» Postado por: Manoel em julho 17, 2003 09:53 AM, 200.211.35.:

 

» Postado por: leonardo Silva em setembro 3, 2003 01:14 PM, 200.222.5.7:

 

» Postado por: Victor em setembro 11, 2003 08:59 AM, 200.187.173:

 

» Postado por: Danniel em outubro 28, 2003 11:33 AM, 200.254.1.1:

 

» Postado por: walter em novembro 28, 2003 04:00 PM, 200.199.142:

 

» Postado por: Ricardo em dezembro 4, 2003 05:13 PM, 200.148.96.:

 

» Postado por: kleber theodoro em dezembro 9, 2003 10:20 AM, 200.150.225:

 

» Postado por: Filipe em janeiro 29, 2004 05:15 PM, 200.149.219:

 

» Postado por: Moreira em fevereiro 16, 2004 05:26 PM, 200.167.240:

 

» Postado por: Leonardo em maio 15, 2004 03:53 PM, 200.163.79.:

 

» Postado por: Leonardo em maio 21, 2004 07:10 PM, 201.1.31.21:

 

» Postado por: secret-footfetish em julho 20, 2004 10:24 AM, 66.98.226.5:

 

» Postado por: levi em agosto 10, 2004 09:34 AM, 200.206.184:

 

» Postado por: Zithromax em setembro 24, 2004 06:08 PM, 65.75.139.9:

 

» Postado por: Buy Amoxicillin em outubro 5, 2004 06:51 AM, 67.19.91.50:

 

» Postado por: Cialis em outubro 9, 2004 06:33 AM, 67.19.91.50:

 

» Postado por: Levaquin em outubro 13, 2004 06:12 AM, 67.19.91.50:

 

» Postado por: Remeron prescription em outubro 23, 2004 04:52 AM, 65.75.139.9:

 

» Postado por: Carlos em outubro 24, 2004 07:39 PM, 201.1.11.50:

 

» Postado por: Elidel em novembro 3, 2004 01:04 PM, 67.19.91.50:

 

Antes de comentar...

- Preserve a qualidade desta discussão
- Leia os Termos de Uso.
- Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum.
- Mantenha o foco nos argumentos e no assunto
- Não faça ataques pessoais.
- Pense 5 vezes antes de entrar em discussões inúteis, como "qual é a melhor distribuição/ambiente gráfico/linguagem de programação/etc.", mesmo se alguém já tiver provocado - um erro não justifica o outro
- Não seja um e-mala ;-)


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.