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

    Minor Issues on 24.08

    Scheduled Pinned Locked Moved Plus 24.11 Development Snapshots (Retired)
    20 Posts 6 Posters 2.7k Views 7 Watching
    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.
    • JonathanLeeJ Offline
      JonathanLee @DefenderLLC
      last edited by JonathanLee

      @DefenderLLC Does it have the correct status page again on the GUI ? The new Squid 6 uses a different status page now and mgr info doesn't work anymore, other than the gui status page it should work fine

      I am so happy 6.10 is part of pfSense 24.08

      some small changes are made in Squid 6

      cache_object://URL Scheme is not removed in Squid-6
      cache_object://hostname/request@password

      Is used to check status inside the pfSense GUI for this package

      It has been replaced with
      http://hostname/squid-internal-mgr URL-prefix.

      Therefore it will now say access denied when checking status

      The status page needs to be updated to reflect the new URL scheme

      I spoke with Squid user support and they have confirmed the new URL scheme

      Ref:
      https://wiki.squid-cache.org/Features/CacheManager/CacheObjectScheme

      Make sure to upvote

      1 Reply Last reply Reply Quote 0
      • stephenw10S Offline
        stephenw10 Netgate Administrator
        last edited by

        It's because it sees it as a forwarding loop:

            current master transaction: master97
        2024/07/04 16:30:16 kid1| WARNING: Forwarding loop detected for:
        GET /squid-internal-mgr/info HTTP/1.1
        Host: localhost:3128
        User-Agent: squidclient/6.10
        Accept: */*
        Via: 1.0 localhost (squid/6.10)
        X-Forwarded-For: 127.0.0.1
        Cache-Control: max-age=259200
        Connection: keep-alive
        

        And the reason it does is that it doesn't recognise 127.0.0.1 as the proxy name:

        [24.08-DEVELOPMENT][admin@6100.stevew.lan]/root: squidclient -l 127.0.0.1 -h 127.0.0.1 mgr:info
        HTTP/1.1 403 Forbidden
        Server: squid/6.10
        

        But if you use 'localhost' it resolves it as IPv6 and Squid doesn't listen on v6:

        [24.08-DEVELOPMENT][admin@6100.stevew.lan]/root: squidclient -l 127.0.0.1 -h localhost mgr:info
        ERROR: Cannot connect to [::1]:3128
        

        But if you set pfSense to prefer IPv4 in Sys > Adv > Net it then works:

        [24.08-DEVELOPMENT][admin@6100.stevew.lan]/root: squidclient -l 127.0.0.1 -h localhost mgr:info
        HTTP/1.1 200 OK
        Server: squid/6.10
        Mime-Version: 1.0
        

        See: https://bugs.squid-cache.org/show_bug.cgi?id=5283

        JonathanLeeJ 3 Replies Last reply Reply Quote 1
        • JonathanLeeJ Offline
          JonathanLee
          last edited by JonathanLee

          I am using Squid 6.6 in 24, I noticed http_port tproxy directive has different requests versus 5.8, in 5.8 the tproxy option worked. Also it is missing the latest squid file system on the package GUI. Named “Rock cache_dirs”

          Background on squid proprietary file systems:
          Original was …

          COSS “The Cyclic Object Storage Scheme (costs) is an attempt to develop a custom file system for Squid.”

          Ref: squid the definite guide Duane Wessels

          new version: per developer response

          “Squid does not support COSS cache_dirs since v3.5. If Squid in question does disk caching, then rock cache_dirs may be the best bet.

          Alex.”

          Rock is not listed

          ====  The rock store type  ====
          Usage:
                  cache_dir rock Directory-Name Mbytes [options]
          The Rock Store type is a database-style storage. All cached
              entries are stored in a "database" file, using fixed-size slots.
              A single entry occupies one or more slots.
          If possible, Squid using Rock Store creates a dedicated kid
              process called "disker" to avoid blocking Squid worker(s) on disk
              I/O. One disker kid is created for each rock cache_dir.  Diskers
              are created only when Squid, running in daemon mode, has support
              for the IpcIo disk I/O module.
          swap-timeout=msec: Squid will not start writing a miss to or
              reading a hit from disk if it estimates that the swap operation
              will take more than the specified number of milliseconds. By
              default and when set to zero, disables the disk I/O time limit
              enforcement. Ignored when using blocking I/O module because
              blocking synchronous I/O does not allow Squid to estimate the
              expected swap wait time.
          max-swap-rate=swaps/sec: Artificially limits disk access using
              the specified I/O rate limit. Swap out requests that
              would cause the average I/O rate to exceed the limit are
              delayed. Individual swap in requests (i.e., hits or reads) are
              not delayed, but they do contribute to measured swap rate and
              since they are placed in the same FIFO queue as swap out
              requests, they may wait longer if max-swap-rate is smaller.
              This is necessary on file systems that buffer "too
              many" writes and then start blocking Squid and other processes
              while committing those writes to disk.  Usually used together
              with swap-timeout to avoid excessive delays and queue overflows
              when disk demand exceeds available disk "bandwidth". By default
              and when set to zero, disables the disk I/O rate limit
              enforcement. Currently supported by IpcIo module only.
          slot-size=bytes: The size of a database "record" used for
              storing cached responses. A cached response occupies at least
              one slot and all database I/O is done using individual slots so
              increasing this parameter leads to more disk space waste while
              decreasing it leads to more disk I/O overheads. Should be a
              multiple of your operating system I/O page size. Defaults to
              16KBytes. A housekeeping header is stored with each slot and
              smaller slot-sizes will be rejected. The header is smaller than
              100 bytes.
          ==== COMMON OPTIONS ====
          no-store    no new objects should be stored to this cache_dir.
          min-size=n    the minimum object size in bytes this cache_dir
                      will accept.  It's used to restrict a cache_dir
                      to only store large objects (e.g. AUFS) while
                      other stores are optimized for smaller objects
                      (e.g. Rock).
                      Defaults to 0.
          max-size=n    the maximum object size in bytes this cache_dir
                      supports.
                      The value in maximum_object_size directive sets
                      the default unless more specific details are
                      available (ie a small store capacity).
          Note: To make optimal use of the max-size limits you should order
              Note: To make optimal use of the max-size limits you should order
                  the cache_dir lines with the smallest max-size value first.
          

          Again the tproxy directive worked when you adapted the squid.conf in 5.8 it would work with squid -k parse and in 6.6 if you change intercept to tproxy it will not parse with squid -k parse command it states it must be added with the squid built now, simple one line command.

          2024/07/17 21:22:41| Processing Configuration File: /usr/local/etc/squid/squid.conf (depth 0)
          2024/07/17 21:22:41| Processing: http_port 192.168.1.1:3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=20MB cert=/usr/local/etc/squid/serverkey.pem cafile=/usr/local/share/certs/ca-root-nss.crt capath=/usr/local/share/certs/ cipher=EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:HIGH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS tls-dh=prime256v1:/etc/dh-parameters.2048 options=NO_SSLv3,SINGLE_DH_USE,SINGLE_ECDH_USE
          2024/07/17 21:22:41| WARNING: UPGRADE: 'cafile=/usr/local/share/certs/ca-root-nss.crt' is deprecated in http_port. Use 'tls-cafile=' instead.
          2024/07/17 21:22:41| WARNING: Failed to decode EC parameters '/etc/dh-parameters.2048'
              OpenSSL-saved error #1: 0x1e08010c
          2024/07/17 21:22:41| ERROR: Unsupported TLS option SINGLE_DH_USE
          2024/07/17 21:22:41| ERROR: Unsupported TLS option SINGLE_ECDH_USE
          2024/07/17 21:22:41| Processing: http_port 127.0.0.1:3128 tproxy ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=20MB cert=/usr/local/etc/squid/serverkey.pem cafile=/usr/local/share/certs/ca-root-nss.crt capath=/usr/local/share/certs/ cipher=EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:HIGH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS tls-dh=prime256v1:/etc/dh-parameters.2048 options=NO_SSLv3,SINGLE_DH_USE,SINGLE_ECDH_USE
          
          This error never occurred for 5.8
          **---->2024/07/17 21:22:41| ERROR: configuration failure: requires TPROXY feature to be enabled by ./configure**
          
          
              exception location: Intercept.cc(163) StartTransparency
          2024/07/17 21:22:41| Not currently OK to rewrite swap log.
          2024/07/17 21:22:41| storeDirWriteCleanLogs: Operation aborted.
          2024/07/17 21:22:41| FATAL: Bungled /usr/local/etc/squid/squid.conf line 6: http_port 127.0.0.1:3128 tproxy ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=20MB cert=/usr/local/etc/squid/serverkey.pem cafile=/usr/local/share/certs/ca-root-nss.crt capath=/usr/local/share/certs/ cipher=EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:HIGH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS tls-dh=prime256v1:/etc/dh-parameters.2048 options=NO_SSLv3,SINGLE_DH_USE,SINGLE_ECDH_USE
          2024/07/17 21:22:41| Squid Cache (Version 6.6): Terminated abnormally.
          CPU Usage: 0.073 seconds = 0.049 user + 0.024 sys
          Maximum Resident Size: 62512 KB
          Page faults with physical i/o: 0
          

          Both minor issues to fix within the php menu squid rock is the latest best filesystem for caching I am told.

          Make sure to upvote

          1 Reply Last reply Reply Quote 0
          • JonathanLeeJ Offline
            JonathanLee @stephenw10
            last edited by

            @stephenw10 also you can add a password to access squid manager that is a good security feature too.

            Make sure to upvote

            1 Reply Last reply Reply Quote 0
            • JonathanLeeJ Offline
              JonathanLee @stephenw10
              last edited by

              @stephenw10

              I use the password directive to further protect access to Squid manager I was able to adapt the mgr:info@passwordhere on the other version however on this version I can't. I also have it set to prefer ipv4

              Screenshot 2024-07-17 at 20.55.19.png

              Make sure to upvote

              1 Reply Last reply Reply Quote 0
              • JonathanLeeJ Offline
                JonathanLee
                last edited by

                Screenshot 2024-07-17 at 20.57.27.png

                I wonder where I put the password now

                under my advanced config I have set...

                cachemgr_passwd disable offline_toggle reconfigure shutdown
                cachemgr_passwd REDACTED_PASSWORD_HERE all
                

                Make sure to upvote

                1 Reply Last reply Reply Quote 0
                • JonathanLeeJ Offline
                  JonathanLee @stephenw10
                  last edited by JonathanLee

                  @stephenw10

                  I have got nothing on how to resolve the password directive that i utilize for added security

                  squidclient -l 127.0.0.1 -p 3128 -h localhost -U cachemgr -W REDACTED mgr:info
                  HTTP/1.1 403 Forbidden
                  Server: squid
                  Mime-Version: 1.0
                  Date: Thu, 18 Jul 2024 04:13:36 GMT
                  Content-Type: text/html;charset=utf-8
                  Content-Length: 3792
                  X-Squid-Error: ERR_ACCESS_DENIED 0
                  Vary: Accept-Language
                  Content-Language: en
                  Cache-Status: Lee_Family.home.arpa
                  Cache-Status: Lee_Family.home.arpa;detail=no-cache
                  Connection: close
                  

                  Also if you use no username

                  squidclient -l 127.0.0.1 -p 3128 -h localhost -w redacted mgr:info
                  ERROR: Proxy authentication password (-w) is given, but username (-u) is missing
                  

                  With password removed also I get the error

                  Shell Output - squidclient -l 127.0.0.1 -h localhost mgr:info
                  HTTP/1.1 403 Forbidden
                  Server: squid
                  Mime-Version: 1.0
                  Date: Thu, 18 Jul 2024 04:35:01 GMT
                  Content-Type: text/html;charset=utf-8
                  Content-Length: 3719
                  X-Squid-Error: ERR_ACCESS_DENIED 0
                  Vary: Accept-Language
                  Content-Language: en
                  Cache-Status: Lee_Family.home.arpa
                  Cache-Status: Lee_Family.home.arpa;detail=no-cache
                  Connection: close
                  
                  function squid_status() {
                  	if (is_service_running('squid')) {
                  		init_config_arr(array('installedpackages', 'squidcache','config'));
                  		$proxy_ifaces = explode(",", config_get_path('installedpackages/squid/config/0/active_interface', ''));
                  		foreach ($proxy_ifaces as $iface) {
                  			if (get_interface_ip($iface)) {
                  				$ip = get_interface_ip($iface);
                  				$lip = '127.0.0.1';
                  			} else {
                  				$ip = get_interface_ipv6($iface);
                  				$lip = '::1';
                  			}
                  			exec("/usr/local/sbin/squidclient -l " . escapeshellarg($lip) .
                  				" -h " . escapeshellarg($ip) . " mgr:info", $result);
                  		}
                  	} else {
                  		return(gettext('Squid Proxy is not running.'));
                  

                  Per Squid Email Support

                  "FWIW, I do not recommend using cachemgr.cgi and squidclient. For various reasons, both were recently removed from Squid master/v7. Squidclient can be replaced with curl or wget. The best cachemgr.cgi replacement depends on many factors; a static HTML file may be the best solution in some cases!

                  Without squidclient, you will need to use absolute URLs like this one:

                  http://correct-host-name-or-ip:port/squid-internal-mgr/info

                  See recent discussions on this mailing list or Bug 5283 for discussions about what correct-host-name-or-ip:port to use for these URLs. And if you got it working with squidclient, you can see what your squidclient was sending, of course.
                  https://bugs.squid-cache.org/show_bug.cgi?id=5283"

                  Per the bug

                  curl http://localhost:3128/squid-internal-mgr/info

                  is the future of squidclient ...

                  Make sure to upvote

                  1 Reply Last reply Reply Quote 0
                  • DefenderLLCD Offline
                    DefenderLLC
                    last edited by

                    I guess we're getting to close to the GA release. I have not seen a single development snapshot since July 2nd.

                    24.08.a.20240702.0600

                    G 1 Reply Last reply Reply Quote 1
                    • G Offline
                      grandrivers @DefenderLLC
                      last edited by

                      @DefenderLLC unless we are hung on our current version I have seen that happen before , but very little transparency in closed "plus" version

                      pfsense plus 25.03 super micro A1SRM-2558F
                      C2558 32gig ECC  60gig SSD

                      1 Reply Last reply Reply Quote 1
                      • M Offline
                        marcosm Netgate
                        last edited by

                        There are a number of reasons why development snapshots may pause. For example, there could be some stuff coming to 24.08 that we may not want to preview just yet ;)

                        D 1 Reply Last reply Reply Quote 5
                        • D Offline
                          danjeman @marcosm
                          last edited by

                          @marcosm from the July newsletter maybe?

                          DefenderLLCD 1 Reply Last reply Reply Quote 0
                          • DefenderLLCD Offline
                            DefenderLLC @danjeman
                            last edited by

                            @danjeman That was my first thought too...

                            1 Reply Last reply Reply Quote 0
                            • DefenderLLCD DefenderLLC referenced this topic on
                            • First post
                              Last post
                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.