2012-07-03 3 views
11

Я хотел бы сделать последовательный порт доступным по сети. RFC-2217 предоставляет расширения для Telnet для передачи дополнительной информации о последовательном порте, такой как скорость, бит данных, стоповые биты и линии аппаратного подтверждения.Протокол для удаленного последовательного порта с аутентификацией и шифрованием

Тем не менее, я хочу, чтобы он не был свободно доступен никому в сети, поэтому я хочу сделать аутентификацию и шифрование. Telnet слабо аутентифицирован и не обеспечивает шифрование. SSH обычно предпочтительнее Telnet.

Есть ли протокол, разрешающий перенос через порт через SSH, аналогичный RFC-2217?

Я понимаю, что одним из вариантов может быть туннель Telnet + RFC-2217 через туннель SSH. Это технически достижимо, хотя на практике это немного неудобно.

Zeroconf

Другой вопрос, как мог такой порт рекламироваться с Zeroconf DNS-SD? Например. как можно было разрешить серийный порт Telnet + RFC-2217, который туннелируется через SSH, с помощью Zeroconf? (Простой Telnet + RFC-2217 может быть объявлена ​​как _telnetcpcd._tcp от того, что я могу сказать.)

+0

Любая причина, чтобы не просто запустить PuTTY на обоих концах? http://superuser.com/questions/270793/connect-two-computers-together-via-a-rs232-serial-port –

+0

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

+0

RFC2217 через SSH, как вы предлагали, звучит как идеальное решение для меня. Я не уверен, что это неудобно ... кажется, что это хорошо. – Brad

ответ

3

Что вы хотите - это защищенное последовательное соединение по локальной сети.

Причина, по которой вы не можете найти бесплатный проект, который делает это просто: большинство проектов с открытым исходным кодом отделяют безопасность транспортного уровня от протокола (по уважительным причинам). Вместо того, чтобы повторно изобретать колесо для каждого приложения, вы можете просто повторно использовать компонент безопасности (в этом случае SSH) и применить его к вашему незащищенному протоколу (например, совместимому с RFC-2217).

Просто используйте SSH-туннель или stunnel, чтобы обеспечить соединение. Для клиентов Windows вы можете использовать com2com и для систем * nix что-то вроде ttyd.

com2com, например, даже не требует запуска вручную после первоначальной настройки, поэтому вашим пользователям необходимо установить туннель SSH (например, через PuTTY).

  • com2com
  • socat, используя pty и openssl-listen вы можете сделать в значительной степени именно то, что вы хотите (немного противоречит тому, что я написал выше, потому что на самом деле делает реализации безопасности транспортного уровня)
4

Я не уверен, что SSH туннелирование, как неудобно, как вы думаете:

-Wхозяин: port
Просит, чтобы стандартный ввод и вывод на клиенте отправлялся на хост на порту по защищенному каналу. Подразумевается -N, -T, ExitOnForwardFailure и ClearAllForwardings и работает только с протоколом версии 2.

Вот что туннелирование короткий SMTP сессия выглядит (набранного вход выделен жирным шрифтом):

$ ssh -W mail.server.com:25 [email protected] 
220 mail.server.com ESMTP 
Postfix 
ehlo foo.com 
250-mail.server.com 
250-PIPELINING 
250-SIZE 
250-ETRN 
250-AUTH LOGIN PLAIN 
250-STARTTLS 
250-ENHANCEDSTATUSCODES 
250-8BITMIME 
250 DSN 
quit 
221 2.0.0 Bye 

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

0

SSH предусматривает "requesting a pseudo-terminal" с "pseudo-terminal encoded terminal modes". Он обеспечивает настройку скорости передачи, бит, четности, конфигурации стоповых бит. Можно установить PARMRK для получения ошибок кадрирования и состояния перерыва. Тем не менее, похоже, что в протоколе SSH в настоящее время отсутствуют какие-либо команды для , установить условие перерыва или установить аппаратные линии модема DTR и RTS или получить аппаратные линии модема DSR, CTS, DCD и RING.

См:

Смежные вопросы