Como eu uso o NAT no iptables?

2

Eu tenho um domínio definido para o meu servidor, digamos example.com que está sendo encaminhado pelo meu roteador e está vinculado ao meu IP externo 11.111.111.111 e funciona bem se eu fizer ping no domínio ou fizer uma pesquisa, ele reconhece e me fornece o IP externo do domínio. Mas quando eu ouço em qualquer uma das portas que eu configurei para permitir, ele diz que elas estão fechadas. Qual regra devo definir para que isso seja encaminhado corretamente para o meu roteador?

eth0 é minha interface interna estática e meu loop de volta.

Gateway: 192.168.0.1

ifconfig:
eth0      Link encap:Ethernet  HWaddr 00:0e:7f:a9:10:54  
          inet addr:192.168.0.8  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20e:7fff:fea9:1054/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8175 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5730 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6186702 (6.1 MB)  TX bytes:1444662 (1.4 MB)
          Interrupt:20 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
por user240010 10.03.2014 / 18:14

1 resposta

1

Se você tiver uma LAN por trás de um roteador com NAT, poderá encaminhar as portas para o endereço IP público dos roteadores para um endereço particular e uma porta em sua LAN.

Você também pode definir algo geralmente chamado DMZ ou algo para uma máquina na sua LAN. Então todas as portas serão encaminhadas para essa máquina.

Tudo isso precisa ser feito no roteador e não nos servidores locais iptables . Há iptables irá funcionar na conexão com sua máquina e não com NAT.

Isso geralmente funciona bem, fora da sua LAN usando o endereço IP público do seu roteador. Ele também funciona da sua LAN usando o endereço privado do servidor. Mas se você usar seu endereço público de dentro de sua LAN, geralmente há problemas de conexão porque o roteador fica confuso. Existem soluções para adicionar regras de ip em seu roteador / NAT para que ele funcione, mas você terá outros problemas.

Sim, o NAT é um hack feio onde este é apenas um pequeno problema com o NAT. A solução real é usar o IPv6.

Para analisar isso, você precisa de uma máquina dentro da mesma LAN que o servidor e uma outra máquina fora de sua LAN. Você deve usar nmap do servidor com localhost , máquina local e usar o endereço privado e global para o servidor e durar da máquina fora de sua LAN para o endereço global do servidor / roteador. Tente também traceroute da sua máquina local para o seu servidor usando o endereço privado e global. Para uma análise mais detalhada, use wireshark de pontos estratégicos em sua LAN.

    
por Anders 11.03.2014 / 19:23