elgio
(usa OpenSuSE)
Enviado em 18/08/2009 - 10:47h
Suponho que tenhas uma regra no iptables semelhante a esta, certo?
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to 3128
Seria a regra do proxy transparente, que captura a porta 80 e a joga na 3128. Ou isto ou algo semelhante, jogando para outra máquina.
Suponho também que detalhes de roteamento e DNS estejam 100% resolvidos, ou seja, se a regra acima for COMENTADA, todos continuam navegando perfeitamente, porém não via proxy.
Então, se entendi bem, o que queres é que para determinado DESTINO não se aplique a regra de proxy. Tipo, um cliente acessando
www.vivaolinux.com.br passe DIRETO, sem proxy. É isto?
Sendo APENAS UM IP DE DESTINO, a regra pode ser assim:
vivaolinux.com.br => 76.74.248.57
iptables -t nat -A PREROUTING -i eth0 -d ! 76.74.248.57 -p tcp --dport 80 -j REDIRECT --to 3128
Ou seja, ela não é aplicada para ip destino do VOL. Mas se quer mais de um destino, ai complica um pouco, pois o -d só permite um ip ou um IP/Mascara. AI tens que criar uma lista para isto:
# Cria a lista
iptables -t nat -N PROXY
# desvia tudo que for porta 80 para a lista PROXY
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j PROXY
# Agora na lista proxy:
# para cada IP que se deseja PULAR o proxy,
# uma regra como esta a seguir:
iptables -t nat -A PROXY -d 76.74.248.57 -j RETURN
...
# No fim, a regra que desvia
iptables -t nat -A PROXY -p tcp --dport 80 -j REDIRECT --to 3128
Se eu ENTENDI o que tu quer, seria isto.
Senão, mande mais detalhes;
[]'s