Как правильно направить входящий запрос на соединение SSH к общему IP-адресу локальной сети с несколькими компьютерами (таким образом, с несколькими серверами SSH)? - PullRequest
0 голосов
/ 05 декабря 2018

Допустим, у меня есть две машины mA (частный ip: 192.168.0.3) и mB (частный ip: 192.168.0.4) в одной локальной сети, публичный IP-адрес которых равен 2.2.2.2.На этих машинах есть пользователи с общим именем пользователя root.Кроме того, mA имеет пользователя uA, а mB имеет пользователя uB.

Я понимаю, как работает ssh связь от mA или mB с другим общедоступным IP 3.3.3.3.SSH из mA port 22 создает таблицу NAT в маршрутизаторе, которая соответствует 2.2.2.2 port 22 в качестве адреса источника.Таким образом, любой входящий ответ от ssh-запросов от 3.3.3.3 до 2.2.2.2 port 22 может быть преобразован обратно в mA port 22.Это возможно из-за существования NAT table entry for mA.

Теперь, если любой другой сервер за пределами локальной сети пытается ssh до mB, используя ssh root@2.2.2.2.Как маршрутизатор узнает, какая машина в локальной сети отправляет этот запрос SSH?(Поскольку в таблице NAT больше ничего не идентифицируется mB. И у mA и mB есть root).

Отличается ли это от того, что происходит при попытке ssh uB@2.2.2.2, где пользователь uB существует только в mB?

1 Ответ

0 голосов
/ 05 декабря 2018

Исходящие соединения

on mA: ssh 3.3.3.3

Это создает запись таблицы NAT на маршрутизаторе со следующей информацией о подключении

Source-IP   IP of mA
Source-Port >1024
Dest-IP     3.3.3.3
Dest-Port   22

Source-IP имеет значение NAT для 2.2.2.2, и каждый раз, когда на маршрутизатор поступает пакет с вышеуказанной информацией о соединении (Source-IP - это NAT-источник Source-IP), NAT-источник Source-IP транслируется обратно на IP-адрес mA.и пакет затем пересылается на mA.

Входящие соединения

Для входящих соединений информация о соединении не доступна на маршрутизаторе, это означает, что маршрутизаторне знает, что делать с пакетом, который имеет

Dest-IP     2.2.2.2
Dest-Port   22

в заголовке TCP / IP, предполагая, что сам маршрутизатор недоступен через SSH.Поэтому маршрутизаторы имеют возможность определять так называемые правила перенаправления портов .Правило переадресации портов имеет вид

[Dest-IP:]Dest-Port  -->  Real-Dest-IP:Real-Dest-Port

Если маршрутизатор принимает больше IP-адресов, правило переадресации портов также может различать разные Dest-IP.

Так что в вашем случае вам придетсясоздайте два правила переадресации портов, одно для mA и одно для mB.

  22  -->  mA:22
2222  -->  mB:22

К сожалению, вам необходимо подключиться к различным портам извне, чтобы получить доступ к вашим серверам.

С этими правилами команды ssh для доступа к вашим серверам следующие:

mA: ssh 2.2.2.2
mB: ssh -p 2222 2.2.2.2

Кстати: по соображениям безопасности не рекомендуется обращаться к вашим серверам напрямую как root.

...