Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Squid com autenticação em um RADIUS

    Scheduled Pinned Locked Moved Portuguese
    2 Posts 1 Posters 463 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      AdrB78
      last edited by

      Boa tarde pessoal,

      Estou tentando configurar a autenticação dos usuários do meu Squid em um RADIUS externo, rodando em um servidor Windows (NPS), mas estou enfrentando alguns problemas…

      A autenticação do RADIUS aparentemente está funcionando corretamente, se eu digito credenciais válidas o acesso é completado, do contrário o navegador repete a solicitação, o problema ocorre se eu cancelo a autenticação, nesse caso, ao invés de um erro de autenticação como seria o esperado, o acesso se completa e a página é acessada normalmente.

      A princípio apenas configurei os campos Authentication Method, Authentication Server e RADIUS Secret da aba Authentication do Squid, está faltando alguma coisa?

      1 Reply Last reply Reply Quote 0
      • A
        AdrB78
        last edited by

        Depois de muita briga com o Squid acho que consegui avançar, embora o comportamento dele ainda me pareça estranho…

        Alternei várias configurações aqui e cheguei à conclusão que o meu Squid não aceita o uso da Whitelist padrão com autenticação. Se eu uso a Whitelist padrão o comportamento dele fica como descrito no meu primeiro post, pior que isso ainda foi constatar que utilizando a Whitelist padrão, se eu não colocar nada no campo Allowed Subnets, o Squid sequer solicita a autenticação do usuário, a janela nem é exibida no navegador.
        Decidi então partir para uma solução de contorno, usar as Custom options (aba General do Squid, botão Show Advanced Options) para fazer as liberações que preciso, mas acrescentei a ACL password, que é criada automaticamente pelo Squid quando configuro a autenticação, na mesma linha em que permito o acesso ao meu arquivo de domínios permitidos, da seguinte forma:

        acl DOMINIOS_PERMITIDOS dstdom_regex -i "/var/squid/acl/domains.acl"
        http_access allow password DOMINIOS_PERMITIDOS

        Com essa alteração tudo mudou, a autenticação passou a funcionar conforme o esperado, permitindo o acesso quando as credenciais são válidas, solicitando nova autenticação quando as credenciais não são válidas e negando quando o usuário cancela.

        Outra coisa que me intriga é que mesmo que meu IP não pertença à rede configurada em Allowed Subnets ou que não seja configurada nenhuma rede ali (a opção Allow Users on Interface está desabilitada também) o Squid me permite navegar, é como já comentaram em outro tópico por aqui, o campo Allowed Subnets parece estar lá apenas como enfeite…

        Um detalhe menos importante é a mensagem configurada em Authentication Prompt (aba Authentication), preenchi o campo com o texto "Teste" (sem as aspas) e notei que no Google Chrome esse texto é ignorado, a mensagem exibida na janela de autenticação fica assim:

        Autenticação necessária
        O proxy http://x.x.x.x exige um nome de usuário e uma senha.
        Sua conexão a este site não é particular

        Já no Internet Explorer e no Edge o texto aparece na janela de autenticação, mas a redação fica até cômica:

        O servidor x.x.x.x está solicitando seu nome de usuário e sua senha. O servidor indica que é proveniente de
        Teste.

        Seguem alguns cenários que testei para chegar a essas conclusões:

        Teste 1: Com whitelist padrão e Allowed Subnets vazia
        Resultado: Navegador nem sequer exibe a janela de autenticação >:( e o acesso é bem sucedido para os domínios listados na Whitelist :-\

        squid.conf:

        Custom options before auth

        Always allow access to whitelist domains

        http_access allow whitelist
        auth_param basic program /usr/local/libexec/squid/basic_radius_auth -w 123 -h x.x.x.x -p 1812
        auth_param basic children 5
        auth_param basic realm Teste
        auth_param basic credentialsttl 5 minutes
        acl password proxy_auth REQUIRED

        Custom options after auth

        Default block all to be sure

        http_access deny allsrc

        Teste 2: Com whitelist padrão e Allowed Subnets configurada
        Resultado: Navegador exibe janela de autenticação :), se o usuário e senha estiverem corretos o acesso é permitido :), se estiverem errados solicita novamente :), no entanto, se a janela de autenticação é cancelada o acesso é permitido :o

        squid.conf:

        Custom options before auth

        Always allow access to whitelist domains

        http_access allow whitelist
        auth_param basic program /usr/local/libexec/squid/basic_radius_auth -w 123 -h x.x.x.x -p 1812
        auth_param basic children 5
        auth_param basic realm Teste
        auth_param basic credentialsttl 5 minutes
        acl password proxy_auth REQUIRED

        Custom options after auth

        http_access allow password allowed_subnets

        Default block all to be sure

        http_access deny allsrc

        Teste 3: Sem whitelist padrão, com Allowed Subnets configurada e com as Custom Options mencionadas lá em cima.
        Resultado: Tudo ok como esperado :D, permite o acesso quando as credenciais são válidas :), solicita nova autenticação quando as credenciais não são válidas :) e nega o acesso quando o usuário cancela :)

        squid.conf:

        Custom options before auth

        auth_param basic program /usr/local/libexec/squid/basic_radius_auth -w 123 -h x.x.x.x -p 1812
        auth_param basic children 5
        auth_param basic realm Teste
        auth_param basic credentialsttl 5 minutes
        acl password proxy_auth REQUIRED

        Custom options after auth

        acl DOMINIOS_PERMITIDOS dstdom_regex -i "/var/squid/acl/domains.acl"
        http_access allow password DOMINIOS_PERMITIDOS

        http_access allow password allowed_subnets

        Default block all to be sure

        http_access deny allsrc

        Teste 4: Sem whitelist, com as Custom Options mencionadas lá em cima e Allowed Subnets vazia
        Resultado: Tudo ok com a autenticação :D, permite o acesso quando as credenciais são válidas :), solicita nova autenticação quando as credenciais não são válidas :) e nega o acesso quando o usuário cancela :), mas eu deveria conseguir navegar sem ter nenhuma rede permitida? ??? respondam essa ateus! :P :P :P

        squid.conf:

        Custom options before auth

        auth_param basic program /usr/local/libexec/squid/basic_radius_auth -w 123 -h x.x.x.x -p 1812
        auth_param basic children 5
        auth_param basic realm Teste
        auth_param basic credentialsttl 5 minutes
        acl password proxy_auth REQUIRED

        Custom options after auth

        acl DOMINIOS_PERMITIDOS dstdom_regex -i "/var/squid/acl/domains.acl"
        http_access allow password DOMINIOS_PERMITIDOS

        Default block all to be sure

        http_access deny allsrc

        1 Reply Last reply Reply Quote 0
        • First post
          Last post
        Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.