Я предполагаю, что следующее будет считаться взломом, но вот что:
У меня есть машины A, B и C.
B может открыть соединение с A, но A не может открыть соединение с B (из-за FW).
Работа: A <--- B
Не работает: A ---> B
Я хочу иметь возможность открыть соединение от A к B.
Есть ли способ (инструмент, предпочтительно инструмент ОС), позволяющий бесшовные инициирование соединения от A к B, вполне возможно, путем туннелирования поверх существующего соединения от B к A?
В конце концов, я хочу иметь возможность успешно подключаться по телнету от A к B:
telnet B [port number]
Или даже к машине C, к которой B имеет доступ, а A - нет. Из:
telnet C [port number]
Позже отредактируйте:
Мне предлагали «статическое» туннелирование. Но у меня было бы бесшовное решение.
Например, настройте, что попытка подключения к определенному диапазону IP-адресов назначения будет туннелироваться через B, где C - это динамически изменяющийся пункт назначения. Таким образом, telnet 80 будет подключаться к цели, проходящей через B
Вы не указали, на какой ОС работают эти устройства, поэтому я предполагаю, что это unix. Если это не так, поменяйте теги на свой вопрос. При этом сказано:
B% ssh A -R 2200:B:22
зарегистрирует вас в A, создавая туннель от A до B, так что, когда вы подключаетесь к порту A, ssh туннелирует ваши пакеты на порт 22 на B.
B% ssh A -R 2200:C:22
также будет работать при условии, что у B есть непрерывный сетевой путь к C; когда на A вы подключаетесь к порту 2200, ssh туннелирует вас на порт 22 на C.
Если вы используете UNIX или UNIX-подобные системы, изучите OpenSSH и его Tunnel
, TunnelDevice
, и PermitTunnel
config директивы. Если ваши системы поддерживают tun
устройств, должна быть возможность настроить ssh
и sshd
для создания туннеля точка-точка (уровень 3, по умолчанию) или Ethernet (уровень 2) между хостами A и B.
В любом случае вам нужно будет настроить устройства tun на A и B, как и на любом другом сетевом устройстве (т. Е. Назначить IP-адреса, добавить маршруты).
И, наконец, если вы хотите разрешить соединения от A к C через туннель A-B, вам необходимо убедиться, что хост B разрешает пересылку IP-пакетов.