NAT baseado em porta com iptables

0

Em eth0 port temos IP público e eth1 temos IP 10.31.0.1 que fornece DHCP e serviço Squid.

As portas 8080,53,67,80,443 estão abertas. Agora, para um aplicativo, temos que abrir 1521.844 portas para que ele possa acessar as portas do servidor remoto 1521.8443.

Mas apenas abrir a porta não está nos ajudando a conectar ao servidor remoto. Portanto, precisamos ativar o NAT para essa solicitação de porta específica. Por quais comandos iptable podemos realizar NAT-ing baseada em portas?

    
por user258802 01.10.2013 / 07:45

2 respostas

1

Você pode querer ler alguma documentação, pois o netfilter / iptables pode ser complicado. Aqui estão alguns bons documentos, mesmo que um pouco desatualizados.

Para o que você precisa fazer, você precisa adicionar uma regra na tabela nat, antes que ela chegue ao código de roteamento, daí o PREROUTING. Isso ocorre porque, após a decisão de roteamento, ele já decidiu que o pacote era para o seu roteador e não para o servidor real.

Você precisará de algo assim:

# iptables -t nat -A PREROUTING -p tcp --dport 1521 -i eth0 \
  -j DNAT --to 5.6.7.8:1521

Substituindo isso pelo endereço IP da máquina que receberá os pacotes.

    
por 01.10.2013 / 13:20
0

Siga estas etapas:

  1. Ativar o encaminhamento de IP no kernel:

    echo 1 > /proc/sys/net/ipv4/ip_forward

  2. Liberar as regras de encaminhamento:

    iptables -F FORWARD

  3. Defina de modo que somente portas específicas sejam NATs deste intervalo de IP da LAN:

    iptables -t nat -A POSTROUTING -o eth0 -s 10.31.0.0/16 -p tcp --dports 1521,8443 MASQUERADE

por 16.12.2013 / 05:08