Aplicaciones SSH TELNET

Site: Facultad de Ingeniería U.Na.M.
Course: Redes II - IC421
Book: Aplicaciones SSH TELNET
Printed by: Guest user
Date: Wednesday, July 3, 2024, 6:16 AM

1. Introducción.

Telnet y SSH son aplicaciones utilizadas para acceder a equipos remotos.

Un equipo remoto DEBE ofrecer el Servicio y el otro equipo DEBE tener una aplicación que se conecte al Servicio ofrecido.

Podemos decir entonces que Telnet (Telecommunications and Networks) y SSH (Secure SHell) son aplicaciones cliente-servidor de propósito general que permiten a los usuarios interactuar con sistemas remotos.

Telnet


Telnet es prácticamente tan antiguo como la propia Internet. Se lanzó junto con Internet en 1969 y los puristas lo utilizan hasta el día de hoy.

Telnet es un protocolo de aplicación que ayuda a los usuarios a comunicarse con un sistema remoto. Utiliza una interfaz basada en texto para crear una terminal virtual, lo que permite a los administradores acceder a aplicaciones en otros dispositivos.

Ventajas:
  • Admite la autenticación de usuarios.
  • Se puede utilizar para enviar y recibir información.
  • No se utilizan políticas de autenticación ni técnicas de cifrado de datos.
Desventajas:
  • Telnet no cifra ningún dato enviado a través de la conexión.
  • Solo es capaz de mostrar texto y números, sin gráficos ni color.

SSH


SSH cumple la misma función principal que Telnet, pero lo hace de una manera más segura. Este protocolo brinda acceso seguro incluso en redes no seguras, eliminando muchas de las vulnerabilidades de Telnet.

Con SSH, los administradores pueden iniciar sesión en dispositivos remotos, ejecutar comandos, mover archivos entre dispositivos y más, todo desde una terminal REMOTA , no hay mouse en ese escenario.

Ventajas:
  • Está disponible gratis para uso no comercial.
  • SSH puede ofrecer múltiples servicios usando la misma conexión.
  • SSH ayuda a tunelizar de forma segura aplicaciones inseguras como SMTP, IMAP, POP3 y CVS.
  • Ofrece una autenticación sólida y comunicaciones seguras a través de canales inseguros.
  • Proporciona privacidad mediante un cifrado sólido.
  • La integridad de las comunicaciones se realiza de tal manera que no se puede alterar.
Desventajas:
  • SSH no puede proteger a los usuarios de ataques realizados a través de otros protocolos.
  • No está diseñado para transmitir movimientos de cursor o información de movimiento de GUI (Graphical User Interface).

Hoy en día se recomienda preferiblemente usar SSH ya que Telnet está muy desfasado y podría suponer un fallo de seguridad importante.

SSH también ofrece más funciones que Telnet, como la transferencia segura de archivos y el reenvío de puertos, se conoce com SFTP (Secure File Transfer Protocol) , se usa FTP sobre sobre SSH en el puerto 22.



2. SSH

Actualmente el protocolo SSH viene en dos versiones.
La primera versión utiliza claves RSA privadas para descifrar archivos cifrados con la clave pública correspondiente.
La versión más nueva se compone de una serie de protocolos que incluyen certificación de clave pública mejorada, estándares de cifrado e incluso soporte para certificados de clave pública.

Hay diferentes cifrados que se pueden usar para SSH según las aplicaciones que se usen. Algunos de ellos incluyen:

  • CHACHA20
  • AES-GCM
  • Blowfish-CBC
  • AES128-CTR
  • AES192-CTR
  • AES256-CTR
  • Arcfour
  • Cast128-CBC


Vamos a tratar de ilustrar como funciona SSH.

Es una aplicación que funciona como Cliente-Servidor. Vamos plantear un mecanismo simplificado de como sería el funcionamiento.

Paso 1:

El cliente SSH va a contactar con el servidor para iniciar la conexión. Ese servidor está escuchando a través del puerto 22 o el que se le haya configurado en el Servidor. Ver que mencionamos puerto => que estamos hablando de una sesión TCP.

Paso 2:

En esta sesión TCP, coordinan entre Cliente y Servidor sobre un conjunto de protocolos de encriptación disponibles y versiones que dispone cada uno , se alcanza un acuerdo y se inicia la conexión con el protocolo acordado.

Paso 3:

El Servidor comparte una CLAVE PUBLICA (Cifrado Asimétrico) que el cliente va a usar para verificar la autenticidad del Servidor (PKI)  y para cifrar el tráfico.


En este punto vemos que si el cliente comparte algo cifrando con la clave Pública , NADIE podrá saber el contenido, ya que SOLO el servidor tiene la clave privada que permite decifrar el contenido, por lo tanto tenemos un canal seguro desde el cliente al Servidor.

Paso 4:

El cliente envía la clave privada al Servidor, para producir la clave secreta compartida (Cifrado Simétrico usando el mecanismo de Diffie-Hellman ver en otro capítulo) . A diferencia de la percepción general, el cifrado asimétrico no se utiliza para cifrar toda la sesión SSH. En lugar de eso, sólo se utiliza durante el algoritmo de intercambio de claves de cifrado simétrico.

Paso 5:

Como ya disponen de un canal 100% seguro, ya que ambos tiene la clave privada que compartieron por un canal seguro, puede comenzar la sesión SSH.




3. Telnet

Telnet.

Telnet requiere una aplicación de servidor en el sistema remoto que desea administrar y la aplicación cliente instalada en la máquina local.

Telnet usa el protocolo TCP y el puerto 23 para establecer una conexión con un sistema remoto. Este sistema actúa entonces como un servidor Telnet y puede recibir comandos.

Los comandos se envían utilizando el formato NVT (Network Virtual Terminal - Terminal Virtual de Red), el servidor los recibe e interpreta y los envía a la aplicación correspondiente.




4. Telnet vs. SSH

Aunque Telnet y SSH tienen algunas similitudes, existen muchas diferencias entre los dos. El más importante es que SSH es mucho más seguro que Telnet, lo que ha provocado que reemplace a Telnet casi por completo en el uso diario.

Telnet y SSH usan diferentes puertos predeterminados. Mientras que Telnet solo puede transferir datos como texto sin formato, SSH puede cifrar el tráfico en ambas direcciones.

5. SSH Server

Para instalar Servidor de SSH en Linux:

sudo apt install openssh-server

Comandos básicos de Linux para ssh:

sudo systemctl status ssh
sudo service ssh status
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl stop ssh

Puede suceder que el Firewall no permita acceder al Servidor de SSH:

sudo ufw allow ssh
sudo ufw enable
sudo ufw status

Para instalar en Windows un Servidor de SSH remitirse al siguiente link: OpenSSH_en_Windows   😟

Clientes SSH.

Desde una terminal y asumiendo que username es un usuario que existe en el Servidor, se puede ejecutar :
ssh username@IP_del_Servidor_de_SSH
ssh IP_del_Servidor_de_SSH  -l username
ssh server -l username -p 2222
El puerto 22 es el puerto bien conocido de SSH, pero se puede cambiar, configurando un archivo y redireccionar a otro puerto, por ejemplo 2222.
Existen muchos clientes de SSH con entorno Gráfico. Uno muy conocido y libre es el Putty https://putty.org/  .
Esta aplicación cliente se pude instalar  en Windows
Y desde Linux con sudo apt-get install putty.
La parte gráfica se ve mas o menos como lo que sigue:

6. PKI


Definición PKI: Una infraestructura de claves públicas (PKI) es un sistema de recursos, políticas y servicios que da soporte al uso del cifrado de claves públicas para autenticar a las partes que participan en una transacción.

Un PKI consta de entidades emisoras de certificados (CA) y entidades emisoras de registro (RA).

Este sistema es el que da fe de que la clave pública es de quien dice ser, eso permite al usuario estar seguro que no están usurpando la identidad.

Veremos mas de esto en la parte de Seguridad.

7. Diffie-Hellmann

Introducción

El algoritmo de Intercambio de Claves Diffie-Hellman se usa para intercambiar una clave simétrica.

Este algoritmo  DH es más sencillo de lo que parece y se usa frecuentemente en protocolos y aplicaciones de encriptado de datos, como:
  • SSL (Secure Sockets Layer)
  • SSH (Secure Shell)
  • VPN (Virtual Private Network)
  • TLS
  • IPsec
  • PGP


Nota: El algoritmo de intercambio de Diffie-Hellman no es por si solo 100% seguro, es susceptible a un ataque Man in de Middle, pero con la validación de la clave Pública, esto queda subsanado, ya que al tener registro de la clave publica con el PKI, podemos dar fe de la indentidad ( no se está haciendo pasar por otro).

Existen diferentes Grupos Diffie Hellman, en función de la fuerza empleada en el intercambio de claves. Cuanto más alto sea el grupo, más seguros serán los intercambios, pero a la vez, se necesitará más tiempo para procesar la clave.
Los grupos Diffie-Hellman más comunes son:

  •     Grupo DH 1 de 768 bits
  •     Grupo DH 2 de 1024 bits
  •     Grupo DH 5 de 1536 bits
  •     Grupo DH 14 de 2048-bit
  •     Grupo DH 15  de 3072-bit
  •     Grupo DH 19  de 256-bit de curva elíptica
  •     Grupo DH 20  de 384 bits de curva elíptica

A la hora de realizar el intercambio de claves, ambos equipos deben elegir durante la primera fase del proceso un mismo Grupo DH, de forma que crean un canal seguro y autenticado para establecer la comunicación.

Funcionamiento de Diffie_Hellman (Analogía)

La mejor analogía para el esquema Diffie-Hellman es pensar en dos personas mezclando pintura.

Usemos el estándar de criptografía y digamos que sus nombres son Alice y Bob. Ambos acuerdan un color aleatorio para empezar. Digamos que se envían un mensaje y deciden que el amarillo es su color común.

Establecen su propio color. No le dicen a la otra parte su elección. Digamos que Alice elige el rojo, mientras que Bob elige un azul ligeramente verdoso.

El siguiente paso es que tanto Alice como Bob mezclen su color secreto (rojo para Alice, azul verdoso para Bob) con el amarillo que acordaron mutuamente. Alice termina con una mezcla anaranjada, mientras que el resultado de Bob es un azul más profundo.

Una vez que han terminado de mezclar, envían el resultado a la otra parte. Alice recibe el azul más profundo, mientras que Bob recibe la pintura de color naranja.

Una vez que han recibido el resultado mixto de su pareja, le agregan su color secreto. Alice toma el azul más profundo y agrega su pintura roja secreta, mientras que Bob agrega su azul verdoso secreto a la mezcla de naranja que acaba de recibir.

¿El resultado? Ambos salen con el mismo color, que en este caso es un marrón y es un color compartido. Este color compartido se conoce como el secreto común.