Autenticação e streaming do Squid

Autenticação e streaming do Squid

Eu configurei o squid usando autenticação Kerberos. Também estou usando o squidguard como um redirecionador de URL para bloquear a maldade usual da web. Existem alguns sites que permitimos que determinados usuários o façam e outros não. Tudo isso funciona bem, desde que não esteja usando streaming.

Pelo que posso determinar pelos logs do squid e pelos rastreamentos do wireshark que fiz, quando a solicitação inicial de streaming é enviada, está tudo bem, o nome de usuário autenticado é enviado com a solicitação ao squidguard. O problema é que no tráfego subsequente o nome de usuário não é enviado ao squidguard, fazendo com que ele seja bloqueado com base na política padrão.

Eu tentei usar o recurso interno de permissão/negação do squid, mas é relativamente desajeitado e, até agora, o squidguard tem sido muito fácil e rápido.

Aí vem a(s) pergunta(s):

  • Como faço para que o Squid passe o nome de usuário em todas as solicitações? (algo me diz que esta não é a melhor maneira)
  • Como faço para que o squidguard veja que o tráfego é autenticado para um usuário específico, mesmo quando um nome de usuário não é passado?
  • Existe alguma outra maneira de conseguir isso?

Alguns detalhes que podem ser importantes:

  • Estou usando uma lista de usuários armazenados em um arquivo de texto para o squidguard comparar.
  • Estou usando autenticação Kerberos completa com o Squid.
  • CentOS 6.0
  • Lula 3.1.4
  • Lulaguarda 1.3

Editar

Para esclarecimento, adicionei o seguinte trecho de calamaris para demonstrar o que está acontecendo:

wsXX.domain.local                       534   5.99      34M   3.04    1   69.93
  *.outsidedomain.com                   204  14.22       5M  20.66    0   92.14
 <error>                                137   0.00       0M   0.00    0  589.16

[email protected]@wsXX.domain.local    115   0.00       1M   0.00   70    0.16
 *.outsidedomain.com                     84   0.00       1M   0.00   73    0.17
 <error>                                 24   0.00       0M   0.00   21    0.00

*EDITAR*

À medida que me aventurei mais fundo na toca do coelho, parece que, em particular, ele não é autenticado em respostas a solicitações HTTP. Na verdade, se eu colocar no statemenet

    http_reply_access deny !auth

Não permitirá nenhum tráfego https, mas permitirá a maior parte do tráfego http. Estou completamente perplexo, na verdade parece que está permitindo a passagem de tráfego não autenticado (estarei testando isso hoje) [Testado e permitirá tráfego http não autenticado, mas https quente], embora eu tenha as seguintes linhas em meu squid.conf:

    http_access deny !auth
    http_access allow auth
    http_access deny all

*EDITAR* Corrigi http não autenticado e httpsm tudo parece estar funcionando bem, exceto sites de streaming ainda :(

pelo que vale a pena eu tive que mudar a seguinte linha na configuração

   http_access deny !Safe_ports 

para

   http_access deny !Safe_ports !auth

Responder1

Então, eu descobri isso. Acontece que havia algumas outras ACLs no meu squid.conf que permitiam tráfego não autenticado através do proxy. Como essas regras estavam sendo atingidas antes das regras para negar tráfego não autenticado, o tráfego estava sendo enviado por meio de tráfego não autenticado.

Espero que isso sirva como um bom recurso para qualquer pessoa que esteja tentando fazer algo semelhante.

informação relacionada