squid-filter project was designed to build filtering capabilities comparable to those of Muffin into Squid.
Version: 0.9squid-filter project was designed to build filtering capabilities comparable to those of Muffin into Squid. It consists of
License: Public Domain
Operating System: Linux
a patch to Squid, containing a module loader and filtering hooks, and a set of filter modules.
Currently available filters:
· Redirection of URIs.
· Rejection of certain (configurable) MIME content types.
· Suppression of cookies.
· Breaking of GIF animation loops.
· Detection of 1x1 images.
Here are some key features of "squid filter":
· Modular, easily extensible by writing new filters.
· Flexible configuration. Filters are independent from each other.
· Each filter can take a list of URIs which should not be filtered (allow list). URIs are specified as full regular expressions.
· Client can choose to bypass filters case-by-case.
· Filtering keeps Content-Length where possible.
A filtering proxy allows users to remove unwanted stuff from Web pages as they browse them. What "unwanted stuff" is obviously depends on the individual user, but things which are commonly regarded as annoyances include
banner ads, user behaviour tracking via cookies,
Some of those things can be avoided by filtering URIs, which Squid can already do via an external redirect program. Others require a content filter.
Usually, a filtering proxy runs standalone and does nothing but filtering. Users have to configure this proxy in their browsers, and if they use a caching proxy too, chain them after the filter. In situations where the user runs Squid anyway (mostly because of caching for different browsers or a small LAN), it is convenient to build this capability into Squid.
This patch is for Squid 2.5STABLE6. It requires an operating system with a libdl or libdld dynamic-loader library and a compiler which can produce the needed shared objects. Tested in the following environments:
· Linux 2.2 with glibc 2.0.7 (should work from 2.0 and libc5 upward), also tested with Linux 2.4-2.6 and glibc 2.1.3-2.2.5;
· Solaris 7 with gcc and GNU ld;
· HPUX 10.20 with the HP ANSI C compiler or gcc.
You need the Squid sources, everything for compiling them, GNU "patch" and GNU "autoconf".
1. Apply the patch: (In the Squid source directory)
gzip -cd squid-filter-0.9.patch.gz | patch -p1
2. Run configure:
sh configure (options...) --enable-filters
Note: --enable-leakfinder does not work in this release, it causes crashes. This option is purely for debugging and not used in any part of the original Squid release, however.
3. Compile and install Squid as usual. The filter modules will be installed in the same directory as the binary.