<div dir="ltr"><div><span style="color:rgb(33,33,33);font-size:13px">Hi, thanks for your message.</span></div><div><span style="color:rgb(33,33,33);font-size:13px"><br></span></div><div><font color="#212121">Not working yet. Please check where is my mistake.</font></div><div><font color="#212121"><br></font></div><div><font color="#212121">I implemented a custom external ACL that checks on active directory via ldap if a user is member of a particular group. </font><span style="color:rgb(33,33,33)">If success returns:</span></div><div><font color="#212121">OK group=Internet_Access</font></div><div><font color="#212121">Else returns:</font></div><div><font color="#212121">ERR</font></div><div><br></div><div><span style="color:rgb(33,33,33)">Squid.conf:</span><br></div><div><font color="#212121"><div>http_port 3128<br></div><div>auth_param basic program /usr/lib/squid/basic_ldap_auth -v 3 -b dc=lab-novo,dc=br,dc=local -R -D cn=ldap_proxy,ou=gestao_proxy,dc=lab-novo,dc=br,dc=local -w xxx -f "sAMAccountName=%s" -u uid -P <a href="http://10.0.0.1:389">10.0.0.1:389</a><br></div><div>acl login proxy_auth REQUIRED<br></div><div>http_access deny !login</div><div>external_acl_type group ttl=360 ipv4 %LOGIN /ext_danilo_ldap_group.sh<br></div><div>acl some_group external group Internet_Access</div><div>acl groupInternet note group Internet_Access<br></div><div>delay_pools 1<br></div><div>delay_class 1 1</div><div>delay_parameters 1 128000/128000</div><div>delay_access 1 allow groupInternet</div><div><br></div><div>Sqstat confirms that the bandwidth is not being limited.</div><div><br></div></font></div><div><font color="#212121"><br></font></div><span style="color:rgb(33,33,33);font-size:13px">Date: Wed, 17 Oct 2018 16:38:03 +1300</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">From: Amos Jeffries <</span><a href="mailto:squid3@treenet.co.nz" style="font-size:13px" target="_blank">squid3@treenet.co.nz</a><span style="color:rgb(33,33,33);font-size:13px">></span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">To: </span><a href="mailto:squid-users@lists.squid-cache.org" style="font-size:13px" target="_blank">squid-users@lists.squid-cache.org</a><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">Subject: Re: [squid-users] Delay pools and external acl</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">Message-ID: <</span><a href="mailto:c672c10a-e18f-8f4b-325b-62dd7bd2272f@treenet.co.nz" style="font-size:13px" target="_blank">c672c10a-e18f-8f4b-325b-62dd7bd2272f@treenet.co.nz</a><span style="color:rgb(33,33,33);font-size:13px">></span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">Content-Type: text/plain; charset=utf-8</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">On 16/10/18 11:09 AM, Danilo V wrote:</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">> Hi all,</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">> </span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">> Has anyone succeeded applying delay pools on groups from AD?</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">> </span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">> I'm using squid 3.5.23 with basic_ldap_auth.</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">> I initially tried to combine mapping groups with external acl type</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">> (ext_ldap_group_acl) to delay pools. It's a trap :-(</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">> </span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">A trap?</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">For starters; "group" is an abstract concept buried in the depths of</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">authentication which has nothing to do with traffic. It is a purely</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">human scoping idea. Squid knows nothing of any "group".</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">The external ACL type which handles such complex non-traffic things is</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">clearly listed in the Squid FAQ (and the 'acl' directive documentation)</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">as being a "slow" / async ACL type.</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">Delay pools is also clearly listed as an access control which only works</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">with "fast" category ACL types.</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px"><</span><a href="https://wiki.squid-cache.org/SquidFaq/SquidAcl#Fast_and_Slow_ACLs" rel="noreferrer" style="font-size:13px" target="_blank">https://wiki.squid-cache.org/SquidFaq/SquidAcl#Fast_and_Slow_ACLs</a><span style="color:rgb(33,33,33);font-size:13px">></span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">> After doing more search I found about class 5 and note acl.</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">> Has anyone a pratical implementation in this scenario?</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">Yes several admin have done so. But with custom helpers that integrate</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">with the new annotation system, or the Kerberos helpers that have been</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">upgraded to integrate as well. Other helpers have not been updated yet.</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">Your external ACL just needs to supply Squid with a "tag=XX" or</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">"group=XX " annotation to label the transaction with whichever group</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">matches.</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px"> # login is required to do group checking...</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px"> acl login proxy_auth REQUIRED</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px"> http_access deny !login</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px"> # the decision to allow the traffic into the proxy does group checks</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">and adds annotations...</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px"> external_acl_type group %LOGIN ...</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px"> acl some_group external group XX</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px"> http_access allow some_group_check</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px"> # the decision of what pool(s) to apply has to work FAST - so uses the</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">annotations already present or not present) as its decider:</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px"> acl groupXX note group XX</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px"> # or for older Squid</span><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px"> acl groupXX note tag XX</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px"> delay_access N allow groupXX</span><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><br style="color:rgb(33,33,33);font-size:13px"><span style="color:rgb(33,33,33);font-size:13px">Amos</span><br style="color:rgb(33,33,33);font-size:13px"></div>