Regra Iptables [RESOLVIDO]

1. Regra Iptables [RESOLVIDO]

Flávio Natario Gouveia
flaviong

(usa CentOS)

Enviado em 22/07/2010 - 09:34h

Desde já agradeço a todos pela ajuda.

Tenho dois programas em minha rede que usam a porta 80 e necessitam passar por fora de meu squid (8080) para funcionar.
Para tanto, preciso inserir esses dois IPs como exceção a minha regra normal de direcionamento: 200.201.174.0/24 e 201.57.66.52

A regra da rede 0 é a seguinte:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 80 -j DNAT --to $ip_out:8080

Na segunda linha havia feito a seguinte alteração para funcionar com o primeiro IP:
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -d ! 200.201.174.0/24 --dport 80 -j DNAT --to $ip_out:8080

e funcionou normalmente.
Quando batia para qualquer endereço da rede 200.201.174 ele saia para o meu firewall pela porta 80 sem redirecionar para a 8080.

Preciso montar um regra portanto para colocar o segundo IP evitando o redirecionamento.
* Já tentei dar espaço entre um IP e outro,
* Já tentei colocar 1ºIP, 2ºIP
* Já tentei colocar -d ! 1ºIP -d ! 2ºIP
* Já tentei colocar -d ! 1ºIP ! 2ºIP
* Já tentei colocar os dois IPs em uma variável com espacço entre eles


Por favor, peço a ajuda de vocês!!!

Grande abraço,

Flavio Gouveia


  


2. Re: Regra Iptables [RESOLVIDO]

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 22/07/2010 - 09:51h

faça uma regra para cada um. Faça uma regra, faça funcionar do jeito que vc quer e, em seguida, COPIE tal regra (que funcione) e altere apenas seus dados.

que eu saiba vc pode ter uma gama de endereços de rede (192.168.x.y/26, por ex) mas não dois ou mais endereços em uma só regra.


3. Re: Regra Iptables [RESOLVIDO]

Flávio Natario Gouveia
flaviong

(usa CentOS)

Enviado em 22/07/2010 - 12:09h

Fala Irado,

Se eu colocar uma regra após a outra não rola.
Já fiz isso:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -d ! 200.201.174.0/24 --dport 80 -j DNAT --to $ip_out:8080
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -d ! 201.57.66.52 --dport 80 -j DNAT --to $ip_out:8080

Não sou especialista em iptables, mas acredito que a leitura de regras ocorra em modo sequencial. Deste modo, quando uma requisição da 192.168.0.qualquemáquina bater na primeira regra, ela já vai ser redirecionado, nem passando para a 2ª linha.

Valeu a tentativa e aguardo mais sugestões pois o problema continua!!! :-(





4. Re: Regra Iptables [RESOLVIDO]

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 22/07/2010 - 15:05h

êrro de posição:
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -d ! 200.201.174.0/24 [...]

passa para:

iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp ! -d 200.201.174.0/24 [...]

a semântica muda de "destination NOT.. " para "NOT destination.."

/veneno explicito
não ligue, Linux é assim mesmo, como é feito num bazaar (feira) êles esperam vc estar acostumado com alguma coisa para pode mudar e deixar vc enlouquecer ;)
/end veneno

contudo, quando vc chama a regra errada, a mensagem de êrro aparece bem claramente no terminal.. vai me dizer que JUSTAMENTE nêsse instante vc virou de lado pra olhar a banda passar?



5. Re: Regra Iptables [RESOLVIDO]

Flávio Natario Gouveia
flaviong

(usa CentOS)

Enviado em 22/07/2010 - 17:47h

Irado,

Tentei invertendo a semântica como você sugeriu e também não rolou.

Resolvi assim:
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -d 201.57.66.52 --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -d 200.201.174.0/24 --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 80 -j DNAT --to $ip_out:8080

Valeu a força.

Abraço,

Flávio Gouveia


6. está vago..

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 22/07/2010 - 21:31h

acho que vc não percebeu o espirito da coisa. Reveja meu post anterior e observe: refiro-me ao '!' na sua regra; ao invés de ".. -d ! .." vc deve usar ".. ! -d.. "

BTW, vc não está mencionando a eventual mensagem de êrro, então fica complicado saber O QUE não funciona.


7. Re: Regra Iptables [RESOLVIDO]

Flávio Natario Gouveia
flaviong

(usa CentOS)

Enviado em 23/07/2010 - 09:15h

Percebi sim irado, só não notei diferença de comportamento mudando de "-d !" para "! -d". Em ambos os casos o 2ºIP (segunda linha) acabava indo para 8080 pois a regra falava:

Tudo que vier da rede 0 com exceção do 1ºIP vai para a porta 8080
O 2ºIP portanto já saia do script.

Só não informei erro pois não existia.
O iptables rodava, só não funcionava como eu queria ;-)

Abraço!!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts