hugoalvarez
(usa Debian)
Enviado em 11/10/2007 - 17:30h
Predator,
parte das diferenças são apenas organizacionais, e em parte elas estavam influenciando, explicando as alterações:
##Essas são suas regras que removi, certo,
#libera a porta 80 para rede local#
iptables -A INPUT -p TCP -i bond0 -s 192.168.0.0/24 --dport 80 -j ACCEPT
#libera porta 3128 tambem para a rede local#
iptables -A INPUT -p TCP -i bond0 -s 192.168.0.0/24 --dport 3128 -j ACCEPT
Removi as duas porque já estava especificado anteriormente no próprio script que INPUTs da rede local devem ser aceitos pelo firewall, nessa regra:
$iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT (relação de confiança)
Nas regras referentes ao proxy adicionei a linha de bloqueio (linha1) abaixo, até essa parte do script, o firewall está aceitando todas as conexões na porta 80, não preciso especificar isso e nem especificar que ele aceite as conexões da porta 3128 na chain PREROUTING porque já foi especificado na INPUT (de relação de confiança), a chain PREROUTING trata os pacotes que vão sofrer alterações antes de serem enviados ao destino, no caso tudo que entrar da rede 192.168.0.0/24 com destino a porta 80 de algum host deve ser redirecionado para a porta 3128 do proxy. Até aqui o padrão é redirecionar todos, exceto os que eu especificar como bloqueados (linha1), é necessário especificar um dos ou todos que devem ser bloqueados antes que os pacotes que eles enviarem cheguem na linha que podem ser redirecionados para não causar conflito de regras, por isso coloquei nessa ordem:
##Ativa Proxy Transparente ####
linha1: $iptables -t nat -A PREROUTING -i bond0 -s 192.168.0.xxx --dport 80 -j DROP
linha2: $iptables -t nat -A PREROUTING -i bond0 -p tcp --dport 80 -j REDIRECT --to-port 3128
se eu colocasse assim:
linha2: $iptables -t nat -A PREROUTING -i bond0 -p tcp --dport 80 -j REDIRECT --to-port 3128
linha1: $iptables -t nat -A PREROUTING -i bond0 -s 192.168.0.xxx --dport 80 -j DROP
Não funcionaria bem porque a regra que manda redirecionar todos pacotes da porta 80 para a 3128 foi processada primeiro que a regra que manda bloquear o host desejado, a mesma coisa com o POSTROUTING que estava lá na primeira linha, o POSTROUTING sempre coloco em ultimo para classificar como amscarados todos os hosts que conseguiram passar pelas regras sem se qualificar em nenhuma,
Essa idéia da parte organizacional de como as regras vão funcionar sem conflitos e prevendo o retorno é mais detalhada no tutorial de iptables do eriberto, que foi minha fonte de consulta durante bastante tempo até eu começar escrever minhas próprias regras e entender scripts escritos por outros linuxers hehehe.
http://www.eriberto.pro.br/iptables/
Espero ter ajudado,
Até mais.