Proxy transparente e conectividade social da caixa
Bom, acho que todos já sabem que a novela dos proxys e conectividade social da caixa nunca vai ter fim, trago aqui mais uma dica entre as centenas delas encontradas na internet, inclusive aqui, para resolver esse problema.
De cara sabemos que tem que haver uma regra de exceção na parte em que é redirecionado todo o tráfego da rede para o servidor proxy, fiz de um jeito diferente dos que já vi e obtive sucesso. Segue abaixo como fiz...
# mascarando a interface e liberando o acesso direto a caixa
for cx in `cat /etc/caixa.lst`
do
iptables -t nat -A PREROUTING -i eth1 -p tcp -d ! $cx --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
done
Esse é o final do meu script de firewall, declarei a variável "cx" onde ela vai ler o arquivo no /etc/caixa.lst e lá dentro eu coloco os IPs que não passarão pelo proxy, ou seja, da caixa. A exclamação depois do "tcp -d" significa exceção, ou seja, ele vai ler o que está escrito dentro do arquivo caixa.lst, se a solicitação do usuário for o mesmo endereço que estiver no arquivo ele não passara pelo proxy. assim saindo direto. Dentro desse arquivo deve ser colocado o endereço de ip da caixa exemplo 200.201.174.207, se for adicionar mais endereços de ip para não passar pelo proxy lembre-se que deve ser adicionado um ip por linha ex:
200.201.174.207
200.201.174.203
E assim por diante.
Bom, sem mais, espero ter sido útil, um grande abraço a todos, e viva o LINUX!!!
[1] Comentário enviado por removido em 29/06/2007 - 14:03h
Não funciona corretamente dessa forma (testado aqui no meu firewall) pois o iptables interpreta as chains na ordem e no momento que casar uma regra ela é executada e e cai fora. Então se você tentar o ip 203 e a primeira regra verificar o 207, então 203 <> 207 e vai ser redirecionado para a porta 3128 sem verificar as demais regras abaixo.
A forma funcional é utilizando o RETURN. Da uma olhada no guia foca que tem um ótimo exemplo sobre isso.