2012-07-03 30 views
11

Me gustaría que un puerto en serie esté disponible a través de la red. RFC-2217 proporciona extensiones a Telnet para transportar información adicional del puerto serie, como velocidad, bits de datos, bits de parada y líneas de handshaking de hardware.Protocolo para puerto serie remoto, con autenticación y cifrado

Sin embargo, quiero asegurarme de que no sea de acceso libre para cualquiera en la red, por lo que quiero hacer la autenticación y el cifrado. Telnet es débil en autenticación y no proporciona cifrado. SSH es generalmente preferido sobre Telnet.

¿Hay algún protocolo que permita el transporte del puerto serie a través de SSH, similar a RFC-2217?

Me doy cuenta de que una opción podría ser tunelizar Telnet + RFC-2217 a través de un túnel SSH. Eso es técnicamente factible, aunque en términos prácticos es un poco incómodo.

Zeroconf

La otra pregunta es, ¿cómo podría un puerto tales ser objeto de publicidad con Zeroconf DNS-SD? P.ej. ¿cómo se anunciaría con Zeroconf un puerto serie Telnet + RFC-2217, que se tuneliza a través de SSH? (Telnet llano + RFC-2217 podrían ser objeto de publicidad como _telnetcpcd._tcp de lo que puedo decir.)

+0

algún motivo no basta con ejecutar la masilla en ambos extremos? http://superuser.com/questions/270793/connect-two-computers-together-via-a-rs232-serial-port –

+0

Es para una aplicación de comunicaciones de radio de nicho, y quiero permitir que las PC se conecten al módem de radio en una red local, para acceso telefónico. La PC del cliente usaría entonces un puerto serie virtual y los comandos AT habituales para marcar una llamada de datos. –

+0

RFC2217 sobre SSH, como ha propuesto, parece ser la solución perfecta para mí. No estoy seguro de qué tiene de extraño ... parece una buena opción. – Brad

Respuesta

3

Lo que desea es una conexión en serie segura a través de LAN.

La razón por la que no encuentra ningún proyecto gratuito que lo haga es simple: la mayoría de los proyectos de código abierto separan la seguridad de la capa de transporte del protocolo (por buenas razones). En lugar de reinventar la rueda para cada aplicación, puede volver a utilizar el componente de seguridad (SSH en este caso) y aplicarlo a su protocolo no seguro (compatible con RFC-2217, por ejemplo).

Solo use un túnel SSH o stunnel para asegurar la conexión. Para clientes de Windows, puede usar com2com y para sistemas * nix como ttyd.

com2com, por ejemplo, ni siquiera requiere que se inicie manualmente después de la configuración inicial, por lo que los usuarios solo tienen que establecer un túnel SSH (mediante PuTTY, por ejemplo).

  • com2com
  • socat, utilizando pty y openssl-listen se puede hacer más o menos exactamente lo que quiere (un poco en contradicción con lo que he escrito anteriormente ya que en realidad no implementar la seguridad de capa de transporte)
4

No estoy seguro de que los túneles SSH es tan difícil como se piensa:

-Wanfitrión: puerto
Solicita que la entrada y salida estándar en el cliente se reenvíen al host en el puerto a través del canal seguro. Implica -N, -T, ExitOnForwardFailure y ClearAllForwardings y trabaja con el protocolo de la versión 2 solamente.

Esto es lo que un túnel de un corto SMTP sesión se parece a (entrada escrita en negrita):

$ 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 

No hay ajuste por separado un túnel y luego se conecta a ese puerto, justo tuberías de entrada y salida del ssh proceso.

0

SSH proporciona "requesting a pseudo-terminal" con "pseudo-terminal encoded terminal modes". Proporciona la configuración de velocidad en baudios, bits, paridad, configuración de bits de parada. Es posible establecer PARMRK para recibir errores de trama y condición de interrupción. Sin embargo, parece que el protocolo SSH carece actualmente de comandos para configurar una condición de interrupción, o para establecer líneas de hardware de módem DTR y RTS, o para obtener líneas de hardware de módem DSR, CTS, DCD y RING.

Ver:

Cuestiones relacionadas