[squid-users] How to use request headers in external_acl_type

Yosi Greenfield ygreenfield at kewsystems.com
Wed Jun 30 17:17:19 UTC 2021


Amos,

As always, thank you for your dedication answering all our questions.

Ok, turns out, as you noted, the browser is sending the correct request
headers. However, on https requests the external acl program is not getting
the custom header we're sending. SSL Bump is set, and works for our
redirector program, but not for the external acl program.

Here are the relevant lines from squid.conf:

   http_port 3128 name=non-bumped
   http_port 3130 ssl-bump generate-host-certificates=on
dynamic_cert_mem_cache_size=6MB cert=/etc/squid/ssl/newCA.pem name=bumped
options=ALL

   acl non-bumped myportname non-bumped
   acl bumped myportname bumped

   acl step1 at_step SslBump1
   acl broken_sites dstdomain "/etc/squid/nobump/domains"
   acl broken_sites_regex dstdom_regex -i "/etc/squid/nobump/regexes"
   ssl_bump splice broken_sites
   ssl_bump splice broken_sites_regex
   ssl_bump peek step1
   ssl_bump bump all

   external_acl_type portal_gatekeeper  %SRC %>{Connection} %>{Accept}
%>{abc_session} %>{Host} /etc/squid/portal.pl
   acl check-portal external portal_gatekeeper
   deny_info http://www.our_portal_site.com/ check-portal

   acl myIP1 src 10.200.10.2
   http_access deny myIP1 !check-portal

   sslcrtd_program /usr/local/squid/libexec/security_file_certgen -s
/var/lib/ssl_db -M 4MB
   sslcrtd_children 15 startup=5

   sslproxy_cert_error allow all
   request_header_access Surrogate-Capability deny all

   url_rewrite_access allow non-bumped
   url_rewrite_access deny bumped CONNECT
   url_rewrite_children 15  startup=7

   acl our_users src 10.10.0.0/24 10.10.1.0/24 10.200.0.0/16
   http_access allow our_users


Is it possible to get the custom abc_session header on https requests?

Thank you again.



> -----Original Message-----
> From: squid-users 
> [mailto:squid-users-bounces at lists.squid-cache.org] On Behalf 
> Of squid3 at treenet.co.nz
> Sent: Friday, June 25, 2021 7:20 PM
> To: squid-users at lists.squid-cache.org
> Subject: Re: [squid-users] How to use request headers in 
> external_acl_type
> 
> On 2021-06-26 07:18, Yosi Greenfield wrote:
> > Hello all,
> > 
> > I'm trying to use request headers in an external acl, and 
> I'm probably 
> > doing it incorrectly, and it's not working.
> > 
> 
> Looks like its working fine.
> 
> 
> > Here's my acl definiton:
> > 
> > external_acl_type ext_acl_program  %SRC %>{Connection} %>{Accept} 
> > %>{Custom_header} %>{Host} /etc/squid/ext_acl_program.pl
> > 
> > The program ext_acl_program.pl simply prints out the input
> > 
> >    chomp ($line);
> >    @fields          = split(' ', $line);
> >    my $ip           = $fields[0];
> >    my $connection   = $fields[1];
> >    my $accept       = $fields[2];
> >    my $custom       = $fields[3];
> >    my $host         = $fields[4];
> > 
> >    print LOGFILE  "IP: $ip\n Conn: $connection\n Accept: $accept\n
> > Custom: $custom\n Host: $host";
> > 
> > The output looks like this:
> > 
> > IP: 10.200.10.2
> > Conn: keep-alive
> > Accept: -
> > Custom: -
> > Host: www.wsws.com:443 [1]
> > 
> > As you see, it has values for %SRC, %>{Connection} and 
> %>{Host}.  It 
> > does not have values for %>{Accept} and %>{Custom_header}
> > 
> > So the question is, are these %>{} substitutions coming from 
> > request_headers (as I thought)?
> 
> The Host header only exists in request messages so I would 
> say they are.
> It may not be the request message you are thinking about 
> though. Request headers can come from clients, but they could 
> also be generated by Squid or ICAP/eCAP services.
> 
> > 
> > If yes, why does it only have Connection and Host, and not 
> Accept or 
> > my custom header?
> > 
> 
> Because those are the headers the message being printed contain.
> You do not provide enough details about where the request 
> came from. eg how it was created and/or changed between 
> creation and the helper being called.
> 
> 
> > If they are not coming from request headers, where are they coming 
> > from?
> > 
> 
> You can use "debug_options 11,2" to see the HTTP messages 
> Squid is processing.
> 
> 
> > And mostly, how can I pass my custom header into the program?
> 
> Exactly as you configured above. Assuming that the header is actually 
> "Custom_header: ..." with that underscore included.
> 
> 
> Amos
> _______________________________________________
> squid-users mailing list
> squid-users at lists.squid-cache.org
> http://lists.squid-cache.org/listinfo/squid-users
> 



More information about the squid-users mailing list