
У меня следующий сценарий
Local Network | Global Network
|
|
|
|
|
|
|
+------------+ +-----------+ | +----------+ +----------------+
| client A | -----------> | server A | <--------------------> | server B | ---------------> | Global Network |
+------------+ +-----------+ | +----------+ +----------------+
|
|
Задача на будущее:
Перевести весь трафик с server A
на server B
. Поскольку все туннельные протоколы закрыты в server A
, я подумал, что обратный ssh — хороший вариант.
Для создания обратного ssh я использую следующую команду:
ssh -fNT -R 4000:localhost:22 [email protected] -i <private-key>
Теперь server A
я вижу, что порт 4000
открыт. Но я не знаю, как перевести весь трафик наserver B
решение1
Моя первая мысль — создать интерфейс tun и настроить маршрутизацию соответствующим образом. Как вы видите ниже из ssh man доступен следующий аргумент командной строки.
-w local_tun[:remote_tun] Запрашивает переадресацию туннельного устройства с указанными устройствами tun(4) между клиентом (local_tun) и сервером (remote_tun). Устройства могут быть указаны числовым идентификатором или ключевым словом «any», которое использует следующее доступное туннельное устройство. Если remote_tun не указан, по умолчанию используется «any». См. также директивы Tunnel и TunnelDevice в ssh_config(5).
Если директива Tunnel не установлена, будет установлен режим туннеля по умолчанию, который является «точка-точка». Если требуется другой режим пересылки Tunnel, то его следует указать перед -w.
Этот ответ содержит более подробную информацию.
https://unix.stackexchange.com/questions/525217/create-network-interface-from-ssh-tunnel