Search squid archive

Re: Logs not showing ssl::servername

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/1/22 10:41, Gabriel Vilariño wrote:

About the motivation Alex, really the only thing that concerns me is the strange log (TCP_TUNNEL and error 500).

Based on your debugging cache.log (thank you!) and superficial Squid code analysis, I believe HTTP status code 500 in your use case is a Squid bug. The transaction was actually successful.

Squid did not send a CONNECT response because your Squid intercepts traffic (and the client does not send CONNECT requests and does not expect CONNECT responses). Instead of logging a "-" for the sent HTTP status code in this case, Squid logged 500. That is a bug.

Your next steps are summarized at https://wiki.squid-cache.org/SquidFaq/AboutSquid#How_to_add_a_new_Squid_feature.2C_enhance.2C_of_fix_something.3F


HTH,

Alex.


On the usage side, I can not tell if that call is working (going trough or not) since I don´t even use that service. I was evaluating how Squid works and simply run in that strange log. My final objective is to simply understand what´s going on (tunnel or 500) but there is nothing critical that I have to fix.

Link: https://privfile.com/download.php?fid=6388c98c4ad19-MTQ5ODM= <https://privfile.com/download.php?fid=6388c98c4ad19-MTQ5ODM=> is valid for one day, password is "pepe" without "".

Thanks!








El mié, 30 nov 2022 a las 9:16, Gabriel Vilariño (<gvilarino6@xxxxxxxxx <mailto:gvilarino6@xxxxxxxxx>>) escribió:

    Hi again!

    Thanks for the info!

    Log with error code and error detail at the end, both "-":
    1669794718.051 INTERNAL_IP *TCP_TUNNEL/500*
    arsenal.us-west-2.amazonaws.com
    <http://arsenal.us-west-2.amazonaws.com> splice
    /CN=arsenal.us-west-2.amazonaws.com
    <http://arsenal.us-west-2.amazonaws.com> 54.240.254.131*- -*

    The cache.log with ALL,1 does not look to share a lot, in fact I
    don´t see any messages referencing this transaction:

    22/11/30 07:51:39 kid1| Current Directory is /
    2022/11/30 07:51:39 kid1| Creating missing swap directories
    2022/11/30 07:51:39 kid1| No cache_dir stores are configured.
    2022/11/30 07:51:39| Removing PID file (/run/squid.pid)
    2022/11/30 07:51:39 kid1| Current Directory is /
    2022/11/30 07:51:39 kid1| Starting Squid Cache version 5.7 for
    x86_64-pc-linux-gnu...
    2022/11/30 07:51:39 kid1| Service Name: squid
    2022/11/30 07:51:39 kid1| Process ID 64694
    2022/11/30 07:51:39 kid1| Process Roles: worker
    2022/11/30 07:51:39 kid1| With 1024 file descriptors available
    2022/11/30 07:51:39 kid1| Initializing IP Cache...
    2022/11/30 07:51:39 kid1| DNS Socket created at [::], FD 9
    2022/11/30 07:51:39 kid1| DNS Socket created at 0.0.0.0, FD 10
    2022/11/30 07:51:39 kid1| Adding nameserver 127.0.0.53 from
    /etc/resolv.conf
    2022/11/30 07:51:39 kid1| Adding domain dev.ops.mitekcloud.local
    from /etc/resolv.conf
    2022/11/30 07:51:39 kid1| helperOpenServers: Starting 5/32
    'security_file_certgen' processes
    2022/11/30 07:51:39 kid1| Logfile: opening log
    daemon:/var/log/squid/custom.log
    2022/11/30 07:51:39 kid1| Logfile Daemon: opening log
    /var/log/squid/custom.log
    2022/11/30 07:51:40 kid1| Local cache digest enabled;
    rebuild/rewrite every 3600/3600 sec
    2022/11/30 07:51:40 kid1| Store logging disabled
    2022/11/30 07:51:40 kid1| Swap maxSize 0 + 262144 KB, estimated
    20164 objects
    2022/11/30 07:51:40 kid1| Target number of buckets: 1008
    2022/11/30 07:51:40 kid1| Using 8192 Store buckets
    2022/11/30 07:51:40 kid1| Max Mem  size: 262144 KB
    2022/11/30 07:51:40 kid1| Max Swap size: 0 KB
    2022/11/30 07:51:40 kid1| Using Least Load store dir selection
    2022/11/30 07:51:40 kid1| Current Directory is /
    2022/11/30 07:51:40 kid1| Finished loading MIME types and icons.
    2022/11/30 07:51:40 kid1| HTCP Disabled.
    2022/11/30 07:51:40 kid1| Pinger socket opened on FD 27
    2022/11/30 07:51:40 kid1| Squid plugin modules loaded: 0
    2022/11/30 07:51:40 kid1| Adaptation support is off.
    2022/11/30 07:51:40 kid1| Accepting HTTP Socket connections at
    conn13 local=[::]:3128 remote=[::] FD 23 flags=9
    2022/11/30 07:51:40 kid1| Accepting NAT intercepted HTTP Socket
    connections at conn15 local=[::]:3129 remote=[::] FD 24 flags=41
    2022/11/30 07:51:40 kid1| Accepting NAT intercepted SSL bumped HTTPS
    Socket connections at conn17 local=[::]:3130 remote=[::] FD 25 flags=41
    2022/11/30 07:51:40| pinger: Initialising ICMP pinger ...
    2022/11/30 07:51:40| pinger: ICMP socket opened.
    2022/11/30 07:51:40| pinger: ICMPv6 socket opened
    2022/11/30 07:51:41 kid1| storeLateRelease: released 0 objects
    2022/11/30 07:52:09 kid1| Preparing for shutdown after 3 requests
    ... Starts ending the connections for shutdown, ends with next
    message...
    *2022/11/30 07:52:40 kid1| Squid Cache (Version 5.7): Exiting normally.*

    I checked with further log levels but it outputs a lot of data (I
    know this one is not for admins, I wanted to try to sent only the
    relevant logs since those aws agents do several calls and I was not
    to only record one transaction). Also if I needed, this is shared as
    an attachment?

    Thanks in advance!


    El mar, 29 nov 2022 a las 21:52, Gabriel Vilariño
    (<gvilarino6@xxxxxxxxx <mailto:gvilarino6@xxxxxxxxx>>) escribió:

        Thanks Alex!

        Here are the fixed logs:
        |1669726977.734 INTERNAL_CLIENT_IP TCP_TUNNEL/500
        arsenal.us-west-2.amazonaws.com
        <http://arsenal.us-west-2.amazonaws.com> splice
        /CN=arsenal.us-west-2.amazonaws.com
        <http://arsenal.us-west-2.amazonaws.com> 54.240.251.223|
        |
        |
        |As you can see, the destination is an aws service, more
        interesting, it effectively *logs the splice* action! That´s why
        I though it was letting the traffic go trough. Also the debug
        logs from SSL show this:|
        ||2022/11/29 10:32:38.943 kid1| 83,5|
        PeekingPeerConnector.cc(273) *startTunneling: will tunnel
        instead of negotiating TLS* # Last line from previously attached
        logs||
        ||
        ||
        ||As far as I know this means *is getting to the TCP_TUNNEL, at
        that point it can not know anything about the internal status on
        the connection between client and host*. If not, *where I should
        be looking for this error? *Should try to review further the
        debug ssl logs to se if I fend something more useful? Maybe
        tcpdump? This could be just the end service failing on the
        request? Or is an error between Squid and the end sever?||
        ||
        ||
        ||If I understand right the request that fails is the fake
        connect and I need to understand why. Also note almost same
        config logged this as TCP_TUNNEL/200 on version 3.5. But as said
        before, I really not sure how to check, since that service is
        just an agent installed on some aws machines and don´t know how
        to reproduce this behavior.
        ||
        |
        |
        |
        |
        |
        |
        |
        |
        |Thanks again! Hope I answered fine since I didn´t get the
        answer email.
        |


        El mar, 29 nov 2022 a las 14:06, Gabriel Vilariño
        (<gvilarino6@xxxxxxxxx <mailto:gvilarino6@xxxxxxxxx>>) escribió:

            Just got it solved. Was caused because of checking default
            access.log. Using a new file solves all the problems.

            However, in this context, what means TCP_TUNNEL/500? is it
            because the TLS handshake? I would like to know if it is
            tunneling correctly or is having some trouble (not easy to
            test right now).

            Thanks!

            El mar, 29 nov 2022 a las 13:16, Gabriel Vilariño
            (<gvilarino6@xxxxxxxxx <mailto:gvilarino6@xxxxxxxxx>>) escribió:

                Hi there,

                I am setting up an HTTP/HTTPS transparent proxy, meaning
                the clients not need any certificates for using the
                proxy. This works fine on version 3.5 of Squid, however
                after upgrading to 5.7 the behavior of the logs change:

                1669723133.174   8037 10.184.19.220 TCP_TUNNEL/500 6207
                CONNECT 54.240.253.128:443 <http://54.240.253.128:443> -
                ORIGINAL_DST/54.240.253.128 <http://54.240.253.128> -

                Directive: logformat squid %ts.%03tu %>a %Ss/%03>Hs
                %ssl::>sni %ssl::bump_mode ssl::>cert_subject %<ru

                On version 3.5 we were obtaining the domain name (an aws
                service) in the place of ORIGINAL_DST. Also now we are
                not seeing any information about the bump_mode in no one
                of the connections while before we were seeing it. One
                could trough that it could be because of the /500
                message, however on a 200 one to docs.ansble.com
                <http://docs.ansble.com> it also don´t show any data on
                the sni field:

                1669723513.363    332 10.184.19.220 TCP_TUNNEL/200 38192
                CONNECT 104.26.0.234:443 <http://104.26.0.234:443> -
                ORIGINAL_DST/104.26.0.234 <http://104.26.0.234> -

                Also the 500 looks to come from the squid not
                understanding something on the SSL negotiation:

                |2022/11/29 10:32:38.943 kid1| 83,4| support.cc(248)
                check_domain: Verifying server domain
                arsenal.us-west-2.amazonaws.com
                <http://arsenal.us-west-2.amazonaws.com> to certificate
                name/subjectAltName arsenal.us-west-2.amazonaws.com
                <http://arsenal.us-west-2.amazonaws.com> ||2022/11/29
                10:32:38.943 kid1| 83,5| bio.cc(136) read: FD 28 read
                347 <= 65535 ||2022/11/29 10:32:38.943 kid1| 83,5|
                Io.cc(91) Handshake: -1/0 for TLS connection
                0x558453168970 over conn99 local=SQUID-INTERNAL-IP:44264
                remote=54.240.251.223:443 <http://54.240.251.223:443>
                ORIGINAL_DST FD 28 flags=1 ||2022/11/29 10:32:38.943
                kid1| 83,2| PeerConnector.cc(256)
                handleNegotiationResult: ERROR: failure while
                establishing TLS connection on FD: 280x558452b68980*1
                ||2022/11/29 10:32:38.943 kid1| 83,5|
                NegotiationHistory.cc(85) retrieveNegotiatedInfo: SSL
                connection info on FD 28 SSL version NONE/0.0 negotiated
                cipher ||2022/11/29 10:32:38.943 kid1| 83,5|
                PeekingPeerConnector.cc(84)
                checkForPeekAndSpliceMatched: Will check for peek and
                splice on FD 28 ||2022/11/29 10:32:38.943 kid1| 83,5|
                PeekingPeerConnector.cc(395) serverCertificateVerified:
                HTTPS server CN: arsenal.us-west-2.amazonaws.com
                <http://arsenal.us-west-2.amazonaws.com> bumped: conn99
                local=SQUID-INTERNAL-IP:44264 remote=54.240.251.223:443
                <http://54.240.251.223:443> ORIGINAL_DST FD 28 flags=1 |
                |2022/11/29 10:32:38.943 kid1| 83,5|
                PeekingPeerConnector.cc(273) startTunneling: will tunnel
                instead of negotiating TLS|

                It is clear that in creates the tunnel so the 500
                probably is that error? Why the bump/sni messages never
                log anything (according to
                https://wiki.squid-cache.org/Features/SslPeekAndSplice
                <https://wiki.squid-cache.org/Features/SslPeekAndSplice>
                they should log splice not -). This is the config for
                bumping:



                acl step1 at_step SslBump1
                acl step2 at_step SslBump2
                acl step3 at_step SslBump3
                ssl_bump peek step1 all

                .... http rules ...

                acl allowed_https_sites ssl::server_name_regex
                "/etc/squid/whitelist.txt"
                ssl_bump peek step2 allowed_https_sites
                ssl_bump splice step3 allowed_https_sites
                ssl_bump terminate step2 all




                Ip tables simply redirect:

                iptables -t nat -A PREROUTING -p tcp --dport 80 -j
                REDIRECT --to-port 3129
                iptables -t nat -A PREROUTING -p tcp --dport 443 -j
                REDIRECT --to-port 3130 # https port on squid:
                https_port 3130 intercept ssl-bump
                cert=/etc/squid/ssl/dummy.pem

                Thanks in advance, i have been trying this for a week
                now reading a lot of posts but not luck...


_______________________________________________
squid-users mailing list
squid-users@xxxxxxxxxxxxxxxxxxxxx
http://lists.squid-cache.org/listinfo/squid-users

_______________________________________________
squid-users mailing list
squid-users@xxxxxxxxxxxxxxxxxxxxx
http://lists.squid-cache.org/listinfo/squid-users




[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux