Iptables – Local transparent proxy

iptablessquidtransparent-proxy

I have an application that does not support proxy but I need to send it's traffic to a local proxy.
I want to set IPTABLES to transparently redirect traffic to a given IP and PORT (80) to be intercepted and redirected to the local proxy.
Unfortunately all examples I've found assume that the trasnsparent proxy is set in a GW doing NATTING.
Is it possible to redirect the traffic to a transparent proxy (SQUID) without having to NAT?
I'd appreciate an example

Best Answer

Yes, it is possible. You can use policy routing in Linux machine to redirect traffic to squid proxy as shown in this page.

To summarize the steps:

  1. Setup mangle rule in iptables to mark traffic to be redirected.
  2. Setup another routing table with default route towards squid machine.
  3. Setup an IP rule to use the new defined routing table when packet is marked according to value used in mangle rule.
  4. Make sure iptables allow traffic from clients IPs to squid machine.