17
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:

  1. 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)
  2. 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:
    1. 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.
  3. Configurar as regras de controle de acesso do Squid:
    1. 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”)
    2. 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.

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

23 Responses to “Squid Proxy com Autenticação Samba”

  1. 1
    Senhor dos Servidores Says:

    Bom saber, a propósito, muito bom o seu blog.

  2. 2
    Hellbyte Says:

    Boa essa dica, vai facilitar em muito minha vida.

  3. 3
    Gu-i Says:

    Chorei 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.

  4. 4
    Alroger Filho Says:

    Gu-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?
    No 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.

  5. 5
    Victor Says:

    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
    Administrador de Redes
    Universidade do Estado do Pará
    Campus XII – Tapajós

  6. 6
    Alroger Filho Says:

    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.

  7. 7
    Romulo Says:

    Cara 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.

  8. 8
    Alroger Filho Says:

    Romulo, 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.

  9. 9
    jefer Says:

    opa…
    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….

  10. 10
    Yamandu Says:

    A 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!

  11. 11
    Deivison Says:

    bom, ainda vou testar fiz todas as configuraçoes que citam. Oque aparecia no meu caso era o erro no
    domain controller IP, vamos ver se soluciono meu problema, de qlqer forma obg

  12. 12
    Deivison Says:

    no meu caso não funcionou, deu falha na hora de restartar o squid. Acho que algum erro de Acl.

  13. 13
    Alroger Filho Says:

    Deivision, 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.

  14. 14
    Deivison Says:

    Domain 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.
    obg

  15. 15
    Deivison Says:

    Bom lembrando que uso samba3 e squid3

  16. 16
    Deivison Says:

    consegui 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.
    alguma ideia ?!?

  17. 17
    Deivison Says:

    poblema resolvido amigo, Obg foi ate uma coisa boba HSAUSH

  18. 19
    Deivison Says:

    amigo poderia me ajudar em uma coisa aqui ?
    eu 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?

  19. 20
    Alroger Filho Says:

    Ué, você não conseguiu acima?
    Agora você controle pela ACL do Auth, ao inves de outras como IP. Lembre que a ordem das ACL faz diferenca.

  20. 21
    Thales Says:

    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.

  21. 22
    fabio Says:

    politica por grupo de usuarios do pdc como faz ??????

  22. 23
    Servidor Proxy com Autenticação no Samba 4 com CentOS 6 | TI da Hora! Says:

    […] Café TI – pra perder o sono. Blog do Anderson […]

© 2017 Cafe TI – pra perder o sono. | [RSS] Artigos and [RSS] Comentários

Design by Web4 Sudoku - Powered By Wordpress