Dansguardian is perhaps unique among censorware applications in that it is the only one I have ever used that does not suck. Unlike CYBERsitter, Cyber Patrol, Bess and most others, it does not depend on secret, compiled-in lists of 'dirty' URLs. Rather, it uses a set of user-configured files to determine what to block.
These files allow the administrator to block specific IP addresses and URLs, both exact matches and by regular expression, as well as to add specific whitelisted URLs that will never be blocked. Those capabilities, however, are little better than those provided by most filters. What makes Dansguardian interesting is the fact that all destinations not explicitly blocked in the blacklist or permitted in the whitelist are by default on a sort of graylist, and are filtered by content. The content filtering searches through the text of web pages for phrases, words and patterns specified by the user. These patterns can either be banned, which means that even one match causes the page to be blocked, or they can be weighted. When a weighted phrase is encountered, this increments a counter. When this counter exceeds some arbitrary user-configured value, a page is considered dirty and is blocked.
While Dansguardian ships with some pre-configured lists of weighted phrases, they are just plain-text files which the administrator has total control over. You can include or exclude whatever you want, and adjust the weights freely. Phrases may also have a negative weight, which means that these phrases, when encountered, actually reduce the page in question's 'dirtiness' score. This makes it easier to block objectionable content while still permitting legitimate content to pass unimpeded. It also does not force you to filter and particular category of content - it would be quite possible to craft a set of Dansguardian criteria that would block all pages including, say, fluffy bunnies while allowing Live Nude Lesbians to pass without a second glance. Of course, most sites tend to do the inverse.
A patch called dgav (Dansguardian Anti-Virus) is available that enables virus-scanning of downloaded files. Like the rest of Dansguardian, configurability is the watchword for this module. It can be configured to virus-scan only certain file types, or to ignore files from certain whitelisted sites even if they would normally be scanned. Unfortunately, like all HTTP virus scanning implementations, it is somewhat of a kluge and tends to nearly double the time required to download files. This is because the entire file must be downloaded to the proxy before it can be scanned, and then must be sent to the client.
Dansguardian is open-source software, written in C++, that runs on Linux, NetBSD, OpenBSD, FreeBSD, Solaris, IRIX, Mac OS X and AIX. It acts as a front-end to the Squid proxy server. It can be freely downloaded from http://dansguardian.org.
Author's note: while I dislike censorship and generally oppose the use of filtering software, Dansguardian is one of the better ones, and is generally free from all the corporate political crap that encumbers many of the other products.