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

    [RESOLVIDO] ACL noauth do Squid

    Scheduled Pinned Locked Moved Portuguese
    5 Posts 2 Posters 1.2k 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.
    • ? Offline
      A Former User
      last edited by

      olá galera, tenho um pfSense 2.1.2 com squid3-dev e squidguard-squid3.
      já a algum tempo (mesmo na versão anterior) percebi que a acl noauth não tem funcionado corretamente quando configurada com mais de uma subnet.

      verifiquei o squid.conf e está da seguinte forma:

      
      # Always allow access to whitelist domains
      http_access allow whitelist
      acl sglog url_regex -i sgr=ACCESSDENIED
      acl noauth src 192.168.0.xxx/32
       192.168.0.xxx/32
       192.168.0.xxx/32
      auth_param basic program ...
      
      

      creio que o problema seja a quebra de linha. se for esse o caso, a configuração deveria ficar da seguinte forma:

      
      # Always allow access to whitelist domains
      http_access allow whitelist
      acl sglog url_regex -i sgr=ACCESSDENIED
      acl noauth src 192.168.0.xxx/32 192.168.0.xxx/32 192.168.0.xxx/32
      auth_param basic program ...
      
      

      Dei uma olhada no squid.inc e está assim:

      
      		$noauth = implode(' ', explode("\n", base64_decode($settings['no_auth_hosts'])));
      		if (!empty($noauth)) {
      			$conf .= "acl noauth src $noauth\n";
      			$valid_acls[] = 'noauth';
      		}
      
      

      nota-se que houve a preocupação de se retirar a quebra de linha, entretanto, na prática parece não ter funcionado muito bem.

      alguém teria alguma dica pra resolver esse problema?

      1 Reply Last reply Reply Quote 0
      • marcellocM Offline
        marcelloc
        last edited by

        Altere a linha

        $noauth = implode(' ', explode("\n", base64_decode($settings['no_auth_hosts'])));
        

        por esta

        $noauth = preg_replace("/\s+/"," ", base64_decode($settings['no_auth_hosts']));
        

        em forma de patch para melhor entendimento

        --- squid.inc   2014-04-23 01:13:21.000000000 -0300
        +++ /root/squid.inc     2014-04-23 01:21:32.000000000 -0300
        @@ -1721,7 +1721,7 @@
                                $conf .= "http_access allow $acl\n";
                }
                else {
        -               $noauth = preg_replace("/\s+/"," ", base64_decode($settings['no_auth_hosts']));
        +               $noauth = implode(' ', explode("\n", base64_decode($settings['no_auth_hosts'])));
                        if (!empty($noauth)) {
                                $conf .= "acl noauth src $noauth\n";
                                $valid_acls[] = 'noauth';
        
        

        Treinamentos de Elite: http://sys-squad.com

        Help a community developer! ;D

        1 Reply Last reply Reply Quote 0
        • ? Offline
          A Former User
          last edited by

          simplesmente espetacular, marcelloc!
          funcionou perfeitamente:

          squid.inc

          
                          $noauth = preg_replace("/\s+/"," ", base64_decode($settings['no_auth_hosts']));
          		//$noauth = implode(' ', explode("\n", base64_decode($settings['no_auth_hosts'])));
          		if (!empty($noauth)) {
          			$conf .= "acl noauth src $noauth\n";
          			$valid_acls[] = 'noauth';
          
          

          squid.conf

          
          http_access allow whitelist
          acl sglog url_regex -i sgr=ACCESSDENIED
          acl noauth src 192.168.0.xxx/32 192.168.0.xxx/32 192.168.0.xxx/32
          auth_param basic ...
          
          

          entretanto tenho mais uma questão (não diretamente relacionada a esse caso):
          nas ACLs do squidguard tenho declarados os logins dos usuários e, agora, estou tentando declarar também os ips dos que não forem autenticar, nessa mesma ACL. Entretanto ao acessar sem autenticação, os bloqueios aplicados são os da regra padrão, e não da ACL que eu configurara anteriormente.
          Há alguma limitação em relação a tipos diferentes de origem de bloqueio na mesma ACL?

          abaixo os clientes (source) declarados na interface da ACL do squidguard:

          
          192.168.0.xxx 'fulano.silva' 'ciclano.santos' 'beltrano.souza'
          
          
          1 Reply Last reply Reply Quote 0
          • marcellocM Offline
            marcelloc
            last edited by

            Melhor abrir um novo tópico para isso.
            Não uso squidguard.  Veja se a documentação dele esclarece este ponto.

            Treinamentos de Elite: http://sys-squad.com

            Help a community developer! ;D

            1 Reply Last reply Reply Quote 0
            • ? Offline
              A Former User
              last edited by

              ok. vlw marcelloc.

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