iptables + 2 IPs

1. iptables + 2 IPs

Mario Oshiro
mario.oshiro

(usa Ubuntu)

Enviado em 26/11/2010 - 15:09h

Ola pessoal.
Estou tentando montar uma rede com as seguintes configuracoes:

* Link Embratel de 2MBis/s com dois IPs disponíveis para a internet.
* Uma maquina firewall com duas placas de redes, sendo que uma placa tem dois IPs do link embratel e a segunda placa voltada para a rede interna.

# ifconfig
eth0 Link encap:Ethernet Endereço de HW 00:08:54:da:0e:e8
inet end.: XXX.XXX.XXX.173 Bcast:XXX.XXX.XXX.175 Masc:255.255.255.240
endereço inet6: fe80::208:54ff:feda:ee8/64 Escopo:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1
pacotes RX:598920 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:507602 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:1000
RX bytes:603472927 (603.4 MB) TX bytes:124736845 (124.7 MB)
IRQ:18 Endereço de E/S:0xec00

eth0:0 Link encap:Ethernet Endereço de HW 00:08:54:da:0e:e8
inet end.: XXX.XXX.XXX.174 Bcast:XXX.XXX.XXX.175 Masc:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1
IRQ:18 Endereço de E/S:0xec00

eth1 Link encap:Ethernet Endereço de HW 44:87:fc:b6:a4:d7
inet end.: 192.168.0.1 Bcast:192.168.255.255 Masc:255.255.0.0
endereço inet6: fe80::4687:fcff:feb6:a4d7/64 Escopo:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1
pacotes RX:460011 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:555607 erros:0 descartados:0 excesso:0 portadora:2
colisões:0 txqueuelen:1000
RX bytes:102340189 (102.3 MB) TX bytes:580996296 (580.9 MB)
Memória:feac0000-feb00000

lo Link encap:Loopback Local
inet end.: 127.0.0.1 Masc:255.0.0.0
endereço inet6: ::1/128 Escopo:Máquina
UP LOOPBACK RUNNING MTU:16436 Métrica:1
pacotes RX:141 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:141 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:0
RX bytes:15312 (15.3 KB) TX bytes:15312 (15.3 KB)



O que quero fazer :
===================
eth0 seja a entrada para o servidor WEB da empresa.
eth0:0 seja a saida da rede interna para a internet.

Fiz as seguintes configuracoes:
===============================
sysctl.conf: net.ipv4.ip_forward=1

iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to 192.168.10.3


Meu Problema:
============
Nao consigo fazer a internet sair pelo IP de XXX.XXX.XXX.174
Eu preciso de algo como o comando abaixo (Mas este comando nao funciona.) :

iptables -t nat -A POSTROUTING -o eth0:0 -j MASQUERADE


Alguem sabe como solucionar o problema ?


Obrigado.
Mário Oshiro.


  


2. SNAT

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/11/2010 - 22:55h

se voce tem ip fixo não faça com a regra MASQUERADE essa regra e mais para ip dinamico apesar de funcionar normalmente com ip fixo. Use a seguinte regra:

iptables -t nat -I POSTROUTING -o eth0:0 -j SNAT --to-source xxx.xxx.xxx.174

Nesta caso o ip de origem das estaçoes privadas será xxx.xxxx.xxx.174


3. servidor web e client atras do mesmo firewall.

Mario Oshiro
mario.oshiro

(usa Ubuntu)

Enviado em 27/11/2010 - 00:46h

Tiago, obrigado pela dica.
Já corrigi meu iptables. A navegacao dos pcs da rede funcionam perfeitamente. O iptables ficou assim:
iptables -t nat -I POSTROUTING -o eth0 -j SNAT --to-source XXX.XXX.XXX.174

Abusando um pouco mais.
Atras do firewall tenho um servidor web e mais dois pcs.

a regra para o servidor de web fiz assim:
iptables -t nat -A PREROUTING -p tcp -d XXX.XXX.XXX.173 --dport 80 -j DNAT --to 192.168.10.3

Esta funcionando, mas acho que tbm não é a melhor maneira.

Digo isso porque quando tento acessar pela rede interna nao consigo acessar a aplicacao que roda no webserver ( cadastrei o host no dynalias ). Mas quando acesso de fora da rede interna funcina! Por exemplo, de casa funiciona. Nas maquinas da rede local ao servidor somente pelo ip da rede local.

Poderia ser o ideal, acessar a aplicacao pelo ip da rede local. Mas a aplicacao roda o google maps. E para registrar a API tenho que informar a url do site, ai cadastrei pelo dynalias que criei, se acesso pelo ip os mapas nao abrem.

Sera um problema de rota ou falta algo do iptables ?
O que vc acha ?

muito obrigado.


4. Re: iptables + 2 IPs

Jefferson Diego
Diede

(usa Debian)

Enviado em 27/11/2010 - 02:27h

Experimente condicionar a sua regra "iptables -t nat -A PREROUTING -p tcp -d XXX.XXX.XXX.173 --dport 80 -j DNAT --to 192.168.10.3" para atuar somente por acesso externo:

iptables -t nat -A PREROUTING -i ! eth1 -p tcp -d XXX.XXX.XXX.173 --dport 80 -j DNAT --to 192.168.10.3


5. Re: iptables + 2 IPs

leonardo Souza
lejoso

(usa Debian)

Enviado em 27/11/2010 - 09:28h

iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/24 -d XXX.XXX.XXX.173 --dport 80 -j SNAT --to 192.168.0.1

Isso deve funcionar, mas vai gerar tráfego desnecessário no firewall. O correto seria da rede local acessar direto pelo ip local do servidor de aplicação.


6. Re: iptables + 2 IPs

Perfil removido
removido

(usa Nenhuma)

Enviado em 27/11/2010 - 10:17h

Faz o seguinte especifique a internface de entrada onde esta a maquina local de onde voce quer acessar. E so adicionar a interface na sua regra assim.

iptables -t nat -A PREROUTING -i eth1 -p tcp -d XXX.XXX.XXX.173 --dport 80 -j DNAT --to 192.168.10.3

Tiago Eduardo Zacarias






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts