2

У меня проблема при использовании переадресации портов ssh и nat одновременно.

Ситуация:

Машина A работает на веб-сервере через порт 8080. Машина B - это Raspberry Pi, который работает как маленький маршрутизатор. Он имеет два сетевых интерфейса (eth0 и eth1). eth0 подключен к локальной сети и через нее к глобальной сети. eth1 подключен только к компьютеру A. Он запускает ddclient для подключения к dyndns.

Цель:

Я хочу безопасно подключиться к машине A к порту 8080 и т.д. Через ssh port forwarding.

Что я пробовал:

На моей локальной машине (MacBook) я использовал:

ssh -L 5903:127.0.0.1:5901 pi@pi.dynip.org

или же

ssh -L 5903:127.0.0.1:5901 pi@machine-b-ip

и я могу подключиться к серверу vnc на машине B с (только для целей тестирования):

vnc://127.0.0.1:5903/

Таким образом, я предполагал перенаправить порт 8080 с моей локальной машины на машину B и "nat" на машину A с такими правилами iptable:

iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE
iptables -A FORWARD --in-interface eth0 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth0 -m tcp --dport 8080 -j DNAT --to-destination 192.168.110.101:8080

Мой другой конфиг iptables был:

iptables -t nat -A PREROUTING -p tcp -i eth0 -m tcp --dport 9090 -j DNAT --to-destination 192.168.114.151:8080
iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE
iptables -A FORWARD --in-interface eth0 -s 192.168.178.20 -j ACCEPT
iptables -A FORWARD --in-interface eth0 -j DROP

Я также включил ssh GatewayPorts на машине B, но каждый раз, когда я хочу подключиться через:

http://127.0.0.1:8080/

Я получаю сообщение об ошибке "Отказано в соединении", и в журнале говорится, что "этот сервис не запущен". Но если я подключусь через:

http://ip-machine-b:8080/

оно работает.

Не могли бы вы мне помочь? Я попробовал несколько решений от удаленной и локальной переадресации ssh-портов, через ssh multi hops, nat и т.д., Но не смог найти для меня работающего решения.

Заранее спасибо, Доминик.

1 ответ1

0

Вам не нужно использовать все правила Iptables для маршрутизации на ваш второй ящик. вы можете сделать то же самое, что вы делаете с вашим соединением VNC

ssh ssh -L 8081:192.168.x.x:8080 pi@pi.dynip.org

Где 192.168.xx - это IP-адрес компьютера A

Затем вы можете открыть веб-браузер на локальном компьютере и подключиться к

 http:127.0.0.1:8081

Это позволит вам подключиться к внутреннему веб-сайту, и маршрутизация будет обрабатываться ssh. Ваш локальный порт 8081 будет перенаправлен через ssh на сервер ssh. Затем сервер отправит запрос на MachineA через порт 8080.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .