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