Thursday, 12 July 2012

HOWTO: Squid 3 Transparent Proxy

A lot of the stuff on the Internet describing how to do transparent proxy is outdated and does not work on more recent distro's that sport Squid V3.

This guide is Googles top hit for "squid transparent proxy" but it doesn't work. If you attempt to configure Squid 3 using the "httpd_accel" directives provided in that post squid will simply fail to start.

It seems that the developers of Squid 3 have streamlined the configuration of squids transparent proxy feature down to a single word.

If you find the http_port directive in your squid.conf and add the word "transparent" to the end of it then you have basically configured squid as a transparent proxy.

Find a line like this;

http_port 3128

Add "transparent" to the end so that it looks like this;

http_port 3128 transparent

Restart squid and you are done. All that is required now is to redirect traffic on your firewall to go to the proxy.

You can use your iptables firewall to redirect web traffic (port 80) to your squid proxy with  these commands;

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

This assumes that your LAN adaptor (the adapter that your client requests are coming in on) is eth0 and that the IP address of your proxy is

You can test that your proxy is working by accessing the Internet from a network client on your LAN and monitoring squids access log file;

tail -f /var/log/squid3/access.log

If you browse to while watching the access.log file then you should see something like this;

1342076113.358      1 TCP_HIT/200 437 GET - NONE/- text/html


1 comment:

Squidblacklist said...

Great article! Only one problem, Free Blacklists Suck!

We specialize in serving intelligent network administrators high quality blacklists for effective, targeted inline web filtering.

There is a demand for a better blacklist.

With few alternatives available, we intend to fill that gap.

It would be our pleasure to serve you,


Benjamin E. Nichols