abr
Squid Proxy com Autenticação Samba
Finalmente aprendi a configurar o Proxy Squid para liberar acesso a internet baseado na autenticação de usuários do Samba (compartilhamento de arquivos sabor Windows).
Aparentemente o processo é tão simples que nem é documentado direito. Depois de vários anos pesquisando superficialmente, resolvi mandar bala sem parar enquanto não descobrir. Ninguém explica como funciona o smb_auth que vem junto com o Squid. Toda documentação que encontrei se baseia em “domínios“, não de internet mas do vocabulário Microsoft. Ou seja, para quem não usa este conceito Windoooze, foi barra.
Mas agora ficou fácil, assumindo que você já tem um servidor samba instalado, e o Squid também, basta:
- Adicionar “domain master = yes” e “domain logons = yes” nas configurações gerais do Samba.
(não se preocupe, isso não vai alterar a forma de seus usuários Windows ou Linux fazerem logon. Não precisa configurar ninguém para entrar em “domínio” algum) - Configurar o programa básico de autenticação do Squid para /usr/lib64/squid/smb_auth, ou /usr/lib/squid/smb_auth, exemplos dos padrões do Fedora, 64 e 32bits. A linha de configuração no squid.conf ficaria, por exemplo:
- auth_param basic program /usr/lib64/squid/smb_auth -W XXX
Onde XXX é o nome do “workgroup” ou “domínio” que você configurou em seu Samba. Com a primeira configuração feita acima, o seu nome de “workgroup” do Samba, automaticamente é usado como “domínio” também. Não importa em que servidor o Samba está rodando, basta estar na mesma rede.
- auth_param basic program /usr/lib64/squid/smb_auth -W XXX
- Configurar as regras de controle de acesso do Squid:
- acl Auth_Samba proxy_auth REQUIRED
(Auth_Samba = nome que dei para esta regra; proxy_auth é o tipo de regra, descrito em alguns gerenciadores tipo o Webmin, como “External Auth”) - http_access allow Auth_Samba
(permite acesso mediante a autenticação criada acima)
Esta restrição pode ser misturada entre outras, por exemplo, permitindo apenas os IPs tal e tal autenticados a navegar. Também existem outras opções, por exemplo, para especificar determinados usuários, que não estou usando no momento.
- acl Auth_Samba proxy_auth REQUIRED
Não esqueça de:
- Reiniciar os serviços Samba e Squid após as configurações.
Caso o seu servidor Samba não esteja localizado no mesmo servidor em que o Squid roda:
- Instale os pacotes samba-client e samba-common no servidor Squid, para ele poder, pelo menos, ser um “cliente” do Samba.
Links e Refs:
Se ajudar, deixe um comentário!
Alroger Filho
Bom saber, a propósito, muito bom o seu blog.
junho 11th, 2008 at 7:06 pmBoa essa dica, vai facilitar em muito minha vida.
junho 23rd, 2008 at 6:08 pmChorei ate conseguir fazer rodar…
(so depois achei seu site |:-/ )
Tem uma coisa, na minha config abre um monte de processos:
smbd -D
(smb_auth) -W DOMINIO -U IP_PDC
chega em certo momento o SQUID TRAVA…
To ficando maluco com essa configuracao…
Alguma sugestao pra mim?
Valeu.
julho 9th, 2008 at 7:32 pmGu-i, talvez depois de tanto quebrar a cabeca ficou alguma coisa quebrada nas configuracoes do Squid… Que tal remover ele completo e comecar do zero?
julho 16th, 2008 at 7:21 pmNo Ubuntu/Debian basta dar um apt-get purge no pacote que ele nao apenas removo o programa, mas como tambem os arquivos de configuracoes todos envolvidos.
Gostei do seu artigo, porém tenho uma dúvida para minha situação.
Eu tava pensando em implementar o squid com autenticação para apenas 01 (um) determinado ip.
Exemplo:
Tenho um roteador wireless, configurado com wan e lan com ips estático.
wan: 10.60.25.25 (fictício)
lan: 192.168.0.1 (fictício)
Gostaria que todos os clientes da rede 192.168.0.x tivessem que autenticar no squid, porém nos clientes que estão passando por fora deste roteador, não tivessem que autenticar para navegar.
Sabes alguma solução pra isso?
Agradeço desde já,
Victor Figueira
abril 23rd, 2009 at 10:41 amAdministrador de Redes
Universidade do Estado do Pará
Campus XII – Tapajós
Claro, não tem problema.
Nas regras, ACLs, você pode juntar condições com AND ou com OR. Ou seja… pode fazer requerir a autenticação apenas para uma determinada rede.
Alias… mais simples que isso…. as regras seguem a ordem que estão no squid.conf. Então você pode liberar N redes ou IPs antes de especificar a regra para pedir autenticação. Quando o Squid chega na regra de liberar, pronto, ele não se preocupa mais com as regras seguintes.
Veja se ajuda.
abril 23rd, 2009 at 7:38 pmCara agora quando abro o Navegador na maquina cliente pede essa autenticação só que ela nao passa de jeito nenhum.
Tento ate com o usuario root mas nao passa o que ouve?
Tenho um ferdora 11 32 bits.
julho 15th, 2009 at 10:33 pmRomulo, o SAMBA já está funcionando? Tem um usuário e senha que você consegue entrar na pasta compartilhada? Este mesmo usuário deveria funcionar na authenticação do SAMBA. Lembre que são os usuários do SAMBA que vão funcionar, o que não necessariamente reflete os usuários do Linux existente.
julho 16th, 2009 at 10:35 amopa…
estav aprocurando esta solução
achei em outro lugar, fiz um teste com o comando abaixo:
/usr/lib/squid/smb_auth -d -W TUX -U 192.168.1.244
isto testaria o usuario e a senha do samba pra ver se funcionaria no squid.
Deu OK.
na hora de jogar isto no squid para usar o usuario entao… nao funciona….
setembro 18th, 2009 at 3:15 pmA autenticação agora está meio funcionando.
Meio porque não passa apesar de ter usuario cadastrado no Samba.
Mesmo assim valeu demais, adiantou muito minha vida!
outubro 6th, 2009 at 1:22 pmbom, ainda vou testar fiz todas as configuraçoes que citam. Oque aparecia no meu caso era o erro no
outubro 4th, 2010 at 4:21 pmdomain controller IP, vamos ver se soluciono meu problema, de qlqer forma obg
no meu caso não funcionou, deu falha na hora de restartar o squid. Acho que algum erro de Acl.
outubro 5th, 2010 at 2:52 pmDeivision, basta olhar no log do squid ou syslog geral para ver o erro, deve ser auto-explicativo. Se quiser copia-lo aqui posso dar uma olhada.
outubro 5th, 2010 at 4:04 pmDomain name: camargo8921
Pass-through authentication: no
Query address options: -U 192.168.0.2 -R
Domain controller IP address:
ERR
O que ocorre é este error, o error da acl vem depois, sera que poderia me dar uma ajuda ja pesquisei isso em varios lugares e ainda nao encontrei.
outubro 6th, 2010 at 9:24 pmobg
Bom lembrando que uso samba3 e squid3
outubro 6th, 2010 at 9:26 pmconsegui resolver essa parte colocando o samba como dominio. Porem agora nao esta lendo o proxyauth e eu ja fiz as configuraçoes smb_auth.sh e nao leu ainda.
outubro 7th, 2010 at 10:02 amalguma ideia ?!?
poblema resolvido amigo, Obg foi ate uma coisa boba HSAUSH
outubro 7th, 2010 at 5:26 pmQue bom!
outubro 7th, 2010 at 6:20 pmamigo poderia me ajudar em uma coisa aqui ?
outubro 11th, 2010 at 2:03 pmeu estou querendo colocar autenticação do meu squid por usuário ao inves de por IP, porem o squid msm por ip quando ativo bloqueia tudo o que posso fazer diante disto? Desculpe por colocar 2 assuntos assim aqui?
Ué, você não conseguiu acima?
outubro 13th, 2010 at 8:21 amAgora você controle pela ACL do Auth, ao inves de outras como IP. Lembre que a ordem das ACL faz diferenca.
Sei que o post foi publicado a algum tempo, mas isso me caiu como uma luva, o squid esta autenticando beleza no PDC, gostaria de saber se tem como pegar o grupo a qual pertence o usuário, pois gostaria de estabelecer uma política de bloqueios por grupo, desde já obrigado.
outubro 3rd, 2013 at 8:19 pmpolitica por grupo de usuarios do pdc como faz ??????
abril 27th, 2015 at 9:07 am[…] Café TI – pra perder o sono. Blog do Anderson […]
agosto 28th, 2015 at 3:18 pm