Hi amos , thanks for the kind response . i denied to rebuild squid without IPV6 support and seems now no error in helper .
i just curious to know about the auth directors in squid how should i arrange it : acl localnet src all auth_param basic program /lib/squid/basic_ncsa_auth /etc/squid/squid_user acl ncsa_users proxy_auth REQUIRED auth_param basic children 1000 external_acl_type bandwidth_check ttl=0 %SRC /usr/local/bin/bandwidth_check acl bandwidth_auth external bandwidth_check http_access allow localnet bandwidth_auth http_access deny localnet !bandwidth_auth ################################################### http_access allow ncsa_users is above correct sequence to block any user exceeded quota ? also should i use external_acl_type bandwidth_check ttl=0 %SRC /usr/local/bin/bandwidth_check or external_acl_type bandwidth_check ttl=0 %SRC %LOGIN /usr/local/bin/bandwidth_check or external_acl_type bandwidth_check ttl=0 %EXT_USER /usr/local/bin/bandwidth_check thanks amos in advance > On Sep 4, 2017, at 8:10 AM, Amos Jeffries <squ...@treenet.co.nz> wrote: > > On 04/09/17 07:49, --Ahmad-- wrote: >> Hello squid folks . >> I’m trying to use squid external helper to get quote to ips or users. >> I’m following the wiki : >> http://www.mikealeonetti.com/wiki/index.php?title=Squid_Arms_and_Tentacles:_Bandwidth_quotas >> i have done everything my side on squid . >> i have tested the connection : >> root@localhost:~# /usr/local/bin/bandwidth_calculate >> /etc/squid/bandwidth_rules >> root@localhost:~# >> no errors above ! >> ####################################### >> the issue I’m not sure if I’m using squid config file integration correctly . >> here is my squid.conf file : >> dns_v4_first on >> acl localnet src all > > You have defined your LAN to be the entire Internet. Don't do that. > > Define localnet to be your actual network ranges. > > Use the provided 'all' ACL to refer to things that are allowed/denied to > everyone online. Most of the time 'all' is unnecessary. > > If you expect clients from the general web to access your proxy and some > access control to apply to them, then simply do not limit those access > controls with the 'localnet' ACL. > > >> auth_param basic program /lib/squid/basic_ncsa_auth /etc/squid/squid_user >> acl ncsa_users proxy_auth REQUIRED >> auth_param basic children 1000 > > How many users do expect exactly? > > Squid de-duplicated overlapping Basic auth logins so one user can login > multiple times at once (ie login bursts when a Browser starts up) with only > one query sent to the auth helper. NCSA is also extremely fast lookups. > > If you bumped that up because of the WARNING logged, then please change your > practices to fix ERRORs before WARNINGs. > * WARNINGs are logged for things Squid can workaround but needs help to fix > properly, > * ERRORs are things Squid cannot do anything about and need your attention, > * FATALs are things that are absolutely critical to fix if you are going to > use Squid at all. > > >> external_acl_type bandwidth_check ttl=60 %SRC /usr/local/bin/bandwidth_check > > The ttl= parameter needs to be 0 for accurate bandwidth results. With the > above the helper is only checked once per minute, not on every request. > Keep in mind that you are only controlling whether new requests can start, > and once started they will complete. So regular re-checking is required to > minimize overages. > > NP: negative_ttl= control how often Squid re-checks results from the helper > once users go over their quota. This is the option that you will want to tune > with non-0 values to reduce helper load, but also keep it low enough not to > block clients for too long after their quota renews. > > >> acl bandwidth_auth external bandwidth_check >> http_access allow localnet bandwidth_auth >> http_access deny localnet !bandwidth_auth > > The wiki is documenting the above two rules as *alternatives*. I suggest you > go back and read their descriptions, then pick the one that does what you > need. > > >> ################################################### >> cache_effective_user squid >> cache_effective_group squid >> ########################################### >> http_access allow ncsa_users > > This will only login users that broadcast their credentials. It will not > require credentials from clients, and none of your below rules require login > to have happened. > > Best practice for authentication is to place the rules applying to > non-authenticate clients first, then have: > > http_access deny !ncsa_users > > ... then to follow that with any rules applying to authenticated clients. > > >> ############################ >> acl SSL_ports port 443 >> acl Safe_ports port 80 # http >> acl Safe_ports port 21 # ftp >> acl Safe_ports port 443 # https >> acl Safe_ports port 70 # gopher >> acl Safe_ports port 210 # wais >> acl Safe_ports port 1025-65535 # unregistered ports >> acl Safe_ports port 280 # http-mgmt >> acl Safe_ports port 488 # gss-http >> acl Safe_ports port 591 # filemaker >> acl Safe_ports port 777 # multiling http >> acl CONNECT method CONNECT >> http_access deny !Safe_ports >> http_access deny CONNECT !SSL_ports > > These Safe_ports and CONNECT rule need to be *above* all of your custom > rules. Otherwise they will have zero ability to protect your proxy against > the DoS and hijacking attacks they are supposed to prevent. > > <snip> >> here is errors i get : >> 2017/09/03 19:32:38 kid1| WARNING: external ACL 'bandwidth_check' queue >> overload. Request rejected '11.13.209.12'. >> 2017/09/03 19:38:31 kid1| WARNING: external ACL 'bandwidth_check' queue >> overload. Request rejected '11.13.209.12'. >> 2017/09/03 19:44:46 kid1| WARNING: external ACL 'bandwidth_check' queue >> overload. Request rejected '148.161.111.42'. >> 2017/09/03 19:44:47 kid1| WARNING: external ACL 'bandwidth_check' queue >> overload. Request rejected '148.161.111.42’. >> but I’m sure 100 % that the ips above not blacklisted bec i check them over >> the helper : > > Please re-read the WARNING message. > > IPs are *not* being rejected because they are listed. They are being rejected > because the helper lookup queue is overloaded and no OK is received. > >> here is squid when it run : >> root@localhost:~# tailf /var/log/squid/cache.log >> 2017/09/03 19:32:33 kid1| ERROR: Failed to create helper child read FD: TCP >> [::1] > > Fix that ERROR. The WARNING's about the helper and ACL checking are all side > effects of there not actually being a helper running. > > There are several ways to do that: > > 1) fix the helpers IPv6 support. It seems not to have any, or if it does is > somehow still only using the IPv4-only address of localhost. Squid is trying > to contact it over an IPv6-v4-mapped address for localhost. > > > 2) add the 'ipv4' option to your external_acl_type, to make Squid temporarily > be IPv4-only when talking to this helper. > > While (2) is very tempting and easy, you will probably find that an IPv4-only > helper like this has errors when it gets told the IP address of an IPv6 > client. So (1) is the better option and I see the wiki page author goes on > about being happy to fix problem with their helper - just get in touch. > > > Amos > _______________________________________________ > squid-users mailing list > squid-users@lists.squid-cache.org > http://lists.squid-cache.org/listinfo/squid-users
_______________________________________________ squid-users mailing list squid-users@lists.squid-cache.org http://lists.squid-cache.org/listinfo/squid-users