The squidGuard Introduction
squidGuard is an ultrafast and free filter, redirector and access controller for Squid
By Pål Baltzersen and Lars Erik Håland


This page was last modified

Introduction

squidGuard is a combined filter, redirector and access controller plugin for Squid. It is

squidGuard can be used to

Neither squidGuard nor Squid can be used to

*) 100,000 requests in 10seconds on a 500MHz Pentium with lists of
  5900 domains
  7880 urls
13780 total
    100,000 requests in 12seconds on a 500MHz Pentium with lists of
    5900 domains
200000 urls
205900 total
    I.e. domain and URL listsizes have neglectable performance effect

**) squidGuard is not a porn or banner filter/blocker, but it is very well suited for these purposes too.

Capabilities

squidGuard has many powerful configuration options that lets you:

  1. define different time spaces based on any reasonable combination of

  2. group sources (users/clients) into distinct categories like "managers", "employees", "teachers", "students", "customers", "guests" etc. based on any reasonable combination of
  3. and optionally link the group to a given time space
  4. group destinations (URLs/servers) into distinct categories like "local", "customers", "vendors", "banners", "banned" etc. based on an unlimited number of unlimited lists of
  5. and optionally link the group to a given time space:
  6. rewrite/redirect URLs based on any reasonable combination of

  7. define access control lists (acl) based on any reasonable combination of the definitions above by

  8. have selective logging by optional log statements in the: ****)
  9. and optionally anonymized to protect the individuals (log anonymous "file")

*) Client access control based on domain name requires enabling reverse lookups (log_fqdn on) in squid.conf.
**) Client access control based on user id requires enabling RFC931/ident in squid.conf. Note: The RFC931/ident configuration is changed in squid-2.2 and the RFC931/ident support is broken in squid-2.2 at least up to STABLE2. We currently recommend using squid-2.1.PATCH2 in production if RFC931 is used.
***) Note: Visible redirects (302:new-url) are not supported by some interim versions of Squid (presumably 1.2-2.0).
****) Note: squidGuard is smart enough to open only one filedescriptor per logfile (i.e. not necessarily one per log statement); per spawned process of course. Though logging to too many different files may exeed your system's concurrent filedescriptor limit.

Portability

squidGuard should compile right out of the box on any modern brand of UNIX with a development environment and a recent version (2.X) of the Berkeley DB library. squidGuard is developed on Sun Solaris-2.8 with gcc-2.95.3, bison-1.25, flex-2.5.4. We also test regularly on Linux/RedHat-7.x with gcc-2.8.1 and Digital UNIX/OSF1-4.0 with gcc-2.7.2.3. We always use our most recent copy of the Berkeley DB.

Users have reported success on at least, but not limited to: