|
|
This page was last modified
|
|
squidGuard is a combined filter,
redirector and access controller plugin for Squid. It is
squidGuard can be used to
-
limit the web access for some users to a list of accepted/well
known web servers and/or URLs only.
-
block access to some listed or blacklisted web servers and/or URLs
for some users. **)
-
block access to URLs matching a list of regular expressions or
words for some users. **)
-
enforce the use of domainnames/prohibit the use of IP address in
URLs. **)
-
redirect blocked URLs to an "intelligent" CGI based info
page. **)
-
redirect unregistered user to a registration form.
-
redirect popular downloads like Netscape, MSIE etc. to local
copies.
-
redirect banners to an empty GIF. **)
-
have different access rules based on time of day, day of the week,
date etc.
-
have different rules for different user groups.
-
and much more..
Neither squidGuard nor Squid can be used to
-
filter/censor/edit text inside documents
-
filter/censor/edit embeded scripting languages like JavaScript or
VBscript inside HTML
-
*) 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.
squidGuard has many powerful configuration options that lets you:
-
define different time
spaces based on any reasonable combination
of
-
group
sources (users/clients) into distinct categories like
"managers", "employees", "teachers", "students", "customers",
"guests" etc. based on any reasonable combination of
and optionally link the group to a
given time space
-
positively (within business-hours)
-
negatively (outside leisure-time)
-
group
destinations (URLs/servers) into distinct categories like
"local", "customers", "vendors", "banners", "banned" etc. based on
an unlimited number of unlimited lists of
and optionally link the group to a given time space:
-
positively (within business-hours)
-
negatively (outside leisure-time)
-
rewrite/redirect
URLs based on any reasonable combination of
-
URL replacement with
-
silent squid redirect to a common URL
(redirect "new_url")
-
visible client redirect to a common URL
(redirect "302:new_url") ***)
activated by
and optionally with
-
define access control
lists (acl) based on any reasonable combination
of the definitions above by
-
giving each source (user/client) group
- and optionally:
-
link the acl to a given time space
-
positively (within business-hours)
-
negatively (outside leisure-time)
-
defining a fallback/default
ruleset
-
have selective logging by optional log statements in
the: ****)
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.
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:
-
AIX: 4.1.3, 4.3.2.0/egcs-2.91.66
-
Dec-Unix: OSF1-4.0/gcc-2.7.2.3, 3.2C/gcc-2.7.2.3
-
FreeBSD 4.x-STABLE gcc 2.95.3
-
-
Linux: RedHat-5.2/gcc-2.8.1 RedHat-7.x/gcc-2.8.1
-
Solaris: 2.6/gcc-2.7.2.3 2.6/gcc-2.95.3, 2.8/gcc-2.95.3