linuxfirewalliptablesgatewaytransparentproxy

How to use iptables in linux to forward http and https traffic to a transparent proxy


I have a Ubuntu linux system acting as a gateway system with two interfaces on it. One interface is for the local network and one interface is for the internet. I am able to route traffic through it with no problem at all. I use two iptables rules to forward outbound traffic from the internal interface:

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT

I now need to create an iptables rule that filters out and redirects all tcp port 80 and 443 traffic leaving my network through the eth1 interface and send it to a proxy server that resides on a loopback interface on tcp port 9090.

I have been searching all over SO but I have not been able to find an example that works. Is there an efficient way to do this?


Solution

  • iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 9090
    

    HTTPS cannot be used with a transparent proxy. There are some hacks, but it doesn't make any sense and is useless.