¿Cómo realizar el reenvío de puertos para el servidor GNS3 (túnel SSH)?

¿Cómo realizar el reenvío de puertos para el servidor GNS3 (túnel SSH)?

Tengo un servidor GNS3 y estoy intentando agregar reglas de iptable para que cuando alguien de mi equipo se conecte en el puerto 1100, sea enrutado a una IP interna como 192.168.122.2:22. Esta IP interna pertenece a un host bastión de un proyecto GNS3. El objetivo final es poder acceder a las direcciones IP internas desde una máquina local.

Así es como se ve mi IPTABLE (usando la IP pública falsa 1.2.3.4, por ejemplo):

Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    DNAT       tcp  --  0.0.0.0/0            1.2.3.4       tcp dpt:1100 to:192.168.122.2:22

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0          

Chain DOCKER (0 references)
num  target     prot opt source               destination         

Chain LIBVIRT_PRT (0 references)
num  target     prot opt source               destination

Desde mi máquina local, ejecuto el comando . Ubuntu es el nombre de usuario necesario para acceder a la IP interna del proyecto GNS3.ssh [email protected] -p1100

Después de ejecutar este comando, obtengo el siguiente resultado en el servidor GNS3 (1.2.3.4): cloud@gns3:~$ connect_to 192.168.122.2 port 1100: failed.

Parece que mi comando SSH está llegando al servidor GNS3 e intenta realizar un reenvío de puerto.Sin embargo, ¿está intentando reenviar al puerto 1100 en lugar del 22 por alguna razón? ¿Alguien puede identificar por qué?

Esto es lo que intenté hasta el momento:

  1. Establezca el reenvío de puertos ipv4 en 1
  2. establezca GatewayPorts y AllowTcpForwarding en 1 pulgada
  3. se ejecutó en la máquina local (creo que esto cambió algunas configuraciones en el servidor) -ssh -R 1.2.3.4:1100:192.168.122.2:22 [email protected]
  4. Regla agregada a IPtables usando el comandosudo iptables --table nat --append PREROUTING --protocol tcp --destination 1.2.3.4 --dport 1100 --jump DNAT --to-destination 192.168.122.2:22
  5. También se agregó Enmascaramiento:sudo /sbin/iptables -t nat -A POSTROUTING -j MASQUERADE

Respuesta1

En lugar de utilizar DNAT, debería REDIRECTAR según esta fuente:

https://fabianlee.org/2018/09/17/iptables-running-service-as-non-root-iptables-to-forward-from-privileged-port/

Entonces:

sudo iptables --table nat --append PREROUTING --protocol tcp --destination 1.2.3.4 --dport 1100 --jump REDIRECT --to-destination 192.168.122.2:22

información relacionada