Squid

From SME Server
Jump to navigationJump to search

Squid Proxy Server Settings

PythonIcon.png Skill level: medium
The instructions on this page require a basic knowledge of linux.


SARG: Squid Analysis Report Generator

"Squid Analysis Report Generator is a tool that allow you to view "where" your users are going to on the Internet."

SARG Homepage: http://sarg.sourceforge.net/

SME SARG HowTo: Sarg

This section should contain links to the various Squid modifiers - Squidguard, Dansguardian, Sarg, etc.

DansGuardian: true web content filtering for all

"DansGuardian is an award winning web content filtering proxy(1) for Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X, HP-UX, and Solaris that uses Squid(2) to do all the fetching. It filters using multiple methods. These methods include URL and domain filtering, content phrase filtering, PICS filtering, MIME filtering, file extension filtering, POST limiting."

DansGuardian Homepage: http://dansguardian.org/

SME DansGuardian HowTo: Dansguardian

SquidGuard

"SquidGuard is a URL redirector used to use blacklists with the proxysoftware Squid."

Squidguard Homepage: http://www.squidguard.org/

SME SquidGuard Howto: SquidGuard or WebFiltering

ProxyPass

Despite the name, ProxyPass has nothing to do with the Squid proxy and is actually an Apache directive designed to allow a given URL on your server to return the content of some other webserver - either internal (behind your SME) or external.

Apache proxypass Documentation: http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass

SME proxypass Howto: SME_Server:Documentation:FAQ#Proxy_Pass

Customizing Squid

Bypass the Proxy Server Without Disabling Your Transparent Proxy

Firewall#Bypass_Proxy

Caching WindowsUpdate download (and others too)

From this post

and

Create the template fragment

mkdir -p /etc/e-smith/templates-custom/etc/squid/squid.conf
nano  -w /etc/e-smith/templates-custom/etc/squid/squid.conf/05refreshpattern

paste lines below

hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 16 MB
maximum_object_size 1280096 KB
cache_dir ufs /var/spool/squid 3000 16 256 

# caching windows update various windows versions
refresh_pattern http://.*\.windowsupdate\.microsoft\.com/ 0 80% 20160 reload-into-ims
refresh_pattern http://.*\.update\.microsoft\.com/ 0 80% 20160 reload-into-ims
refresh_pattern http://download\.microsoft\.com/ 0 80% 20160 reload-into-ims
refresh_pattern http://windowsupdate\.microsoft\.com/ 0 80% 20160 reload-into-ims
refresh_pattern http://office\.microsoft\.com/ 0 80% 20160 reload-into-ims

# cache ubuntu updates [check logs use COUNTRY SPECIFIC first line or generic below]
refresh_pattern http://.*\.archive\.ubuntu\.com  0 80% 20160 reload-into-ims  
refresh_pattern http://archive\.ubuntu\.com  0 80% 20160 reload-into-ims
# add any site you want to cache below


Execute:

expand-template /etc/squid/squid.conf
squid -k reconfigure


Reference:

cache_mem
  Description - The amount of memory; RAM, to be used for caching the so called: In-Transit objects, Hot Objects, Negative-Cached objects. This is an optimization feature. Squid can use much more memory than the value specified in this parameter, if you have 48 MB free for Squid, put 48/3 = 16 MB. The value is specified in megabytes.
maximum_object_size
  Description - Objects larger than this size will NOT be saved on disk. The value is specified in kilobytes.
cache_dir
  Description - Specifies in this order,
    Which kind of storage system to use; ufs
    The name of the cache directory; /var/spool/squid
    The disk space in megabytes to use under this directory; 3000 Megabytes
    The number of first-level subdirectories to be created under the cache directory; 16 Level-1
    The number of second-level subdirectories to be created under each first-level cache directory; 256 Level-2

Content Encoding Error

The problem here is squid that comes with SME Server 7.x is version 2.5 which has lack of HTTP/1.1 support. SME 8 has a later version of and solves this issue.

As a workaround you will need to create a few custom-templates and use squid's acl rules.

Create a file called 21BrokenHeader in the following directory (create if doesn't exist)

/etc/e-smith/templates-custom/etc/squid/squid.conf

Enter the following line in 21BrokenHeader

acl broken dstdomain www.maplin.co.uk

Save the file

If it does not already exist create a file called 40http_access75AllowLocal in the following directory

/etc/e-smith/templates-custom/etc/squid/squid.conf

Enter the following line in 40http_access75AllowLocal

header_access Accept-Encoding deny broken

Save and quit, next expand the files:

expand-template /etc/squid/squid.conf

and restart the squid service:

sv t /service/squid/