[squid-users] Question about: ext_session_acl Splash/Portal solution.

Amos Jeffries squid3 at treenet.co.nz
Mon Oct 16 14:59:28 UTC 2017


On 16/10/17 07:17, Klaus Tachtler wrote:
> Hi Amos,
> 
> after a little bit more testing, of course I must agree with you, it 
> doesn't work as expected.
> 
> Please can you give me another advice? Where is my fault?
> 
> I tried to use the *ACTIVE* example from the squid documentation and 
> modified it a little bit on 3 parts of the code, BUT a LOOP are still 
> there!
> 
> https://wiki.squid-cache.org/ConfigExamples/Portal/Splash#Squid_Configuration_File_-_Active_Mode 
> 
> 
> --- code ---
> 
> # Set up the session helper in active mode. Mind the wrap - this is one 
> line: - *MODIFIED* - (all in one line)
> external_acl_type session concurrency=100 ttl=3 negative_ttl=0 
> children-max=1 %LOGIN /usr/lib64/squid/ext_session_acl -a -T 60 -b 
> /var/lib/squid/sessions/
> 
> # Pass the LOGIN command to the session helper with this ACL
> acl session_login external session LOGIN
> 
> # Normal session ACL as per simple example
> acl session_is_active external session
> 
> # ACL to match URL - *MODIFIED* -
> acl clicked_login_url url_regex -i http://my.pages.net/html/accept.php
> 
> # First check for the login URL. If present, login session
> http_access allow clicked_login_url session_login
> 
> # If we get here, URL not present, so renew session or deny request.
> http_access deny !session_is_active
> 
> # Deny page to display - *MODIFIED* - NOT using a template with 
> HTML-Code 511!
> deny_info http://my.pages.net/html/splash.php?url=%u session_is_active


Please double-check the cacheing related headers on both your custom 
URLs are set to make them non-cacheable. 302 is a weak substitute for 
511 semantics, and requires caching headers to clearly and explicitly 
prevent caching *and* to be followed by the client or the system can 
breaks badly (which is why 511 was created).


Which exact version of Squid are you using? some of the early v4 had 
issues with the format parameter changes which broke the active session 
mode for a while.


Also, be aware that since the helper API is *only* using %LOGIN if any 
visitor happens to send a request for the clicked_login_url without 
credentials attached they will make a logged-in session for anonymous 
access and the proxy becomes an 'open proxy' for any subsequent client 
requests from *anywhere* for 63 seconds. Things like that are why %SRC 
is usually used to make a session depend on things not as easily under 
client control - such as src-IP.


If those don't work I'm stuck as well. The wiki config examples are ones 
I used myself for many years before I moved to the sql_session helper.

Amos


More information about the squid-users mailing list