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;
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 10.1.1.1:3128
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 10.1.1.1
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 www.tuxnetworks.com while watching the access.log file then you should see something like this;
1342076113.358 1 10.1.1.14 TCP_HIT/200 437 GET http://www.tuxnetworks.com/ - NONE/- text/html