En la era de la conectividad remota, los usuarios y los administradores de sistemas deben utilizar herramientas para que la actividad remota sea segura, protegida y rápida.

remote-work

Y, cuando se habla de métodos de conectividad remota, dos nombres vienen a la cabeza: SSH y Telnet.

¿Es SSH o Telent? Este artículo explorará cuál es mejor para el acceso remoto. Averigüémoslo en nuestra comparativa SSH vs. Telnet.

¿Qué es el acceso remoto?

El acceso remoto permite a los usuarios o administradores acceder a ordenadores o dispositivos en red desde cualquier lugar utilizando Internet. Utilizándolo, pueden realizar diferentes operaciones, como transferir archivos, colaborar y asegurar el tráfico de aplicaciones.

El acceso remoto es vital para que las organizaciones sobrevivan y prosperen. Además, los administradores necesitan un acceso remoto adecuado para gestionar servidores, redes y aplicaciones sin tener que visitar físicamente las ubicaciones de los servidores.

¿Qué es SSH?

Secure Shell o Secure Socket Shell (SSH) es un protocolo de red que permite a los ordenadores de una red no segura comunicarse entre sí de forma segura.

Una vez establecida una conexión segura, el usuario o el administrador pueden iniciar sesión en la máquina remota y ejecutar aplicaciones a distancia o utilizar la conexión cifrada segura de extremo a extremo para mover archivos a través de la red.

SSH hace referencia al conjunto de tecnologías y utilidades que implementan el protocolo SSH. Para que SSH sea seguro, se implementan varias tecnologías, empezando por la autenticación de clave pública, las comunicaciones de datos encriptadas y la autenticación de contraseña fuerte.

La empresa que está detrás del desarrollo de SSH es Netscape Communications Corporation. Sin embargo, un informático finlandés, Tatu Ylonen, creó los primeros diseños de SSH. Lo desarrolló tras encontrar un rastreador de contraseñas secretas en su recién creada red.

¿Cómo funciona SSH?

SSH sustituye a los antiguos protocolos de conectividad remota como Telnet, rlogin, rsh, etc. La mayoría de estos son protocolos populares pero carecen de seguridad. De hecho, SSH es tan bueno que los usuarios lo utilizan en lugar de confiar en protocolos de transferencia de archivos como la copia remota (rcp) y el protocolo de transferencia de archivos (FTP).

SSH utiliza un modelo cliente-servidor en el que un cliente SSH se conecta al servidor SSH.

  • El cliente SSH es un programa que reside en un ordenador o dispositivo que inicia el protocolo SSH. El cliente envía una solicitud al servidor SSH y espera a que éste acepte la solicitud. El cliente SSH utiliza el cifrado de clave pública para verificar y asegurarse de que se conecta con el servidor correcto. Este enfoque garantiza que los actores maliciosos no puedan hacerse pasar por un servidor y robar información vital del cliente.
  • El servidor SSH gestiona las conexiones SSH y ejecuta el servicio. Para aceptar la solicitud entrante, el servidor SSH escucha constantemente el puerto TCP 22 (por defecto). Y una vez que recibe una solicitud, responde a ellas. El servidor SSH también comprueba y autentica al cliente utilizando la autenticación de clave pública. Sólo después de una autenticación satisfactoria el cliente obtiene acceso al sistema anfitrión.

El cliente y el servidor eligen el cifrado. Pueden comprometerse a desactivar un cifrado más débil. Además, admite múltiples conexiones, lo que le permite realizar varias tareas a la vez (descargar, editar o ejecutar un programa) abriendo varios canales a través de una única conexión SSH.

La sintaxis SSH es la siguiente

$ ssh nombre_usuario@host

El nombre_usuario es el nombre de usuario que utiliza para conectarse al host. El host puede ser una IP o un nombre de dominio.

ssh-workings

Como puede ver, el flujo SSH simplificado consiste en lo siguiente:

  1. Cliente SSH que inicia una conexión a un servidor SSH determinado
  2. El servidor SSH recibe la conexión y envía su clave pública al cliente.
  3. El cliente guarda la clave pública del servidor en el archivo de su host (para futuras conexiones).
  4. Ahora, el servidor y el cliente negocian y establecen los parámetros de conexión.

SSH ofrece una sólida opción de conectividad con una excelente seguridad y protección de la integridad de los datos. También sigue una estandarización IETF para una mejor implementación y ha permanecido intacta durante los últimos 15 años.

Si desea profundizar técnicamente en SSH, consulte el documento de estandarización SSH RFC 4253. Además, eche un vistazo a la opinión de Geekflare sobre la comprensión de SSH.

¿Qué es Telnet?

Telnet son las siglas de Teletype Network. Es otro protocolo de red popular que ofrece conectividad remota a través de la interfaz de línea de comandos. De forma similar a SSH, puede utilizarlo para obtener control remoto y realizar acciones. Sin embargo, carece del aspecto de seguridad que ofrece SSH.

La falta de seguridad se debe a que cuando apareció en 1969, la mayoría de las comunicaciones se realizaban en una red local, que es segura en comparación con la insegura Internet.

¿Cómo funciona Telenet?

Telenet funciona creando una comunicación de terminal a terminal basada en texto entre el cliente y el servidor. Utiliza un modelo cliente-servidor mediante una conexión de ocho bytes.

Una vez establecida la conexión, puede realizar diferentes operaciones en el ordenador remoto, como comprobar los puertos abiertos, configurar dispositivos, editar archivos e incluso ejecutar programas.

La sintaxis de Telnet es

$ telnet nombre de host puerto
Internet

Para leer más sobre Telnet, consulte Comandos Telnet para probar y solucionar problemas de conexión.

¿Cuándo y dónde debe utilizar SSH?

SSH se utiliza principalmente para:

  • Administración remota del sistema
  • Ejecución remota de comandos
  • Asegurar el tráfico de la aplicación
  • Transferencias de archivos

Los administradores también pueden configurar sesiones SSH automatizadas que se encarguen de tareas repetitivas como la creación de copias de seguridad de la red, la recopilación de archivos de registro, la realización periódica de tareas de mantenimiento, etc.

SSH debe utilizarse para cualquier operación de conectividad remota, especialmente en una red no segura, sobre todo Internet. SSH también es una opción excelente para utilizar en la red local, ya que nunca se puede estar seguro de que la red local sea completamente segura.

¿Cuándo y dónde debe utilizar Telenet?

Como Telnet no es seguro, evite utilizarlo para conectarse a distancia en una red no segura. Sin embargo, eso no significa que Telnet sea inútil.

Puede utilizar TTelnetpara hacer lo siguiente:

  • Solucionar problemas SSH (Sí, ha leído bien. 😃)
  • Solucionar problemas de servidores FTP, SMTP y web.
  • Comprobar si un puerto está abierto o no
  • Acceder a redes de Internet de confianza.

SSH frente a Telnet

En esta sección, compararemos SSH y Telent a través de diferentes criterios. Si tiene prisa, consulte la tabla comparativa SSH vs. Telnet.

SSHTelnet
SeguridadAltamente seguro, el cliente y el servidor pueden negociar para establecer algoritmos de cifrado.No segura, no existe ningún mecanismo para asegurar la conexión o los paquetes Telent.
AutenticaciónSSH utiliza el cifrado de clave pública para la autenticación.Telnet no tiene ningún mecanismo de autenticación. Simplemente solicita el nombre de usuario/contraseña, que se transfiere sin ninguna protección.
FuncionamientoSSH utiliza el puerto TCP 22 por defecto. Puede cambiarlo a otro puerto para evitar que los piratas informáticos intenten acceder sin autorización.Telent, por defecto, utiliza el puerto 23 para escuchar las conexiones entrantes. Puede configurarlo para protegerlo contra accesos no autorizados.
ModeloModelo cliente-servidor.Modelo cliente-servidor.
Velocidad de transferencia de datosTécnicamente más lenta que Telnet, pero apenas se percibe durante el uso en el mundo real.Más rápida que SSH debido a la ausencia de protocolos de seguridad.
Tabla: SSH vs Telnet

Seguridad

SSH es seguro. Mantiene su conexión segura con protocolos de encriptación adecuados. Sin embargo, Telnet carece por completo de medidas de seguridad.

En SSH, el cliente y el servidor pueden negociar los parámetros de conexión, incluido el algoritmo de cifrado de extremo a extremo. Esto permite bloquear los algoritmos de encriptación débiles y hacer que la conexión SSH sea lo más segura posible.

Una vez que se establece una conexión TCP/UDP entre el cliente y el servidor, se inicia un intento de crear una conexión segura.

Para comprender mejor cómo funciona la seguridad SSH, conozcamos el contenido del paquete SSH. Un paquete SSH consta de cinco componentes, a saber:

  • Longitud del paquete: 4 bytes; qué tamaño tendrá el paquete
  • Cantidad de relleno: 1 byte; cuánto relleno tiene el paquete
  • Carga útil : los datos reales que se transfieren; el tamaño varía
  • Relleno: el relleno real, y no el TAMAÑO que hemos mencionado antes. Se trata de bytes aleatorios combinados con la carga útil para hacerla más cifrada.
  • Código de autenticación del mensaje: Una etiqueta para validar la autenticidad del paquete y garantizar que los datos del paquete no se modifican.
ssh-packet

Cuando SSH implementa la encriptación, sólo la longitud del paquete y el código de autenticación del mensaje están disponibles para su lectura. El cliente y el servidor negocian los parámetros de conexión a través del código de autenticación del mensaje. Además, los paquetes SSH pueden comprimirse utilizando diferentes algoritmos de compresión.

Telnet carece de seguridad. Lleva a cabo una autenticación no segura para conectar al cliente y al servidor. Así, cualquier actor malintencionado puede leer el paquete Telent y comprometer la conexión.

Autenticación

SSH es un protocolo seguro. Se basa en la encriptación de clave pública para autenticar al cliente y al servidor. En términos más técnicos, SSH puede utilizar algoritmos criptográficos asimétricos o simétricos para emparejar claves públicas y privadas.

Telent, por otro lado, no tiene protección para la autenticación. Su proceso de autenticación solicita el nombre de cuenta y la contraseña antes de conectarse. Además, el nombre de usuario y la contraseña se envían sin ningún tipo de seguridad, por lo que cualquiera puede acceder a ellos.

Funcionamiento

En cuanto al funcionamiento, SSH se ejecuta en el puerto TCP 22 por defecto. Por otro lado, Telnet utiliza el puerto TCP 23. Por lo tanto, utilice los protocolos SSH o Telnet sin especificar el número de puerto. El comando intentará conectarse automáticamente a los puertos 22 y 23, respectivamente.

Sin embargo, estos puertos son bien conocidos y pueden ser utilizados por hackers para llevar a cabo accesos no autorizados.

Puede cambiar los protocolos SSH y Telnet en puertos diferentes para solucionar este problema. Lo mejor es cerrar los puertos comunes y elegir puertos entre 1024 y 65535.

En Telent, los comandos se envían en el formato Network Virtual Terminal(NVT). El servidor Telent es capaz de recibir y entender el formato. Como puede ver, aquí no se realiza ninguna encriptación ni autenticación.

En cuanto a SSH, una vez realizada la conexión cliente-servidor, se genera una sesión que se identifica con la clave de sesión. Esta clave encripta el tráfico hasta que finaliza la sesión. Además, el servidor necesita verificar al cliente. Lo hace con la generación de pares de claves SSH. Una vez realizada la verificación, se crea un canal de encriptación de extremo a extremo para la transferencia segura de datos.

Modelo

Tanto SSH como Telnet utilizan el modelo cliente-servidor. Esto es estupendo, teniendo en cuenta que el modelo cliente-servidor aporta múltiples ventajas, entre ellas:

  • Puede escalarse horizontalmente, donde el servidor puede añadir más recursos si es necesario.
  • Los clientes pueden optimizarse para una entrada de datos adecuada
  • Divide el procesamiento de la aplicación entre el cliente y el servidor

Velocidad y sobrecarga

Para entender realmente SSH y Telnet, debemos conocer su impacto en la sobrecarga. En general, SSH tiene más sobrecarga que Telent, pero apenas notará la diferencia en los escenarios del mundo real.

Técnicamente, Telnet y SSH vuelven a teclear tras 1 hora de conexión o 1 GB de tiempo de conexión.

En cuanto al ancho de banda, SSH tiene más sobrecarga, pero es mínima para afectar a los usuarios. En cuanto a la CPU del cliente y del servidor, la sobrecarga es mínima, gracias a cómo funciona e implementa el estándar AES en las conexiones SSH.

En resumen, SSH y Telnet no presentan diferencias visuales en cuanto a velocidad o sobrecarga. Sin embargo, si las compara técnicamente, SSH sí conlleva cierta sobrecarga sobre Telnet.

Casos de uso de SSH y Telnet

En esta sección, examinaremos algunos casos de uso de SSH y Telnet.

Casos de uso de SSH

Los casos de uso para SSH incluyen:

  • Ejecución remota de comandos
  • Acceso seguro a recursos de máquinas remotas
  • Transferencia remota de archivos
  • Entrega de actualizaciones de software de forma remota
  • Configurar la transferencia automatizada de archivos o realizar transferencias manuales

Casos de uso de Telnet

Los casos de uso de Telnet incluyen

  • Solucionar problemas de SSH
  • Solucionar problemas de servidores FTP, SMTP y web.
  • Comprobar si un puerto está abierto o no
  • Acceder a redes de Internet de confianza.

Reflexiones finales: ¿Cuál es mejor?

SSH es mejor. Es un protocolo de red moderno y actualizado que hace que el acceso remoto sea seguro. Hasta ahora, no se han encontrado lagunas de seguridad en él. Además, es fácil de usar y configurar.

Telnet, por otro lado, ha caído en desgracia. Tiene ya casi 50 años. Sin embargo, sigue siendo útil en los escenarios actuales, y puede utilizarlo para solucionar problemas de SSH o comprobar si un puerto está abierto. Los administradores pueden utilizar Telnet para solucionar la mayoría de los problemas de red.