Asim Ahmed @ Folio3 wrote:
One more thing to confirm. I am using IP ranges of my subnet to allow access to internet like this:

#following lines are put in a file named "gerrys_groups.acl" and referenced in an ACL statement.

192.168.4.25-192.168.4.50
192.168.4.101-192.168.4.150

Is this valid and supported by squid?

Yes.


Asim Ahmed @ Folio3 wrote:
Hi,

I am using smoothwall 3.0SP1-polar that comes with Squid2.7STABLE6 built in. I configure the squid with following parameters. Problem is that squid works fine for 1 or 2 users but when I open it for whole subnet or range of IPs, it crashes down. I mean it start behaving wierdly like most of the time it does not respond to http requests and users have to keep pressing F5 several times to get the request done. Even access log does not show any requests coming in. In cache log i find many entries like "Invalid request" etc. Some times I also find

That does not sound good. We will need some more details to track down what it is though. Can you post a chunk of the log with those lines in it and a few before and after please?


"Cache DIRTY" words during restart of squid. My ACLs are as follows:

SQUID-Settings
===========

visible_hostname smoothwall
acl localnetgreen src 192.168.4.0/255.255.255.0

AKA:
 acl localnetgreen src 192.168.4.0/24

http_port 192.168.4.123:800 transparent
cache_mem 1024 MB
maximum_object_size_in_memory 32 KB

cache_replacement_policy heap GDSF
memory_replacement_policy heap GDSF

half_closed_clients off

cache_swap_high 100%
cache_swap_low 95%

shutdown_lifetime 5 seconds

This may explain "Cache DIRTY".

1) Squid has only 5 seconds to clear out its memory, finish all active connections and dump the index state for 10GB of cached data to disk.

2) If its not done in time it will abandon any unfinished tasks.

3) "Cache DIRTY" means that on startup Squid has detecetd the index journal state to be incorrect and is moving to a background scan for the entire disk cache object by object to recover the meta information.


icp_port 0

acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

Drop the above.

Hmm. The HTTP basic requirement refresh_patterns are all missing.
Please add:

  refresh_pattern ^ftp:           1440    20%     10080
  refresh_pattern ^gopher:        1440    0%      1440
  refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
  refresh_pattern .               0       20%     4320



cache_effective_user squid
cache_effective_group squid


Not a particularly good idea to use cache_effective_group unless absolutely necessary. Better to have the system 'squid' user a member of the group 'squid' instead.

pid_filename /var/run/squid.pid

cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log none
error_directory /usr/share/errors/English
log_mime_hdrs off

forwarded_for off

acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255

acl all src all
acl localhost src 127.0.0.1


acl SSL_ports port 445 443 441 563
acl Safe_ports port 80                  # http
acl Safe_ports port 81                  # smoothwall http
acl Safe_ports port 21                  # ftp
acl Safe_ports port 445 443 441 563     # https, snews
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
#######################################
#  ACLs                       #
#######################################
acl super_users src "/var/smoothwall/proxy/f3_acls/super_users.acl"
acl ISP1_users src "/var/smoothwall/proxy/f3_acls/gerrys_groups.acl"
acl ISP2_users src "/var/smoothwall/proxy/f3_acls/netsat_groups.acl"
acl managers src "/var/smoothwall/proxy/f3_acls/managers.acl"
acl blocked_extensions urlpath_regex -i "/var/smoothwall/proxy/f3_acls/blocked_extensions.acl" acl blocked_sites url_regex -i "/var/smoothwall/proxy/f3_acls/blocked_sites.acl" acl blocked_request_mt req_mime_type -i "/var/smoothwall/proxy/f3_acls/blocked_mimetypes.acl" acl blocked_reply_mt rep_mime_type -i "/var/smoothwall/proxy/f3_acls/blocked_mimetypes.acl" acl gaming_sites url_regex -i "/var/smoothwall/proxy/f3_acls/gaming_sites.acl" acl server_machines src "/var/smoothwall/proxy/f3_acls/server_machines.acl"
acl working_hours time MTWHF 09:00-12:30
acl working_hours time MTWHF 14:00-18:30
acl gaming_hours time MTWHF 21:00-23:59
acl gaming_hours time MTWHF 01:00-07:00
########################################
# HTTP_ACCESS            #
########################################
http_access allow super_users
http_access deny blocked_sites working_hours
http_access deny blocked_request_mt working_hours
http_access deny blocked_reply_mt working_hours

invalid: "http_access deny blocked_reply_mt "...

Maybe you meant:
  http_reply_access deny !super_users working_hours blocked_reply_mt
  http_reply_access allow all

http_access deny gaming_sites !gaming_hours
http_access allow managers
#http_access deny blocked_extensions working_hours

One thing I note from all the above http_access lines is that you are placing the regex pattern matches first. regex in Squid is _the_ slowest ACL type to be using. It's best to avoid it like plague where possible and to restrict when its used where needed.


Without knowing details I'd guess that most of the blocked_sites and gaming_sites lists can become a dstdomain ACL to avoid regex matching.

Also placing the fast "working_hours" first on each line will reduce the regex to only being tested when working_hours is true.

For example:
 http_access deny working_hours blocked_request_mt


http_access allow ISP1_users
#http_access allow ISP2_users
http_access allow server_machines
http_access deny localnetgreen

Missing basic security:

  http_access deny all


umask 022

maximum_object_size 4096 KB
minimum_object_size 0 KB

# Smoothwall does not allow this parameter to be changed. I can only change cache size
cache_dir diskd /var/spool/squid/cache 10240 16 256

request_body_max_size 0 KB
reply_body_max_size 0 allow all

defaults. Also the syntax is broken. Remove the two above.


logfile_rotate 0

strip_query_terms off

acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast




Amos
--
Please be using
  Current Stable Squid 2.7.STABLE7 or 3.0.STABLE20
  Current Beta Squid 3.1.0.15

Reply via email to