Search squid archive

Re: How to set up squid?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Amos Jeffries wrote:
Yan Seiner wrote:
Amos:

Since ordinary mortals like me ;-) apparently cannot edit the wiki, here's my final form of the iptables and policy route rules.

First on the firewall:

iptables -t mangle -A PREROUTING -j ACCEPT -p tcp --dport 80 -s squidboxIP
iptables -t mangle -A PREROUTING -j MARK --set-mark 3 -p tcp --dport 80
iptables -A FORWARD -i internalif -o internalif -p tcp --dport 80 -j ACCEPT

Is this FORWARDING is not exactly part of the config. I would think routers should allow internal routes by default anyway. But I'll add it as a gotcha to be wary of anyway.

Normally yes. This is my firewall doing this; I DENY by default and then enable only what I need. Since my forward chain has a default DENY policy, then forwarding between internal if is forbidden. Also, this is with a 2.4 kernel; IIRC the forwarding rules changed quite a bit with 2.6 kernels so on a box with 2.6 kernel you may well be right.



ip rule add fwmark 3 table proxy
ip route add default via squidboxIP dev internalif table proxy

Then on the squid box itself:

iptables -t nat -A PREROUTING -s localnet/24 -i lan0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 iptables -t nat -A OUTPUT -s squidboxIP/32 -p tcp -m owner ! --uid-owner squid-user -m tcp --dport 80 -j REDIRECT --to-ports 3128

The first rule catches all of the requests that have been redirected by the firewall for proxying.

The second rule catches all of the outbound packets originating on the squidbox itself. This can have some weird side effects; my squid box also handles several ipcams and so all this traffic is now routed through squid. Note that you have to change the uid-owner to the uid of the squid process.

This is avoidable if the ipcams are sending traffic to the squid box for handling anyway. The NAT rules on the squid box need to omit catching any traffic already destined to itself:

iptables -t nat -A PREROUTING -s SQUIDIP -p tcp --dport 80 -j ACCEPT
Good point.  I'll add that.

--Yan


[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux