matux
(usa Ubuntu)
Enviado em 27/10/2008 - 15:02h
Pessoal,
Ví inúmeros tópicos pela net sobre problemas com o uso do squid como proxy transparente com milhares de respostas que nunca funcionavam.
Depois de algum tempo de análise, cheguei a seguinte conclusão:
1- Todos os "tutoriais" indicam o uso desta regra para redirecionar o tráfego da rede local para a internet na porta 3128:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
Essa regra tenta fazer com que as requisições que vinherem da rede interna para acesso web (no caso eth1 na porta 80) sejam redirecionadas para a porta 3128 usada pelo squid. Porém mesmo o squid estando configurando como proxy transparente, essa regra não o ativava.
Mas se você usar esta regra aqui ao invés da regra de cima tudo irá funcionar "normalmente", pelo menos o proxy transparente irá!
iptables -t nat -A PREROUTING -s SUA_REDE_LOCAL/MASCARA -p tcp --dpot 80 -j REDIRECT --to-port 3128
A única diferença é que ao invés de especificar (-i eth1) você declara (-s SUA_REDE_LOCAL/MASCARA) o proxy transparente fuincionará e forma correta.
The question is...
A pergunta é: Porque não funciona com a especificação da interface? Porque só funciona com a especificação da rede local?
Obs; Todos que relataram ter problemas com o uso do iptables e squid transparente, solucionariam seus problemas facilmente com essa observação. Todos usavam a regra que não funciona (a que vc usa a interface e não a rede).
Abraço Galera.