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

    Squid no cachea

    Scheduled Pinned Locked Moved Español
    17 Posts 4 Posters 3.8k 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.
    • M
      MichelR
      last edited by

      Buenas noches, he instalado con la ayuda del foro un pfSense + squid +squidguard. Hasta aquí todo bien, el tema es que al activar la cache del proxy siguiendo la documentación de este foro no parece que haga su trabajo correctamente.

      Dejo unas líneas del fichero access.log (Todas iguales).

                          0 172.26.0.54 TCP_DENIED/400 1757 GET NONE:// - NONE/- text/html
      1430166017.169      0 172.26.0.54 TCP_DENIED/400 1763 GET NONE:// - NONE/- text/html
      1430166017.175      0 172.26.0.54 TCP_DENIED/400 1752 GET NONE:// - NONE/- text/html
      1430166017.182      0 172.26.0.54 TCP_DENIED/400 1746 GET NONE:// - NONE/- text/html
      1430166022.981      0 172.26.0.35 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166023.036      0 172.26.0.135 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166025.354      0 172.26.0.252 TCP_DENIED/400 1552 NONE NONE:// - NONE/- text/html
      1430166025.354      0 172.26.0.252 TCP_DENIED/400 1552 NONE NONE:// - NONE/- text/html
      1430166032.139  15229 172.26.0.35 TCP_MISS/200 3162 CONNECT www.csi-csif.org.es:443 - DIRECT/87.216.210.194 -
      1430166032.533      0 172.26.0.54 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166032.536      0 172.26.0.54 TCP_DENIED/400 1552 NONE NONE:// - NONE/- text/html
      1430166032.981      0 172.26.0.35 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166033.036      0 172.26.0.135 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166042.981      0 172.26.0.35 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166043.036      0 172.26.0.135 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166051.203      0 172.26.0.18 TCP_DENIED/400 1550 NONE NONE:// - NONE/- text/html
      1430166051.496      0 172.26.0.35 TCP_DENIED/400 2316 POST NONE:// - NONE/- text/html
      1430166052.981      0 172.26.0.35 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166053.036      0 172.26.0.135 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166059.363      0 172.26.0.135 TCP_DENIED/400 1872 POST NONE:// - NONE/- text/html
      1430166061.776      0 172.26.0.131 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166062.935      0 172.26.0.35 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166063.035      0 172.26.0.135 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166063.827      0 172.26.0.252 TCP_DENIED/400 1552 NONE NONE:// - NONE/- text/html
      1430166064.777      0 172.26.0.252 TCP_DENIED/400 1552 NONE NONE:// - NONE/- text/html
      1430166072.935      0 172.26.0.35 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166073.036      0 172.26.0.135 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166082.936      0 172.26.0.35 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166083.035      0 172.26.0.135 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166085.356      0 172.26.0.252 TCP_DENIED/400 1552 NONE NONE:// - NONE/- text/html
      1430166085.356      0 172.26.0.252 TCP_DENIED/400 1552 NONE NONE:// - NONE/- text/html
      1430166088.866      0 172.26.0.49 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166088.874      0 172.26.0.49 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166088.886      0 172.26.0.49 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166089.361  61800 172.26.0.18 TCP_MISS/200 6422 CONNECT setup.icloud.com:443 - DIRECT/17.167.139.47 -
      1430166092.935      0 172.26.0.35 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166093.035      0 172.26.0.135 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166094.166      0 172.26.0.54 TCP_DENIED/400 1866 GET NONE:// - NONE/- text/html
      1430166096.288      0 172.26.0.23 TCP_DENIED/400 3051 POST NONE:// - NONE/- text/html
      1430166097.560      0 172.26.0.49 TCP_DENIED/400 1555 NONE NONE:// - NONE/- text/html
      1430166102.935      0 172.26.0.35 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166103.035      0 172.26.0.135 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166112.936      0 172.26.0.35 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166113.035      0 172.26.0.135 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166113.037      0 172.26.0.135 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166113.500      0 172.26.0.35 TCP_DENIED/400 2096 POST NONE:// - NONE/- text/html
      1430166115.187  78040 172.26.0.49 TCP_MISS/200 6581 CONNECT www.facebook.com:443 - DIRECT/31.13.93.3 -
      1430166118.140      0 172.26.0.131 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166118.142      0 172.26.0.131 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166118.144      0 172.26.0.131 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166118.146      0 172.26.0.131 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166122.936      0 172.26.0.35 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166123.035      0 172.26.0.135 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166123.309 899930 172.26.0.49 TCP_MISS/200 1666 CONNECT mtalk.google.com:443 - DIRECT/64.233.167.188 -
      1430166123.319      0 172.26.0.49 TCP_DENIED/403 1310 CONNECT mtalk.google.com:5228 - NONE/- text/html
      1430166123.831      0 172.26.0.252 TCP_DENIED/400 1552 NONE NONE:// - NONE/- text/html
      1430166124.776      0 172.26.0.252 TCP_DENIED/400 1552 NONE NONE:// - NONE/- text/html
      1430166125.723      0 172.26.0.51 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166125.724      0 172.26.0.51 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      1430166125.726      0 172.26.0.51 TCP_DENIED/400 1553 NONE NONE:// - NONE/- text/html
      

      He borrado la cache con los siguientes comandos:

      /usr/local/etc/rc.d/squid.sh stop
      rm -rf /var/squid/cache/
      mkdir -p /var/squid/cache/
      chown squid:squid /var/squid/cache/
      chmod 777 /var/squid/cache/
      squid -z
      /usr/local/etc/rc.d/squid.sh start
      

      No encuentro ningún TCP_HIT por ningún lado por lo que creo que no está cacheando nada.

      He leído varios posts referentes a esto pero después de seguir las indicaciones no he obtenido resultados.

      Muchas gracias

      1 Reply Last reply Reply Quote 0
      • belleraB
        bellera
        last edited by

        400 Solicitud incorrecta
            La solicitud contiene sintaxis errónea y no debería repetirse.

        http://es.wikipedia.org/wiki/Anexo:C%C3%B3digos_de_estado_HTTP#4xx_Errores_del_cliente

        Google TCP_DENIED/400

        Tu problema no es si cachea o no, creo. Diría que tienes algo mal en la configuración. Me atrevería a decir que tiene que ver con el modo transparente, pues las únicas conexiones que pasan son las https (TCP 443).

        Te sugiero, además, borres de nuevo toda la caché y la definas desde el configurador web en Services - Proxy Server - Local Caché

        Lo digo porque crear la carpeta desde root con permisos 777 me parece algo arriesgado…

        $ ls -l /var/squid | grep cache
        drwxr-xr-x  130 proxy  proxy  2048 Apr 28 00:00 cache
        

        Logs explicados en https://forum.pfsense.org/index.php?topic=90755.msg502360#msg502360

        1 Reply Last reply Reply Quote 0
        • M
          MichelR
          last edited by

          Hola bellera, muchas gracias.

          He borrado y vuelto a crear la cache como me dijiste pero sigue igual.

          Comentarte que el squid no está en modo transparente, tengo creadas 2 port forward que redirigen todas las peticiones desde la lan net hacia los puertos 80 y 443 al proxy por el puerto 3128 para forzar que todo pase por el squid.

          Te paso el contenido de squid.conf por si hay ves algo raro:

          Do not edit manually !

          http_port 172.26.0.5:3128
          icp_port 0

          pid_filename /var/run/squid.pid
          cache_effective_user proxy
          cache_effective_group proxy
          error_directory /usr/pbi/squid-i386/etc/squid/errors/Spanish
          icon_directory /usr/pbi/squid-i386/etc/squid/icons
          visible_hostname localhost
          cache_mgr mrecio@akceso.com
          access_log /var/squid/logs/access.log
          cache_log /var/squid/logs/cache.log
          cache_store_log none
          logfile_rotate 7
          shutdown_lifetime 3 seconds

          Allow local network(s) on interface(s)

          acl localnet src  172.26.0.0/255.255.255.0
          uri_whitespace strip

          cache_mem 512 MB
          maximum_object_size_in_memory 32 KB
          memory_replacement_policy heap GDSF
          cache_replacement_policy heap LFUDA
          cache_dir ufs /var/squid/cache 50000 16 256
          minimum_object_size 0 KB
          maximum_object_size 4 KB
          offline_mode off
          cache_swap_low 90
          cache_swap_high 95

          No redirector configured

          Setup some default acls

          acl all src 0.0.0.0/0.0.0.0
          acl localhost src 127.0.0.1/255.255.255.255
          acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901  3128 1025-65535 443
          acl sslports port 443 563  443
          acl manager proto cache_object
          acl purge method PURGE
          acl connect method CONNECT
          acl dynamic urlpath_regex cgi-bin ?
          acl allowed_subnets src 172.26.0.0/24 172.26.1.0/24
          acl blacklist dstdom_regex -i '/var/squid/acl/blacklist.acl'
          cache deny dynamic
          http_access allow manager localhost

          http_access deny manager
          http_access allow purge localhost
          http_access deny purge
          http_access deny !safeports
          http_access deny CONNECT !sslports

          Always allow localhost connections

          http_access allow localhost

          quick_abort_min 0 KB
          quick_abort_max 0 KB
          request_body_max_size 0 KB
          reply_body_max_size 0 deny all
          delay_pools 1
          delay_class 1 2
          delay_parameters 1 -1/-1 -1/-1
          delay_initial_bucket_level 100

          Throttle extensions matched in the url

          acl throttle_exts urlpath_regex -i '/var/squid/acl/throttle_exts.acl'
          delay_access 1 allow throttle_exts
          delay_access 1 deny all

          Custom options

          url_rewrite_program /usr/pbi/squidguard-i386/bin/squidGuard -c /usr/pbi/squidguard-i386/etc/squidGuard/squidGuard.conf
          url_rewrite_bypass off
          url_rewrite_children 16 startup=8 idle=4 concurrency=0

          Block access to blacklist domains

          http_access deny blacklist

          Setup allowed acls

          Allow local network(s) on interface(s)

          http_access allow allowed_subnets
          http_access allow localnet

          Default block all to be sure

          http_access deny all

          Al ejecutar squid -z me da los siguientes avisos:

          aclParseAclLine: WARNING: empty ACL: acl throttle_exts urlpath_regex -i "/var/squid/acl/throttle_exts.acl"
          2015/04/28 12:10:08| parseConfigFile: squid.conf:74 unrecognized: 'url_rewrite_bypass'

          no sé si esto te puede ayudar algo.

          1 Reply Last reply Reply Quote 0
          • belleraB
            bellera
            last edited by

            @MichelR:

            Comentarte que el squid no está en modo transparente, tengo creadas 2 port forward que redirigen todas las peticiones desde la lan net hacia los puertos 80 y 443 al proxy por el puerto 3128 para forzar que todo pase por el squid.

            No puedes hacer esto. Quita los redireccionamientos y pon la configuración de squid en modo transparente.

            Eso creará los redireccionamientos necesarios y pondrá a squid en modo transparent/intercept, que es lo que te falta.

            https://forum.pfsense.org/index.php?topic=21083.msg108436#msg108436 (transparent, squid 2.x)

            https://forum.pfsense.org/index.php?topic=83611.msg458311#msg458311 (rdr, redireccionamientos)

            https://forum.pfsense.org/index.php?topic=72872.msg402557#msg402557 (intercept, squid 3.x)

            1 Reply Last reply Reply Quote 0
            • belleraB
              bellera
              last edited by

              @MichelR:

              Al ejecutar squid -z me da los siguientes avisos:

              aclParseAclLine: WARNING: empty ACL: acl throttle_exts urlpath_regex -i "/var/squid/acl/throttle_exts.acl"

              Este error no creo que sea crítico. Quizás tocaste algo en Traffic management y el archivo ACL que se generó está vacío.

              1 Reply Last reply Reply Quote 0
              • belleraB
                bellera
                last edited by

                @MichelR:

                Al ejecutar squid -z me da los siguientes avisos:

                2015/04/28 12:10:08| parseConfigFile: squid.conf:74 unrecognized: 'url_rewrite_bypass'

                ¿ squid 2.x o 3.x ?

                https://forum.pfsense.org/index.php?topic=73740.0

                1 Reply Last reply Reply Quote 0
                • M
                  MichelR
                  last edited by

                  Squid 2.X

                  El tema de tenerlo no transparente es por poder filtrar el tráfico HTTPS, y el tema del NAT es por evitar que me deshabiliten los usuarios los datos del proxy desde los navegadores y poder navegar libremente.

                  1 Reply Last reply Reply Quote 0
                  • belleraB
                    bellera
                    last edited by

                    Pues tienes puesta la sintaxis para integrar squidGuard a squid 3.x, no a squid 2.x. Revisa eso.

                    No puedes enviar el tráfico de forma incondicional a un proxy NO transparente. Si el proxy NO es transparente el navegador debe "enterarse" de que lo tiene.

                    Si quieres filtrar https sólo tienes las siguientes soluciones:

                    1. Declarar el proxy en el navegador.

                    2. Usar técnicas de autodescubrimiento de proxy (wpad), que NO funcionan en todas las combinaciones de s.o.+navegador clientes.

                    3. Emplear squid 3.x con SSL Bump, que precisa la instalación de certificado en los navegadores de los clientes.

                    Todo esto está ampliamente explicado en nuestro apartado de Documentación. Y yo diría que, además, es el tema más debatido de este foro…

                    Y yendo a la fuente, http://wiki.squid-cache.org/SquidFaq/InterceptionProxy

                    1 Reply Last reply Reply Quote 0
                    • M
                      MichelR
                      last edited by

                      Creo que no me estoy explicando bien.

                      Los navegadores tienen los datos del proxy cpnfigurados correctamente, pero si algún usuario los deshabilitaba podía navegar sin filtro de squid, de ahí lo de redirigir el tráfico al squid, ahora en seguida me llaman porque no pueden navegar si intentan quitar el proxy ;D ;D

                      Eso lo tengo controlado y funciona bien, el tema es la cache, por lo que veo no cachea nada, por lo que he leído en un link que me has mandado el problema es que se hacen peticiones erróneas de ahí lo del error TCP_DENIED/400.

                      @bellera:

                      Pues tienes puesta la sintaxis para integrar squidGuard a squid 3.x, no a squid 2.x. Revisa eso.

                      No sé como ver eso, es aconsejable instalar la versión 3?
                      En cuánto al proxy transparente o no,  ¿ tu que me recomiendas ? Llevo poco tiempo con pfSense y como verás me asaltan las dudas…

                      Muchas gracias por todo.

                      1 Reply Last reply Reply Quote 0
                      • N
                        ncolunga
                        last edited by

                        Hola,

                        Ese error  TCP_DENIED/400 1553 NONE NONE:// en modo transparente lo puede estar dando por tener el proxy configurado en el interface localhost. Si estás utilizando squid2 asegurate de no activar el proxy para localhost y si estás usando squid3 no actives el modo transparente para localhost.

                        1 Reply Last reply Reply Quote 0
                        • belleraB
                          bellera
                          last edited by

                          @MichelR:

                          Creo que no me estoy explicando bien.

                          Los navegadores tienen los datos del proxy configurados correctamente, pero si algún usuario los deshabilitaba podía navegar sin filtro de squid, de ahí lo de redirigir el tráfico al squid, ahora en seguida me llaman porque no pueden navegar si intentan quitar el proxy ;D ;D

                          Eso lo tengo controlado y funciona bien, el tema es la cache, por lo que veo no cachea nada, por lo que he leído en un link que me has mandado el problema es que se hacen peticiones erróneas de ahí lo del error TCP_DENIED/400.

                          Insisto. Quita los redireccionamientos.

                          Y asegúrate simplemente que en LAN no dejas ir a destinos TCP 80, TCP 443 y TCP 8000-8100 (http alternativos). Eso impedirá que naveguen directamente. No hace falta regla de bloqueo en LAN. Simplemente que no haya una regla default que permita hacer esto y más.

                          Es más simple de lo que parece…

                          No sé como ver eso, es aconsejable instalar la versión 3?

                          Pues dejando lo que venía por defecto en Custom Integration… al instalar squidGuard para squid 2.x. Si no venía esto es que instalaste squidGuard para squid 3.x en lugar de para squid 2.x

                          squid3 hace más cosas pero si no las necesitas no tienes por qué cambiar. Son ramas distintas, mantenidas las dos.

                          redirect_program /usr/pbi/squidguard-squid3-i386/bin/squidGuard -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf;redirector_bypass off;url_rewrite_children 5
                          

                          En cuánto al proxy transparente o no,  ¿ tu que me recomiendas ? Llevo poco tiempo con pfSense y como verás me asaltan las dudas…

                          En mi opinión, proxy declarado en los navegadores y asegurarse que LAN no deja ir directo. Es lo que funciona siempre. Aunque tiene la pega de tener que explicar esos a los usuarios.

                          1 Reply Last reply Reply Quote 0
                          • M
                            MichelR
                            last edited by

                            Como siempre bellera todo perfecto.

                            Lo único que no consigo es lo de la cache, he seguido tus pasos pero nada de nada, no veo ningún TCP_HIT o TCP_HIT_MEM por ningún sitio en el log. Me vendría muy bien porque hay páginas que se utilizan mucho por todos los usuarios de la red, además de las actualizaciones de windows y antivirus que aliviarían mucho el ancho de banda.

                            Muchísimas gracias por todo, poco a poco voy comprendiendo como funciona pfSense.

                            1 Reply Last reply Reply Quote 0
                            • M
                              MichelR
                              last edited by

                              @ncolunga:

                              Ese error  TCP_DENIED/400 1553 NONE NONE:// en modo transparente lo puede estar dando por tener el proxy configurado en el interface localhost. Si estás utilizando squid2 asegurate de no activar el proxy para localhost y si estás usando squid3 no actives el modo transparente para localhost.

                              ncolunga, supongo que si lo tuviera configurado debería ver algo así en el squid.conf

                              http_port 127.0.0.1:3128

                              He revisado el fichero de configuración y no veo nada parecido.
                              Además no tengo el squid en modo transparente.

                              1 Reply Last reply Reply Quote 0
                              • belleraB
                                bellera
                                last edited by

                                @MichelR:

                                no veo ningún TCP_HIT o TCP_HIT_MEM por ningún sitio en el log.

                                Prueba con un contenido estático dos veces como mínimo, forzando el refresco en el navegador o desde dos PCs distintos.

                                Por ejemplo, http://www.bellera.cat/josep/pfsense/indice.html

                                Si sigues igual, algo no va bien en la caché. Revisa logs de squid.

                                @bellera:

                                • Status - Services para ver si el servicio está en marcha o no. Ahí puede pararse y ponerse en marcha. Tarda un rato en actualizarse la página…
                                • En Status - System logs - System verás las posibles puestas en marcha y paros de squid.
                                • En Services - Proxy server verás que tienes Log store directory puesto a /var/squid/logs Puedes mirar el archivo cache.log a través de la consola. Este archivo va diciendo qué pasa con el funcionamiento de squid.
                                • A parte de esto veo que en el configurador web se puede marcar la casilla Enabled logging. Si se hace tendrás también access.log. Este tiene los accesos que van haciendo los usuarios. Existe un tercer archivo llamado store.log que va registrando qué pasa con los objetos de la caché (altas, bajas, actualizaciones).
                                1 Reply Last reply Reply Quote 0
                                • belleraB
                                  bellera
                                  last edited by

                                  @MichelR:

                                  las actualizaciones de windows y antivirus

                                  Si tienes muchos usuarios plantéate repositorios locales.

                                  Para Windows, https://forum.pfsense.org/index.php?topic=23148.msg119166#msg119166

                                  https://technet.microsoft.com/es-es/library/hh852345.aspx o http://download.wsusoffline.net/

                                  Para el antivirus, hay soluciones corporativas en las que los clientes toman las actualizaciones desde un servidor local.

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    MichelR
                                    last edited by

                                    Muchas gracias bellera, todo solucionado.

                                    Buen aporte wsusoffline, me voy a poner a ello rápidamente porque es muy buena solución, además se puede programar una tarea para que se haga automáticamente un determinado día.

                                    http://www.miniacademia.es/wsus-offline-update/

                                    Un saludo

                                    1 Reply Last reply Reply Quote 0
                                    • L
                                      lem13631363
                                      last edited by

                                      amigo como solucionaste tu problema?

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