Encaminha a conexão recebida em um adaptador para outro adaptador?

0

Eu tenho dois adaptadores em um servidor.

Para o exemplo, vamos chamá-los de ad1 e ad2.

 ad1, ip = xxx.xxx.x.x (internet connection)
 ad2, ip = 192.168.1.1 (this system is the gameway for 192.168.1.5)

Eu preciso encaminhar as conexões que chegam em ad1 na porta 1234 para um ip em ad2 que é 192.168.1.5 na porta 1238 .

Eu preciso saber como fazer isso para o UDP e o TCP, mas em comandos separados, pois algumas vezes eu preciso encaminhar o UDP e algumas vezes precisarei encaminhar o TCP.

Sou muito novo no uso do iptables, então estou apenas procurando por alguma ajuda.

    
por Nathan Fiscaletti 18.05.2017 / 19:14

1 resposta

0

Obrigado ao amauk no reddit por esta resposta. Pensei em publicá-lo aqui também, caso alguém encontre essa questão.

Primeiro, você precisa ativar o encaminhamento de IP.
Isso está desabilitado por padrão, por motivos de segurança.

vim /etc/sysctl.conf e net.ipv4.ip_forward = 1

Em seguida, execute o seguinte para confirmar as alterações e recarregar a configuração do sysctl

sysctl -p

Então você precisa escrever as regras do IPTables para encaminhar as conexões.

TCP

iptables -t nat -A PREROUTING -i ad1 -p tcp -m tcp --dport 1234 -j DNAT --to-destination 192.168.1.5:1238

UDP

iptables -t nat -A PREROUTING -i ad1 -p udp --dport 1234 -j DNAT --to-destination 192.168.1.5:1238

Pacotes recebidos da interface ad1 -i ad1 que correspondem aos critérios (TCP / UDP + número da porta), NAT ao destino: porta

Você também precisará salvar as regras do IPTables de alguma forma e restaurá-las durante a inicialização. Exatamente como você faz isso é específico da distribuição.

editar
Para excluir regras, use -D (delete) no lugar de -A (append)

Por exemplo,
Para excluir a regra de encaminhamento de TCP

iptables -t nat -D PREROUTING -i ad1 -p tcp -m tcp --dport 1234 -j DNAT --to-destination 192.168.1.5:1238
    
por 26.05.2017 / 00:29