Encaminhamento de porta do túnel SSH

Encaminhamento de porta do túnel SSH

Tenho 2 VMs, uma com endereço IP privado (atrás do NAT) e outra com endereço público. Fiz túnel SSH com NAT. O objetivo é conectar a VM pública à rede por trás do NAT e encaminhar algum tráfego através dela. O objetivo é falsificar um aplicativo executado nesta rede com outro semelhante em um servidor público (para fins de teste).

Então eu fiz algo assim:

Ativar túnel

sudo ssh [email protected] -w 0:0

Endereçamento

ifconfig tun0 10.253.253.1/30 pointopoint 10.253.253.2 - Local

ifconfig tun0 10.253.253.2/30 pointopoint 10.253.253.1 - Remote

Adicionando rota à rede interna

ip route add 10.0.3.0/24 via 10.253.253.1

Para comunicação bidirecional (na verdade, não tenho certeza sobre esta)

sudo arp -sD 10.253.253.1 ens18 pub

Encaminhamento de porta no local

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -I FORWARD 1 -s 10.253.253.1 -j ACCEPT
sudo iptables -I FORWARD 1 -d 10.253.253.1 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 10.253.253.1 -j MASQUERADE

E, na verdade, isso está quase funcionando, quando desativo o serviço de aplicativo no host local, ele encaminha o tráfego para o host remoto. Mas há um problema principal: este servidor local está enviando solicitações na porta 4660 e outros (aplicativos internos) respondem na porta 4661. Parece que preciso de uma regra adicional para encaminhar todo o tráfego de entrada na porta 4661 para a interface do túnel para a porta 4660. Como para lidar com isso? Não estou muito familiarizado com o iptables, mas tentei algo assim, mas não funcionou:

iptables -A PREROUTING -t nat -i eth0 -p udp --dport 4661 -j DNAT --to 10.253.253.1:4660
iptables -A FORWARD -p udp -d 10.253.253.1 --dport 4660 -j ACCEPT

Responder1

Ok, fiz funcionar:

iptables -A PREROUTING -t nat -i eth0 -p udp --dport 4661 -j DNAT --to 10.253.253.2:4661(remote tun address)

informação relacionada