Получите доступ к ssh-серверу за маршрутизатором во встроенной системе, используя установленное сокетное соединение

0

Я разработал встроенное приложение под управлением Linux для удаленного управления вводом / выводом. Приложение открывает сокетное соединение с моим сервером, чтобы периодически сообщать о состоянии ввода-вывода и получать команду для локального выполнения. В целях отладки я хотел бы иметь возможность подключиться к серверу ssh, работающему во встроенной системе. Я не могу обновить конфигурацию маршрутизатора, чтобы установить переадресацию портов. Мне нужно иметь возможность использовать сокет, установленный встроенной системой, для доступа к ssh-серверу. Понятия не имею, возможно ли это и как это сделать. Может кто-нибудь дать мне предложение? Заранее спасибо. Marco

user2626533
источник

Ответы:

0

Невозможно использовать существующий сокет для другой цели. Это все равно, что ехать на поезде вниз по шоссе - оно просто не сработает (или нет, если сначала не выкопать шоссе и не проложить рельсы).

Так какие у тебя варианты?

Ну, есть несколько.

Одним из них будет запуск VPN-сервера на вашем сервере, к которому подключается ваша встроенная система. Это эффективно пробьет ваш маршрутизатор и создаст новую сеть, соединяющую вашу встроенную систему и ваш сервер вместе. Затем вы можете ssh через эту новую сеть. Я часто использую vtun 1 для этого, так как он легкий, имеет много разных вариантов конфигурации (включая виртуальный Ethernet, который действительно хорош 2 ).

Вы можете сделать так, чтобы ваша встроенная система получала команды с вашего сервера через существующий канал, и если она получит правильную команду, она откроет SSH-соединение с вашим сервером, включая переадресацию SSH-порта. Это откроет несвязанное TCP-соединение между встроенной системой и вашим сервером, и вы сможете делать то, что вам нравится. Например, он может подключить локальный сокет на сервере к демону SSH, работающему во встроенной системе, так что вы затем подключитесь к локальному хосту по ssh, но с другим номером порта, и он перенаправит это соединение во встроенную систему.

Мой любимый вариант - использовать VPN, поскольку он открывает целый новый мир возможностей, а не только один SSH-туннель.


1 vtun доступен в стандартных репозиториях Debian / Ubuntu / etc apt.

2 Мой рабочий стол и ноутбук подключены к двум моим серверам, которые также подключены друг к другу, используя vtun с виртуальным Ethernet-соединением ( tap ) и TCP-соединениями, плюс quagga для маршрутизации BGP. Мой ноутбук может разговаривать с моим рабочим столом, когда я отсутствую, и об использовании моего телефона для доступа в Интернет, как если бы они находились в одной комнате. О, и все это также зашифровано.

Majenko
источник