Iptables e proxy transparente (Squid) definitivo
Dica publicada em Linux / Configuração
Iptables e proxy transparente (Squid) definitivo
Pessoal,
Vi 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 vierem 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 configurado 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á!
A única diferença é que ao invés de especificar "-i eth1" você declara "-s SUA_REDE_LOCAL/MASCARA". O proxy transparente funcionará de forma correta!
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 você usa a interface e não a rede).
Abraço galera.
Vi 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 vierem 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 configurado 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 --dport 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 funcionará de forma correta!
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 você usa a interface e não a rede).
Abraço galera.