elgio
(usa OpenSuSE)
Enviado em 27/02/2009 - 13:21h
ruchardandrade: perfeito. Tuas respostas foram ótimas e assino embaixo.
Exceto esta última do desvio local!
Se o proxy está nesta máquina e queres desviar conexões da porta 80 para 3128 a tua regra iptables:
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 3128
irá gerar um looping de roteamento!
Tu, no teu navegador local, acessa um site. O iptables desvia LOCALMENTE para a porta 3128. O squid atende. Por sua vez o squid irá buscar a requisição via porta 80 e irá, ugualmente, cair na mesma regra iptables.
Captou?
Se o redir for para outro IP, tudo bem:
#iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to OUTRO_IP:3128
Mas para ele mesmo cai neste problema.
Para sair desta situação, muito embora seja estranha (porque alguém iria navegar com proxy no servidor de proxy?) só mesmo usando owner, não capturando os pacotes gerados pelo usuário do squid. A diretiva owner do iptables só pode ser usada localmente pois o identificador do usuário não viaja junto com os pacotes!
Exemplo: (supondo que o owner que roda o squid seja proxy, com o UID sendo 13, fato comum no Ubuntu)
# deixa sairem conexoes na porta 80 originadas pelo squid
iptables -t nat -A OUTPUT -m owner --uid 13 -p tcp --dport 80 -j ACCEPT
# captura as demais
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 3128
(este tópico já fugiu muito do esperado pelo seu autor)