Как сделать переадресацию портов для сервера GNS3 (SSH-туннелирование)?

Как сделать переадресацию портов для сервера GNS3 (SSH-туннелирование)?

У меня есть сервер GNS3, и я пытаюсь добавить правила iptable, чтобы когда кто-то из моей команды подключался к порту 1100, он направлялся на внутренний IP, например 192.168.122.2:22. Этот внутренний IP принадлежит хосту-бастиону проекта GNS3. Конечная цель — иметь возможность подключаться по протоколу shh к внутренним IP-адресам с локальной машины.

Вот как выглядит мой IPTABLE (для примера я использую поддельный публичный IP-адрес 1.2.3.4):

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

На локальном компьютере я выполняю команду . Ubuntu — это имя пользователя, необходимое для доступа к внутреннему IP-адресу проекта GNS3.ssh [email protected] -p1100

После выполнения этой команды я получаю следующий вывод на сервере GNS3 (1.2.3.4): cloud@gns3:~$ connect_to 192.168.122.2 port 1100: failed.

Похоже, моя команда SSH достигает сервера GNS3 и пытается выполнить переадресацию портов.Однако по какой-то причине он пытается перенаправить на порт 1100 вместо 22. Может ли кто-нибудь определить, почему?

Вот что я попытался сделать:

  1. Установите переадресацию порта ipv4 на 1
  2. установите GatewayPorts и AllowTcpForwarding на 1 в
  3. запущено на локальной машине (я думаю, это изменило некоторые конфигурации на сервере) -ssh -R 1.2.3.4:1100:192.168.122.2:22 [email protected]
  4. Добавлено правило в IPtables с помощью командыsudo iptables --table nat --append PREROUTING --protocol tcp --destination 1.2.3.4 --dport 1100 --jump DNAT --to-destination 192.168.122.2:22
  5. Также добавлено Маскарадинг:sudo /sbin/iptables -t nat -A POSTROUTING -j MASQUERADE

решение1

Вместо использования DNAT следует использовать REDIRECT, согласно этому источнику:

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

Так:

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

Связанный контент