paul cooper wrote:
> there is something in all this i really am not understanding.Sorry to be
> so stupid.
> 
> AIUI now, it looks at the ACLs and processes them until it finds one that
> matches, and then it stops matching them and allows access. It will only
> deny a page when its has processed all the ACLS and NOT  found a match.
> 
There are two slightly different things involved here:
   ACL and ACCESS
Squid check all ACCESS lines _in the order configured_ .
The first that matches is used, end of story #1.
In order to process any single ACCESS line squid must check the ACL 
listed in it. It only matches if all the ACL _on that line_ are matched.
The behaviour you are thinking of applies just to the ACL within a 
single ACCESS line.
So to take an example from your config:
  http_access allow emma weekends
        - will ONLY accept if emma is true AND weekends is true
        - will never deny anything
        - wont match if emma is false OR weekends is false
   http_access allow Safe_ports
        - will ONLY accept if (line above it don't match) AND Safe_ports is true
        - will never deny anything.
        - wont match if Safe_ports is false.
So we end up with three actions from each ACCESS line:
        ALLOW
        DENY
        TRY-NEXT-LINE
 > if i have only  1 authenticated user (emma)  then the time based ACL
 > ('testing') it denies access as it should .
 > When i add another user access (http_access  allow andrew)  the browser
 > authentication box comes up , i put in 'emma' and it gives me access.
 > Im restarting squid and clearing the browser cache between all these
 > attempts.
The deny/accept is happening in places you are not expecting them to occur.
Your ACL are working, ACCESS are not.
> 
> 
> 
> hepworth emma # grep ^acl /etc/squid/squid.conf |grep -v 'Safe'
> acl all src 0.0.0.0/0.0.0.0
> acl localhost src 127.0.0.1/255.255.255.255
> acl SSL_ports port 443
> acl purge method PURGE
> acl CONNECT method CONNECT
> acl andrew proxy_auth REQUIRED
> acl emma proxy_auth REQUIRED
> acl QUERY urlpath_regex cgi-bin \?
> acl apache rep_header Server ^Apache
> acl testing  time MTWHF 07:30-08:00
> hepworth emma # grep ^http /etc/squid/squid.conf
> http_port 3128
> http_access allow emma testing
> http_access deny localhost
> http_access deny all
> hepworth emma #
> 
> 2008/03/24 09:52:44| aclCheckFast: list: 0x82ab370
> 2008/03/24 09:52:44| aclMatchAclList: checking all
> 2008/03/24 09:52:44| aclMatchAcl: checking 'acl all src 0.0.0.0/0.0.0.0'
> 2008/03/24 09:52:44| aclMatchIp: '127.0.0.1' found
> 2008/03/24 09:52:44| aclMatchAclList: returning 1
> 2008/03/24 09:52:44| aclCheck: checking 'http_access allow emma testing'
> 2008/03/24 09:52:44| aclMatchAclList: checking emma
> 2008/03/24 09:52:44| aclMatchAcl: checking 'acl emma proxy_auth REQUIRED'
> 2008/03/24 09:52:44| aclMatchUser: user is emma, case_insensitive is 0
> 2008/03/24 09:52:44| Top is (nil), Top->data is Unavailable
> 2008/03/24 09:52:44| aclMatchUser: user REQUIRED and auth-info present.
... username OK.
> 2008/03/24 09:52:44| aclMatchAclList: checking testing
> 2008/03/24 09:52:44| aclMatchAcl: checking 'acl testing  time MTWHF
> 07:30-08:00'
> 2008/03/24 09:52:44| aclMatchTime: checking 592 in 450-480, weekbits=3e
... NOT within the (testing) time configured.
> 2008/03/24 09:52:44| aclMatchAclList: no match, returning 0
(http_access allow emma testing) failed to match.
... moving on to try the next one....
> 2008/03/24 09:52:44| aclCheck: checking 'http_access deny localhost'
> 2008/03/24 09:52:44| aclMatchAclList: checking localhost
> 2008/03/24 09:52:44| aclMatchAcl: checking 'acl localhost src
> 127.0.0.1/255.255.255.255'
> 2008/03/24 09:52:44| aclMatchIp: '127.0.0.1' found
.. you are on localhost. ACL matches.
> 2008/03/24 09:52:44| aclMatchAclList: returning 1
... do whatever the http_access is supposed to do with it...
> 2008/03/24 09:52:44| aclCheck: match found, returning 0
... which is a DENY ...
> 2008/03/24 09:52:44| aclCheckCallback: answer=0
> 2008/03/24 09:52:44| The request GET http://grolma.no-ip.org/ is DENIED,
> because it matched 'localhost'
... send the denial message.
<snip the ACL testing for the reply 5xx/4xx message>
> 
> 
> hepworth emma # grep ^acl /etc/squid/squid.conf |grep -v 'Safe_ports'
> <as before>
> 
> hepworth emma # cat /etc/squid/squid.conf |grep ^http
> http_port 3128
> http_access allow emma testing
> http_access allow andrew
> http_access deny localhost
> http_access deny all
> hepworth emma #
Translated from config to English:
   (emma when logged in) only on (weekends) CAN get through.
   (andrew) CAN get through at any time.
   (others) using (machine localhost) NOT allowed
   (others) NOT allowed
> 
> 
> 
> 2008/03/24 09:56:04| aclCheckFast: list: 0x82ab640
> 2008/03/24 09:56:04| aclMatchAclList: checking all
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl all src 0.0.0.0/0.0.0.0'
> 2008/03/24 09:56:04| aclMatchIp: '127.0.0.1' found
> 2008/03/24 09:56:04| aclMatchAclList: returning 1
> 2008/03/24 09:56:04| aclCheck: checking 'http_access allow emma testing'
> 2008/03/24 09:56:04| aclMatchAclList: checking emma
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl emma proxy_auth REQUIRED'
> 2008/03/24 09:56:04| aclMatchUser: user is emma, case_insensitive is 0
> 2008/03/24 09:56:04| Top is (nil), Top->data is Unavailable
> 2008/03/24 09:56:04| aclMatchUser: user REQUIRED and auth-info present.
> 2008/03/24 09:56:04| aclMatchAclList: checking testing
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl testing  time MTWHF
> 07:30-08:00'
> 2008/03/24 09:56:04| aclMatchTime: checking 596 in 450-480, weekbits=3e
> 2008/03/24 09:56:04| aclMatchAclList: no match, returning 0
> 2008/03/24 09:56:04| aclCheck: checking 'http_access allow andrew'
> 2008/03/24 09:56:04| aclMatchAclList: checking andrew
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl andrew proxy_auth REQUIRED'
> 2008/03/24 09:56:04| aclMatchUser: user is emma, case_insensitive is 0
> 2008/03/24 09:56:04| Top is (nil), Top->data is Unavailable
> 2008/03/24 09:56:04| aclMatchUser: user REQUIRED and auth-info present.
> 2008/03/24 09:56:04| aclMatchAclList: returning 1
> 2008/03/24 09:56:04| aclCheck: match found, returning 1
> 2008/03/24 09:56:04| aclCheckCallback: answer=1
> 2008/03/24 09:56:04| The request GET http://grolma.no-ip.org/ is ALLOWED,
> because it matched 'andrew'
> 2008/03/24 09:56:04| aclCheck: checking 'cache deny QUERY'
> 2008/03/24 09:56:04| aclMatchAclList: checking QUERY
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl QUERY urlpath_regex
> cgi-bin \?'
> 2008/03/24 09:56:04| aclMatchRegex: checking '/'
> 2008/03/24 09:56:04| aclMatchRegex: looking for 'cgi-bin'
> 2008/03/24 09:56:04| aclMatchRegex: looking for '\?'
> 2008/03/24 09:56:04| aclMatchAclList: no match, returning 0
> 2008/03/24 09:56:04| aclCheck: NO match found, returning 1
> 2008/03/24 09:56:04| aclCheckCallback: answer=1
> 2008/03/24 09:56:04| clientProcessHit: HIT
> 2008/03/24 09:56:04| aclCheckFast: list: 0x82ab2b0
> 2008/03/24 09:56:04| aclMatchAclList: checking all
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl all src 0.0.0.0/0.0.0.0'
> 2008/03/24 09:56:04| aclMatchIp: '127.0.0.1' found
> 2008/03/24 09:56:04| aclMatchAclList: returning 1
> 2008/03/24 09:56:04| aclCheck: checking 'http_reply_access allow all'
> 2008/03/24 09:56:04| aclMatchAclList: checking all
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl all src 0.0.0.0/0.0.0.0'
> 2008/03/24 09:56:04| aclMatchIp: '127.0.0.1' found
> 2008/03/24 09:56:04| aclMatchAclList: returning 1
> 2008/03/24 09:56:04| aclCheck: match found, returning 1
> 2008/03/24 09:56:04| aclCheckCallback: answer=1
> 2008/03/24 09:56:04| The reply for GET http://grolma.no-ip.org/ is
> ALLOWED, because it matched 'all'
> 2008/03/24 09:56:04| aclCheckFast: list: 0x82ab640
> 2008/03/24 09:56:04| aclMatchAclList: checking all
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl all src 0.0.0.0/0.0.0.0'
> 2008/03/24 09:56:04| aclMatchIp: '127.0.0.1' found
> 2008/03/24 09:56:04| aclMatchAclList: returning 1
> 2008/03/24 09:56:04| aclCheck: checking 'http_access allow emma testing'
> 2008/03/24 09:56:04| aclMatchAclList: checking emma
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl emma proxy_auth REQUIRED'
> 2008/03/24 09:56:04| aclCacheMatchAcl: cache hit on acl '0x82a7cc8'
> 2008/03/24 09:56:04| aclMatchAclList: checking testing
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl testing  time MTWHF
> 07:30-08:00'
> 2008/03/24 09:56:04| aclMatchTime: checking 596 in 450-480, weekbits=3e
> 2008/03/24 09:56:04| aclMatchAclList: no match, returning 0
> 2008/03/24 09:56:04| aclCheck: checking 'http_access allow andrew'
> 2008/03/24 09:56:04| aclMatchAclList: checking andrew
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl andrew proxy_auth REQUIRED'
> 2008/03/24 09:56:04| aclCacheMatchAcl: cache hit on acl '0x82a7d38'
> 2008/03/24 09:56:04| aclMatchAclList: returning 1
> 2008/03/24 09:56:04| aclCheck: match found, returning 1
> 2008/03/24 09:56:04| aclCheckCallback: answer=1
> 2008/03/24 09:56:04| The request GET http://grolma.no-ip.org/favicon.ico
> is ALLOWED, because it matched 'andrew'
> 2008/03/24 09:56:04| aclCheck: checking 'cache deny QUERY'
> 2008/03/24 09:56:04| aclMatchAclList: checking QUERY
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl QUERY urlpath_regex
> cgi-bin \?'
> 2008/03/24 09:56:04| aclMatchRegex: checking '/favicon.ico'
> 2008/03/24 09:56:04| aclMatchRegex: looking for 'cgi-bin'
> 2008/03/24 09:56:04| aclMatchRegex: looking for '\?'
> 2008/03/24 09:56:04| aclMatchAclList: no match, returning 0
> 2008/03/24 09:56:04| aclCheck: NO match found, returning 1
> 2008/03/24 09:56:04| aclCheckCallback: answer=1
> 2008/03/24 09:56:04| aclCheckFast: list: 0x82ab2b0
> 2008/03/24 09:56:04| aclMatchAclList: checking all
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl all src 0.0.0.0/0.0.0.0'
> 2008/03/24 09:56:04| aclMatchIp: '127.0.0.1' found
> 2008/03/24 09:56:04| aclMatchAclList: returning 1
> 2008/03/24 09:56:04| aclCheck: checking 'http_reply_access allow all'
> 2008/03/24 09:56:04| aclMatchAclList: checking all
> 2008/03/24 09:56:04| aclMatchAcl: checking 'acl all src 0.0.0.0/0.0.0.0'
> 2008/03/24 09:56:04| aclMatchIp: '127.0.0.1' found
> 2008/03/24 09:56:04| aclMatchAclList: returning 1
> 2008/03/24 09:56:04| aclCheck: match found, returning 1
> 2008/03/24 09:56:04| aclCheckCallback: answer=1
> 2008/03/24 09:56:04| The reply for GET http://grolma.no-ip.org/favicon.ico
> is ALLOWED, because it matched 'all'
> hepworth emma #
> 
> 
-- Please use Squid 2.6STABLE17+ or 3.0STABLE1+ There are serious security advisories out on all earlier releases.Received on Tue Mar 25 2008 - 04:53:25 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Apr 01 2008 - 13:00:05 MDT