🔗 Linux traffic Interception with Squid and the Browser on the same box
- by Joshua N Pritikin
🔗 Outline
To Intercept web requests transparently without any kind of client configuration. When web traffic is rgenerated by the machine squid is run on.
NP: for most non-Windows boxes setting the http_proxy environment variable (http_proxy=”http://SQUIDIP:3128/”) is a preferred alternative to the below interception.
NP: other users have reported setting outgoing TOS and filtering on it instead of process gid to also be effective.
🔗 iptables configuration
- 
 Replace SQUIDIP with the public IP(s) which squid may use for
its listening port and outbound connections. Repeat each iptables
line one per squid outbound IP. Replace SQUIDIP with the public IP(s) which squid may use for
its listening port and outbound connections. Repeat each iptables
line one per squid outbound IP.
iptables -t nat -F  # clear table
# normal transparent proxy
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j REDIRECT --to-port 3127
# handle connections on the same box (SQUIDIP is a loopback instance)
gid=`id -g proxy`
iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner --gid-owner $gid -j ACCEPT
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination SQUIDIP:3127
🔗 Squid Configuration File
You will need to configure squid to know the IP is being intercepted like so:
http_port 3127 transparent
- 
 In Squid 3.1+ the transparent option has been split. Use
‘intercept to catch DNAT packets. In Squid 3.1+ the transparent option has been split. Use
‘intercept to catch DNAT packets.
http_port 3127 intercept
⚠️ Disclaimer: Any example presented here is provided "as-is" with no support
or guarantee of suitability. If you have any further questions about
these examples please email the squid-users mailing list.
Categories: ConfigExample
Navigation: Site Search, Site Pages, Categories, 🔼 go up