[squid-users] Unable to access local addresses

Alex Rousskov rousskov at measurement-factory.com
Fri Aug 23 17:13:55 UTC 2024


On 2024-08-23 12:07, Piana, Josh wrote:

> The problem we’re having now is that we’re unable to access local 
> resources on different subnets. For instance, our “main” networks are 
> 10.46.x.x and 10.47.x.x, but the proxy is blocking us when we try to get 
> to 172.26.x.x as well as 10.96.x.x. 

Blocking how? What kind of error page does the client get? What does 
Squid log to access.log (consider adding %err_code/%err_detail to your 
custom logformat definition if you have not already).

If access is blocked by an "http_access deny" rule you do not expect to 
match, then which "http_access allow" rule (located above the matched 
deny rule[^1]) do you expect to match those blocked transactions? If 
access is prevented due to connection establishment errors, then you may 
need to adjust your IP routing rules/etc. outside of Squid. And there 
are many other possibilities here...

[1]: If access is blocked by an "http_access deny" rule, you may be able 
to figure out which deny rule has matched by enabling ALL,2 debugging 
(see debug_options in squid.conf.documented), reproducing the problem 
using a single transaction, and searching cache.log for "last ACL 
checked". Older Squids have more bugs in determining that ACL name, but, 
if you are lucky, you will get the right answer.


> When comparing our current config to 
> the old, they are very nearly identical, and the old config works with 
> no issue. Is there some change from 2.5 -> 5.5 that would stop some of 
> our allow/deny rules from working as expected?

There are too many corner cases for me to give a reliable answer to that 
question, especially without knowing which http_access rule is denying 
access (assuming it is one of those rules). I recommend focusing on a 
specific matching/mismatching ACL/rule instead of trying to make a 
general statement regarding numerous v2-vs-v5 differences.


> Or maybe I need to open 
> up the ACL’s a bit more or define those subnets explicitly now?

If your existing rules already reflect your business logic and do not 
trigger any Squid configuration errors/warnings in cache.log, then it is 
unlikely that you will need to add explicit rules for previously working 
subnets. On the other hand, you are upgrading from an ancient Squid 
version that most do not remember much about to an already unsupported 
Squid version, so all bets are off.

 > acl from_arc src 10.46.0.0/16
 > acl from_arc src 10.46.0.0/15

Remove the line you do not need (I do not know which one, but the 
combination does not make sense because one subnet includes the other).


 > dsacl methods_std method GET HEAD POST PUT DELETE

If this is not a copy-paste typo, then edit this line to use a supported 
directive name like "acl". "dsacl" is not a supported directive name.


HTH,

Alex.


> I can post our config below, I’ll skip the sections that most likely 
> don’t pertain to the issue.
> 
> ##############################################################################
> 
> # Authentication
> 
> ##############################################################################
> 
> auth_param negotiate program /usr/lib64/squid/negotiate_kerberos_auth -k 
> /etc/squid/HTTP.keytab -s HTTP/<domain>.ad.<domain>.com at AD.<domain>.COM
> 
> auth_param negotiate children 10
> 
> auth_param negotiate keep_alive on
> 
> acl kerb-auth proxy_auth REQUIRED
> 
> ##############################################################################
> 
> # Access control - shared/common ACL definitions
> 
> ##############################################################################
> 
> # acl all src all
> 
> acl src_self src 127.0.0.0/8
> 
> acl src_self src 10.46.11.69
> 
> acl dst_self dst 127.0.0.0/8
> 
> acl dst_self dst 10.46.11.69
> 
> acl from_arc src 10.46.0.0/16
> 
> acl from_arc src 10.46.0.0/15
> 
> acl local_dst_addr dst 10.0.0.0/8
> 
> acl local_dst_addr dst bldg3.<domain>.com
> 
> acl local_dst_addr dst bldg5.<domain>.com
> 
> # not sure what this does
> 
> acl local_dst_dom dstdomain <proxy hostname>
> 
> # protocols
> 
> acl proto_FTP proto FTP
> 
> acl proto_HTTP proto HTTP
> 
> # TCP ports for HTTP
> 
> acl http_ports port 80
> 
> acl http_ports port 81
> 
> # TCP ports for HTTPS
> 
> acl ssl_ports port 443
> 
> acl ssh_ports port 22
> 
> acl ftp_ports port 21
> 
> # HTTP methods
> 
> acl method_CONNECT method CONNECT
> 
> # what are these used for?
> 
> dsacl methods_std method GET HEAD POST PUT DELETE
> 
> acl methods_std method TRACE OPTIONS
> 
> #############################################################################
> 
> # Access control - general proxy
> 
> ##############################################################################
> 
> http_access deny dst_self
> 
> http_access deny src_self
> 
> http_access deny !from_arc
> 
> http_access       allow local_dst_dom
> 
> http_reply_access           allow local_dst_dom
> 
> http_access       allow local_dst_addr
> 
> http_reply_access           allow local_dst_addr
> 
> acl authless_src src "/etc/squid/authless_src"
> 
> http_access       allow authless_src
> 
> http_reply_access           allow authless_src
> 
> acl authless_dst dstdomain "/etc/squid/authless_dst"
> 
> http_access       allow authless_dst
> 
> http_reply_access           allow authless_dst
> 
> acl bad_domains_preauth dstdomain "/etc/squid/bad_domains_preauth"
> 
> http_access deny bad_domains_preauth
> 
> acl block_user proxy_auth_regex -i "/etc/squid/block_user"
> 
> http_access deny block_user
> 
> acl bad_exception_urls url_regex -i "/etc/squid/bad_exception_urls"
> 
> acl exec_files url_regex -i "/etc/squid/exec_files"
> 
> acl exec_users proxy_auth_regex -i "/etc/squid/exec_users"
> 
> http_access deny !bad_exception_urls !exec_users exec_files
> 
> deny_info ERR_BLOCK_TYPE exec_files
> 
> acl mmedia_users proxy_auth_regex -i "/etc/squid/mmedia_users"
> 
> acl mmedia_sites dstdomain "/etc/squid/mmedia_sites"
> 
> http_access       allow methods_std    proto_HTTP http_ports 
> mmedia_sites mmedia_users
> 
> http_reply_access allow methods_std    proto_HTTP http_ports 
> mmedia_sites mmedia_users
> 
> http_access       allow method_CONNECT            ssl_ports  
> mmedia_sites mmedia_users
> 
> http_reply_access allow method_CONNECT            ssl_ports  
> mmedia_sites mmedia_users
> 
> acl bad_domains dstdomain "/etc/squid/bad_domains"
> 
> http_access deny !bad_exception_urls bad_domains
> 
> deny_info ERR_BLOCK_DST         bad_domains
> 
> acl bad_domains_regex dstdom_regex -i "/etc/squid/bad_domains_regex"
> 
> http_access deny !bad_exception_urls bad_domains_regex
> 
> deny_info ERR_BLOCK_DST         bad_domains_regex
> 
> acl bad_urls url_regex -i "/etc/squid/bad_urls"
> 
> http_access deny !bad_exception_urls bad_urls
> 
> deny_info ERR_BLOCK_DST         bad_urls
> 
> acl bad_files urlpath_regex -i "/etc/squid/bad_files"
> 
> http_access deny !bad_exception_urls bad_files
> 
> deny_info ERR_BLOCK_TYPE bad_files
> 
> acl bad_types rep_mime_type -i "/etc/squid/bad_types"
> 
> http_reply_access deny bad_types !bad_exception_urls
> 
> deny_info ERR_BLOCK_TYPE bad_types
> 
> acl fsoguest_user proxy_auth_regex -i fsoguest
> 
> acl fsoguest_dst dstdomain .opm.gov
> 
> acl fsoguest_dst dstdomain .google-analytics.com
> 
> acl fsoguest_dst dstdomain pki.google.com
> 
> acl fsoguest_dst dstdomain ajax.googleapis.com
> 
> acl fsoguest_dst dstdomain fonts.googleapis.com
> 
> acl fsoguest_dst dstdomain html5shiv.googlecode.com
> 
> acl fsoguest_dst dstdomain fonts.gstatic.com
> 
> acl fsoguest_dst dstdomain clients1.google.com
> 
> acl fsoguest_dst dstdomain ajax.microsoft.com
> 
> acl fsoguest_dst dstdomain ajax.aspnetcdn.com
> 
> acl fsoguest_dst dstdomain .geotrust.com
> 
> acl fsoguest_dst dstdomain .akamaihd.net
> 
> acl fsoguest_dst dstdomain symcd.com
> 
> http_access allow methods_std proto_HTTP http_ports fsoguest_dst 
> fsoguest_user
> 
> http_access allow method_CONNECT         ssl_ports  fsoguest_dst 
> fsoguest_user
> 
> http_access deny fsoguest_user
> 
> http_access allow http_ports proto_HTTP methods_std
> 
> http_access allow method_CONNECT ssl_ports
> 
> http_access deny method_CONNECT
> 
> # catch-all
> 
> http_access allow ftp_ports proto_FTP
> 
> http_access allow kerb-auth
> 
> http_access deny all
> 
> http_reply_access allow all
> 
> ##############################################################################
> 
> # END OF FILE
> 
> ##############################################################################
> 
> 
> _______________________________________________
> squid-users mailing list
> squid-users at lists.squid-cache.org
> https://lists.squid-cache.org/listinfo/squid-users



More information about the squid-users mailing list