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

    Squid 3.3.10 para pfsense 2.0 e 2.1 com filtro de SSL/HTTPS

    Scheduled Pinned Locked Moved Portuguese
    593 Posts 129 Posters 402.1k 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.
    • L
      LFCavalcanti
      last edited by

      Bom dia Marcelloc!

      Andei lendo o tópico, mas fiquei confuso com algumas coisas. Eu não tenho interesse em usar o filtro SSL por enquanto, a maioria dos meus clientes usa proxy não transparente com regras de firewall liberando só estritamente o necessário.

      Minhas perguntas são:

      1 - Essa versão em desenvolvimento é a mesma que está na lista de pacotes do PFSense como Squid3-Dev?
      2 - Nessa versão já está incluida a questão do balanceamento de carga e Fail Over?
      3 - Como é feita a integração com o SquidGuard e com o AD?(Se puder passar o link para a resposta do tópico em especifico, pois li aqui e não filtrei a informação correta)
      4 - Para autenticação transparente, usando aquele esquema do Samba, é possivel usar com essa versão?

      –

      Luiz Fernando Cavalcanti
      IT Manager
      Arriviera Technology Group

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

        @LFCavalcanti:

        1 - Essa versão em desenvolvimento é a mesma que está na lista de pacotes do PFSense como Squid3-Dev?

        Exatamente a mesma

        @LFCavalcanti:

        2 - Nessa versão já está incluida a questão do balanceamento de carga e Fail Over?

        Ainda não incluí nenhum teste ou regra a mais para balanceamento de link.
        Se não houve alteração no tratamento das regras da aba floating na 2.0.3 ou na 2.1, os tutoriais disponíveis no fórum devem funcionar.

        @LFCavalcanti:

        3 - Como é feita a integração com o SquidGuard e com o AD?(Se puder passar o link para a resposta do tópico em especifico, pois li aqui e não filtrei a informação correta)

        A integração que o Luis Gustavo fez, já faz parte do pacote.

        @LFCavalcanti:

        4 - Para autenticação transparente, usando aquele esquema do Samba, é possivel usar com essa versão?

        Perfeitamente.  :)

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

        Help a community developer! ;D

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

          Fiz uma vm no XenServer e não estou conseguindo fazer o proxy autenticado com o squid3-dev.
          Eu fiz um teste. Criei uma nova vm e instalei apenas o squid (2). funcionou ok.
          Então desinstalei o squid(2) e instalei o squid3 e aquelas dependencias lá! não mudei nenhuma configuração, contudo não está funcionando. O browser não abre o prompt pra autenticação!

          any ideas?

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

            @UnDr3aD:

            Então desinstalei o squid(2) e instalei o squid3 e aquelas dependencias lá! não mudei nenhuma configuração, contudo não está funcionando. O browser não abre o prompt pra autenticação!

            Veja se o squid está escutando na porta que você configurou. Se não estiver, habilite o ipv6, mate todos os processos do squid e em seguida salve as configurações para iniciar o daemon novamente.

            É importantíssimo para o sysadmin olhar os logs para identificar erros.

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

            Help a community developer! ;D

            1 Reply Last reply Reply Quote 0
            • C
              cmleao
              last edited by

              @gilmarcabral:

              Marcello eu novamente lhe atormentando.
              Encontrei mais 2 probleminhas.
              O primeiro que quando inicializo o serviço do squid e tento rodar o squid -k reconfigure via terminal ele não roda apresenta a seguinte mensagem:
              squid -k reconfigure
              squid: ERROR: Could not send signal 1 to process 40565: (3) No such process

              Mas o serviço esta inicializado mas num consigo ver se tem algum erro de configuração.

              Tentei usar o squid-dev usando o openldap ou autenticação local porem o proxy so recusa conexão.
              Vi esta mensagem abaixo no log o cache do squid.
              ail -f /var/squid/logs/cache.log
              2013/05/16 17:07:44 kid1| Max Mem  size: 131072 KB
              2013/05/16 17:07:44 kid1| Max Swap size: 2097152 KB
              2013/05/16 17:07:44 kid1| Rebuilding storage in /var/squid/cache (no log)
              2013/05/16 17:07:44 kid1| Using Least Load store dir selection
              2013/05/16 17:07:44 kid1| Current Directory is /usr/local/www
              2013/05/16 17:07:44 kid1| Loaded Icons.
              2013/05/16 17:07:44 kid1| HTCP Disabled.
              2013/05/16 17:07:44 kid1| WARNING: no_suid: setuid(0): (1) Operation not permitted
              2013/05/16 17:07:44 kid1| sendto FD 25: (1) Operation not permitted
              2013/05/16 17:07:44 kid1| ipcCreate: CHILD: hello write test failed

              pfSense 2.1 amd64. squid 3.3.8 -dev

              [2.1-RELEASE][root@noc]/root(22): /usr/pbi/squid-amd64/sbin/squid -d 5

              [2.1-RELEASE][root@noc]/root(22): 2013/09/27 00:46:19 kid1| Starting Squid Cache version 3.3.8 for amd64-portbld-freebsd8.3...
              2013/09/27 00:46:19 kid1| Process ID 77987
              2013/09/27 00:46:19 kid1| Process Roles: worker
              2013/09/27 00:46:19 kid1| With 9799 file descriptors available
              2013/09/27 00:46:19 kid1| Initializing IP Cache...
              2013/09/27 00:46:19 kid1| DNS Socket created at [::], FD 7
              2013/09/27 00:46:19 kid1| DNS Socket created at 0.0.0.0, FD 8
              2013/09/27 00:46:19 kid1| Adding domain domain.com.br from /etc/resolv.conf
              2013/09/27 00:46:19 kid1| Adding nameserver 127.0.0.1 from /etc/resolv.conf
              2013/09/27 00:46:19 kid1| Adding nameserver 8.8.8.8 from /etc/resolv.conf
              2013/09/27 00:46:19 kid1| Adding nameserver 8.8.4.4 from /etc/resolv.conf
              2013/09/27 00:46:19 kid1| Adding nameserver 200.176.2.12 from /etc/resolv.conf
              2013/09/27 00:46:19 kid1| Logfile: opening log /var/squid/logs/access.log
              2013/09/27 00:46:19 kid1| WARNING: log parameters now start with a module name. Use 'stdio:/var/squid/logs/access.log'
              2013/09/27 00:46:19 kid1| WARNING: no_suid: setuid(0): (1) Operation not permitted
              2013/09/27 00:46:19 kid1| Unlinkd pipe opened on FD 13
              2013/09/27 00:46:19 kid1| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
              2013/09/27 00:46:19 kid1| Store logging disabled
              2013/09/27 00:46:19 kid1| Swap maxSize 102400 + 8192 KB, estimated 8507 objects
              2013/09/27 00:46:19 kid1| Target number of buckets: 425
              2013/09/27 00:46:19 kid1| Using 8192 Store buckets
              2013/09/27 00:46:19 kid1| Max Mem  size: 8192 KB
              2013/09/27 00:46:19 kid1| Max Swap size: 102400 KB
              2013/09/27 00:46:19 kid1| Rebuilding storage in /var/squid/cache (no log)
              2013/09/27 00:46:19 kid1| Using Least Load store dir selection
              2013/09/27 00:46:19 kid1| Current Directory is /root
              2013/09/27 00:46:19 kid1| Loaded Icons.
              2013/09/27 00:46:19 kid1| HTCP Disabled.
              2013/09/27 00:46:19 kid1| WARNING: no_suid: setuid(0): (1) Operation not permitted
              2013/09/27 00:46:19 kid1| sendto FD 17: (1) Operation not permitted
              2013/09/27 00:46:19 kid1| ipcCreate: CHILD: hello write test failed
              

              [2.1-RELEASE][root@noc]/root(22): netstat | more
              Active Internet connections
              Proto Recv-Q Send-Q Local Address          Foreign Address        (state)
              tcp4      0      0 noc.3128              .                    CLOSED
              tcp4      0      0 noc.https              d-hall.47294          FIN_WAIT_2
              tcp4      0      0 noc.https              d-hall.47293          FIN_WAIT_2
              tcp4      0      0 noc.ssh                d-hall.48163          ESTABLISHED

              O serviço sobe alegremente mas persistentemente CLOSED.

              O que será que esse IPC está tentando fazer que não consegue ? 
              Algum outro processo não estava pronto ou conflito ?

              Num outro servidor (com outro backup de configuração, ambos sem pacotes) deu certo. Estou tentando identificar alguma pista comparando as duas instalações mas no momento não sei bem o que procurar.

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

                Habilite o ipv6, mate todos os processos do squid e salve a configuração.

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

                Help a community developer! ;D

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

                  eu fiz uma CA interna no pfSense e criei um certificado nela.
                  exportei os dois e instalei no root directories (algo assim).

                  sem o proxy no navegador eu consigo acessar o pfsense diboa, o certificado é validado direitinho! Contudo, ao configurar o proxy, o squid bloqueia a conexão!
                  isso aqui é do cache.log

                  
                  2013/09/27 10:26:17 kid1| clientNegotiateSSL: Error negotiating SSL connection on FD 17: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol (1/-1)
                  
                  

                  isso é o que aparece na tela:

                  
                  The following error was encountered while trying to retrieve the URL: https://192.168.0.50/*
                  
                      Failed to establish a secure connection to 192.168.0.50
                  
                  The system returned:
                  
                      (92) Protocol error (TLS code: X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN)
                  
                      Self-signed SSL Certificate in chain: /C=BR/ST=DF/L=BSB/O=NTU/emailAddress=user@domain.com/CN=pfSense-ca
                  
                  This proxy and the remote host failed to negotiate a mutually acceptable security settings for handling your request. It is possible that the remote host does not support secure connections, or the proxy is not satisfied with the host security credentials.
                  
                  Your cache administrator is admin@localhost.
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • marcellocM
                    marcelloc
                    last edited by

                    Marque a opção "accept certificate errors" para o usuário decidir se quer ou não acessar um site que não tem um certificado válido.

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

                    Help a community developer! ;D

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

                      @marcelloc:

                      Marque a opção "accept certificate errors" para o usuário decidir se quer ou não acessar um site que não tem um certificado válido.

                      vlw, funfou "OK". agora apresenta o erro de certificado.
                      tem alguma forma de fazer o proxy reconhecer esse certificado (do próprio pfsense), para que as telas de erro do squid não apresentem erro de certificado?

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

                        Instala o crt da ca em cada maquina.

                        Importe como ca confiável.

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

                        Help a community developer! ;D

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

                          @marcelloc:

                          Instala o crt da ca em cada maquina.

                          Importe como ca confiável.

                          aí que está! eu já fiz isso!
                          Sem configurar o proxy no navegador o site não da erro nenhum de ssl. Funciona perfeitamente! Contudo ao configurar o proxy o erro de ssl começa a ser apresentado!
                          Estou testando isso acessando o pfSense com ssl ativado (https) e nas telas de erro do proxy.

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

                            Neste caso deve ser necessário incluir o CRT da ca na lista de certificados raiz que o squid está lendo.

                            Não lembro de cabeça onde fica.

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

                            Help a community developer! ;D

                            1 Reply Last reply Reply Quote 0
                            • C
                              cmleao
                              last edited by

                              @marcelloc:

                              Habilite o ipv6, mate todos os processos do squid e salve a configuração.

                              Ia mesmo demorar para chegar nesse ponto.  Agora funcionou certinho.
                              Pelo que entendi o squid tem algum tipo de suporte nativo a IPv6 que dependendo do contexto pode apresentar problema ao manipular sockets.
                              Se estiver fácil de apontar material de referência sobre esse assunto, estaria disposto a ler.

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

                                Não sei se é dependência ou bug.

                                Tenho uma versão do squid 3.3.5 no meu repositório sem o ipv6 compilado e sobe tranquilo na 2.0.3 e 2.1

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

                                Help a community developer! ;D

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

                                  @marcelloc:

                                  Neste caso deve ser necessário incluir o CRT da ca na lista de certificados raiz que o squid está lendo.

                                  Não lembro de cabeça onde fica.

                                  joguei os certificados dentro das pastas /usr/local/share/certs e /usr/pbi/squid-amd64/share/certs, mas não surtiu efeito.
                                  já reiniciei o servidor pra ver, mas também nada.

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

                                    Exportou colando o hash no nome do certificado?

                                    /usr/bin/openssl x509 -hash -noout -in /tmp/cert.pem

                                    trecho do código do squid-dev que gera isso

                                     if ($cert_count < 10){
                                                    conf_mount_rw();
                                                    #create ca-root hashes from ca-root-nss package
                                                    log_error("Creating root certificate bundle hashes from the Mozilla Project");
                                                    $cas=file(SQUID_LOCALBASE.'/share/certs/ca-root-nss.crt');
                                                    $cert=0;
                                                    foreach ($cas as $ca){
                                                    if (preg_match("/--BEGIN CERTIFICATE--/",$ca))
                                                                    $cert=1;
                                                            if ($cert == 1)
                                                                    $crt.=$ca;
                                                            if (preg_match("/-END CERTIFICATE-/",$ca)){
                                                                    file_put_contents("/tmp/cert.pem",$crt, LOCK_EX);
                                                                    $cert_hash=array();
                                                                    exec("/usr/bin/openssl x509 -hash -noout -in /tmp/cert.pem",$cert_hash);
                                                                    file_put_contents(SQUID_LOCALBASE."/share/certs/".$cert_hash[0].".0",$crt,LOCK_EX);
                                                                    $crt="";
                                                                    $cert=0;
                                                                    }
                                                            }
                                                    }
                                    

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

                                    Help a community developer! ;D

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

                                      @marcelloc:

                                      Exportou colando o hash no nome do certificado?

                                      /usr/bin/openssl x509 -hash -noout -in /tmp/cert.pem

                                      trecho do código do squid-dev que gera isso

                                       if ($cert_count < 10){
                                                      conf_mount_rw();
                                                      #create ca-root hashes from ca-root-nss package
                                                      log_error("Creating root certificate bundle hashes from the Mozilla Project");
                                                      $cas=file(SQUID_LOCALBASE.'/share/certs/ca-root-nss.crt');
                                                      $cert=0;
                                                      foreach ($cas as $ca){
                                                      if (preg_match("/--BEGIN CERTIFICATE--/",$ca))
                                                                      $cert=1;
                                                              if ($cert == 1)
                                                                      $crt.=$ca;
                                                              if (preg_match("/-END CERTIFICATE-/",$ca)){
                                                                      file_put_contents("/tmp/cert.pem",$crt, LOCK_EX);
                                                                      $cert_hash=array();
                                                                      exec("/usr/bin/openssl x509 -hash -noout -in /tmp/cert.pem",$cert_hash);
                                                                      file_put_contents(SQUID_LOCALBASE."/share/certs/".$cert_hash[0].".0",$crt,LOCK_EX);
                                                                      $crt="";
                                                                      $cert=0;
                                                                      }
                                                              }
                                                      }
                                      

                                      não fiz isso aí não! e acho que também não entendi isso aí!
                                      eu somente colei os .crt nos diretórios supracitados! Eu ainda não entendi o que eu devo fazer com esse código aí! sry, but I'm a newbie!

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

                                        O que você tem no diretório dos certificados?

                                        Um monte de arquivos ou só um?

                                        Consegue ver que são certificados e que o nome do arquivo é o hash gerado pelo comando do openssl que passei no post anterior?

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

                                        Help a community developer! ;D

                                        1 Reply Last reply Reply Quote 0
                                        • U
                                          ubezerra
                                          last edited by

                                          Amigos,

                                          Não sei se estou fazendo certo.

                                          Tentei a instalação do squid3.3.8 através do pkg_add porém apresenta um erro ao baixar, segundo o repositorio e-sac.siteseguro.ws, a versão do samba3.6.3.

                                          Ele informa que o pacote samba3.6.13 não foi encontrado.

                                          Li que na descrição do pacote , é visto que o nome do pacote não confere com o encontrado no site.

                                          Queria saber se isso é proposital, para testes do desenvolvedor, ou se pode ser algum erro.

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

                                            do meu repositório, use a 3.3.5

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

                                            Help a community developer! ;D

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