Tenho um proxy transparente e gostaria que uma maquina não passase no proxy, alguem poderia me passa como é a regra de nat no iptables para isso?
ex. ip maquina lical - 192.168.1.5
ip servi interno - 192.168.1.1
ip serv externo - 200.201.1.20
Tenho um proxy transparente e gostaria que uma maquina não passase no proxy, alguem poderia me passa como é a regra de nat no iptables para isso?
ex. ip maquina lical - 192.168.1.5
ip servi interno - 192.168.1.1
ip serv externo - 200.201.1.20
iptables -t nat -A PREROUTING -s ! 192.168.1.5 -p tcp --dport 80 -j REDIRECT --to-ports 3128
Esta regra cria uma excessão no redirecionamento para o squid.
ou
iptables -t nat -A PREROUTING -p tcp -m iprange --src-range $INTERNALRANGE -d $ANY --dport 80 -j REDIRECT --to-ports 3128
Esta opção de reange funciona pra mim dependendo do serviço em que uma estação vai ter que alcançar. No caso da Caixa, o range tem dado erro justamente pelo squid
#Variáveis:
lan = 192.168.1.0/24
estacao1 = 192.168.1.5/32
mundo = 0/0
# Libera acesso externo ao IP - NAT
$iptables -t nat -A POSTROUTING -s $estacao1 -d $mundo -o eth1 -j MASQUERADE
# Libera forward na porta 80
$iptables -A FORWARD -p tcp -s $estacao1 -d $mundo --dport 80 -j ACCEPT
$iptables -A FORWARD -p tcp -d $estacao1 -s $mundo --sport 80 -j ACCEPT
# Excessão à regra de redirecionamento
$iptables -t nat -A PREROUTING -p tcp -i eth0 -s $estacao1 -d $mundo --dport 80 -j RETURN
# Regra que altera o fluxo de saída para o proxy
$iptables -t nat -A PREROUTING -p tcp -i eth0 -s $lan -d ! $lan --dport 80 -j REDIRECT --to-port 8080
explicacoes:
eth0 = ligado ao hub
eth1 = ligada ao router
8080 = porta do proxy
com essa regra vc so poderá especificar 1 ip que no seu caso eh o 5, caso queira outros ips?iptables -t nat -A PREROUTING -s ! 192.168.1.5 -p tcp --dport 80 -j REDIRECT --to-ports 3128
ai te recomendo usar o snat
texo retirado da foca linux10.4.3 Fazendo SNAT
SNAT (source nat - nat no endereço de origem) consiste em modificar o endereço de origem das máquinas clientes antes dos pacotes serem enviados. A máquina roteadora é inteligente o bastante para lembrar dos pacotes modificados e reescrever os endereços assim que obter a resposta da máquina de destino, direcionando os pacotes ao destino correto. Toda operação de SNAT é feita no chain POSTROUTING.
caso seja so o 1 ip, entao deixa essa regra mesmo.
Basta uma unica linha imediatamente antes da sua regra de redirecionamento fazendo um ACCEPT p/ o IP que vc quer que contorne o proxy transparente.
iptables -t nat -A PREROUTING -s IP_SEM SQUID -p tcp --dport 80 -j ACCEPT
O mesmo vale para evitar que um dado destino seja alcançado utilizando o squid.
[]'s
isso é o q eu uso tbm... e sempre funcionou sem precisar colocar outras regras...Postado originalmente por SysRq
eu coloquei TODAS as regras necessárias pra fazer o que o nosso colega pediu, pq não vi o firewall dele, não sabendo assim o que já tinha ou não.
por isto está explicadinho tb o que faz cada uma das linhas.
Olá Whinston
Na sua terceira regra, onde esta
$iptables -t nat -A PREROUTING -p tcp -i eth0 -s $lan -d $mundo --dport 80 -j RETURN
não seria
$iptables -t nat -A PREROUTING -p tcp -i eth0 -s $estacao1 -d $mundo --dport 80 -j RETURN
que vc queria dizer?
[]'s
exatamente, tanx!Postado originalmente por SysRq
abs