Using Squid to filter Internet access


The Internet Content Adaptation Protocol (ICAP) was designed for transparent web proxies to query an external service as to whether or not a request should be served. It is most commonly used for content filtering and anti-virus scanning.

This approach does have some challenges, though. For example, when using SquidClamav [4] to tie the ClamAV scanner into your Squid server, you might encounter timeouts on clients, because the entire file must be downloaded and scanned before it is served to the client; it cannot be scanned on the fly and served to the client using SquidClamav. So, although this approach will work well for smaller files, it may cause problems with larger files. The other downside of ICAP is that although a few ICAP servers are available, there are very few good content sources (e.g., malicious URLs) that you can feed into your ICAP service.


I have strong feelings (mostly pro) about unfiltered and unlimited Internet access, but I also recognize that blocking the bad stuff (spammers, ad servers, tracking cookies, etc.) will generally make for a less annoying and better Internet experience. Additionally, certain user communities (e.g., children) should not have unfiltered access, whereas other groups might need filtered access for legal reasons. As a final note, much like a firewall, having a web proxy can allow you to detect malicious incoming and outgoing traffic and block it, thus preventing problems from getting bigger.


  1. "Squid in the Middle" by Kurt Seifried, Linux Magazine, October 2012:
  2. Squid:
  3. Squid Config Examples:
  4. SquidClamav:

The Author

Kurt Seifried is an Information Security Consultant specializing in Linux and networks since 1996. He often wonders how it is that technology works on a large scale but often fails on a small scale.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Squid proxy server

    A proxy server provides safer and more efficient surfing. Although commercial proxy solutions are available, all you really need is Linux and an old PC in the attic.

  • Squid Bridge

    Caching proxies remember web pages and serve them up locally, saving both money and time. The most intelligent members of this family also remove dangerous content and provide transparent bridging.

  • Squid at Home

    Are your children wearing out their eyeballs on the Internet? Squid will help you impose some time limits and filter out inappropriate content.

  • SafeSquid

    If you are looking for a secure option for home surfing and want to protect your children against questionable web content, you need a filtering proxy. SafeSquid is a commercial proxy tool, but it comes with a free version for private users.

  • Security Lessons: ClamAV

    Protecting Windows clients from the big bad Internet.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More