On 01/04/11 06:27, Saurabh Agarwal wrote:
That link http://wiki.squid-cache.org/ConfigExamples/Intercept/LinuxDnat was helpful Amos. Though instead of a mangle INPUT chain rule(as mentioned in the link) in iptables I had to add a mangle PREROUTING Chain rule in iptables as follows iptables -t mangle -A PREROUTING -p tcp -i ! lo --dport 3128 -j DROP This rule gets is allowing cachemgr access to port 3128 while deny access to port 3128 from other machines. The link http://www.faqs.org/docs/iptables/traversingoftables.html tells that mangle PREROUTING table chain is traversed first than nat PREROUTING table.
>
DO we need to modify the text in there?
Thanks. I've re-tested and you are right about using PREROUTING. Wiki changed.
Do not add a cachemgr exception to the DROP rule. The point of that rule is that absolutely *zero* forward-proxy requests are permitted to the intercept port. The NAT handling screws with the request and TCP details in ways which open the proxy to some nasty little security vulnerabilities (CVE-2009-0801 describes the combined result).
The recommended practice is to use some randomly chosen port for the NAT intercept receiving. With that strict rule in the wiki protecting it. Leaving the well-known 3128 as a second forward-proxy port available for management and other desired accesses.
Your lo restriction rule you could leave unchanged as extra limit on the way to contact the management access port. Or move to the filter table INPUT chain and use REJECT.
Amos -- Please be using Current Stable Squid 2.7.STABLE9 or 3.1.11 Beta testers wanted for 3.2.0.5