Telnet (abreviatura de "red de telecomunicaciones") [1] es un protocolo de aplicación cliente/servidor que proporciona acceso a terminales virtuales de sistemas remotos en redes de área local o Internet . [2] Es un protocolo para comunicaciones bidireccionales de 8 bits. Su principal objetivo era conectar dispositivos terminales y procesos orientados a terminales. [3]
Telnet consta de dos componentes: (1) el protocolo en sí, que especifica cómo deben comunicarse dos partes, y (2) la aplicación de software que proporciona el servicio. Los datos del usuario se intercalan en banda con la información de control de Telnet en una conexión de datos orientada a bytes de 8 bits a través del Protocolo de Control de Transmisión (TCP). Telnet se desarrolló como tecnología secreta en 1969 a partir de RFC 15, se amplió en RFC 855 y se estandarizó como Internet Standard STD 8 de Internet Engineering Task Force (IETF) , uno de los primeros estándares de Internet. [4] [5] Telnet transmite toda la información, incluidos los nombres de usuario y las contraseñas, en texto sin formato, por lo que no se recomienda para aplicaciones sensibles a la seguridad, como la gestión remota de enrutadores. [2] [6] El uso de Telnet para este propósito ha disminuido significativamente en favor de SSH . [7] Se han propuesto algunas extensiones de Telnet que proporcionarían cifrado. [8]
Telnet consta de dos componentes: (1) el protocolo en sí y (2) el componente de servicio. El protocolo Telnet es un protocolo cliente-servidor , basado en un transporte orientado a la conexión confiable . [2] Este protocolo se utiliza para establecer una conexión al puerto número 23 o 2323 del Protocolo de Control de Transmisión (TCP) , donde una aplicación de servidor Telnet está escuchando. [3] [9] [10] El protocolo Telnet abstrae cualquier terminal como un Terminal Virtual de Red (NVT). El cliente debe simular un NVT utilizando los códigos NVT al enviar mensajes al servidor.
Telnet fue anterior a UDP/IP y originalmente funcionaba sobre el Protocolo de Control de Red (NCP). [11] El servicio Telnet se entiende mejor en el contexto de un usuario con una terminal simple que utiliza el programa Telnet local (conocido como programa cliente) para ejecutar una sesión de inicio de sesión en una computadora remota donde las necesidades de comunicación del usuario son manejadas por un programa servidor Telnet.
Aunque Telnet era un protocolo ad hoc sin definición oficial hasta el 5 de marzo de 1973, [12] el nombre en realidad se refería al Protocolo de Teletipo sobre Red , ya que el RFC 206 (NIC 7176) sobre Telnet deja clara la conexión: [13]
El protocolo TELNET se basa en la noción de un teletipo virtual, que emplea un conjunto de caracteres ASCII de 7 bits . La función principal de un TELNET de usuario, por tanto, es proporcionar los medios por los cuales sus usuarios pueden "pulsar" todas las teclas de ese teletipo virtual. [14]
Básicamente, utilizaba un canal de 8 bits para intercambiar datos ASCII de 7 bits. Cualquier byte con el bit alto establecido era un carácter especial de Telnet. El 5 de marzo de 1973, se definió un estándar de protocolo Telnet en la UCLA [15] con la publicación de dos documentos NIC: Telnet Protocol Specification, NIC 15372, y Telnet Option Specification, NIC 15373.
Se crearon muchas extensiones para Telnet debido a su arquitectura de protocolo de opciones negociables. Algunas de estas extensiones se adoptaron como estándares de Internet , documentos IETF STD 27 a STD 32. Algunas extensiones se implementaron ampliamente y otras son estándares propuestos en la ruta de estándares IETF (ver a continuación).
El servicio Telnet es la aplicación que proporciona servicios a través del protocolo Telnet. La mayoría de los sistemas operativos ofrecen un servicio que se puede instalar o habilitar para proporcionar servicios Telnet a los clientes. [16]
Telnet es vulnerable a ciberataques basados en la red , como el rastreo de paquetes de información confidencial, incluidas contraseñas y huellas digitales . [6] [17] Los servicios Telnet también pueden explotarse para filtrar información sobre el servidor (como nombres de host, direcciones IP y marca) al rastrear paquetes del banner. Esta información luego se puede buscar para determinar si un servicio Telnet acepta una conexión sin autenticación . Telnet también es explotado con frecuencia por malware debido a que está configurado incorrectamente. [10] De hecho, Telnet es el objetivo de los atacantes con más frecuencia que otros protocolos comunes, especialmente cuando se compara con UPnP , CoAP , MQTT , AMQP y XMPP [ cita requerida ] . Los dispositivos comunes atacados son dispositivos de Internet de las cosas , enrutadores y módems.
El SANS Institute recomienda que se suspenda el uso de Telnet para inicios de sesión remotos en circunstancias normales por las siguientes razones: [18]
Las extensiones de Telnet proporcionan seguridad de capa de transporte (TLS) y autenticación de capa de seguridad y autenticación simple (SASL) que abordan las preocupaciones mencionadas anteriormente. [8] Sin embargo, la mayoría de las implementaciones de Telnet no admiten estas extensiones y no abordan otras vulnerabilidades como el análisis de la información del banner. [17]
La emulación de estaciones de trabajo IBM 5250 o 3270 se admite a través de clientes Telnet personalizados, TN5250 / TN3270 y sistemas IBM i . Los clientes y servidores diseñados para pasar flujos de datos IBM 5250 a través de Telnet generalmente admiten el cifrado SSL , ya que SSH no incluye la emulación 5250. En IBM i (también conocido como OS/400), el puerto 992 es el puerto predeterminado para Telnet seguro. [19]
Históricamente, Telnet proporcionaba acceso a una interfaz de línea de comandos en un host remoto. Sin embargo, debido a serias preocupaciones de seguridad al usar Telnet en una red abierta como Internet, su uso para este propósito ha disminuido significativamente a favor de SSH . [20] El uso de Telnet para la administración remota ha disminuido rápidamente, especialmente en la Internet pública , a favor del protocolo Secure Shell (SSH). [2] [21] SSH proporciona gran parte de la funcionalidad de Telnet, con el agregado de un cifrado fuerte para evitar que se intercepten datos confidenciales como contraseñas y autenticación de clave pública , para garantizar que la computadora remota sea realmente quien dice ser.
El cliente Telnet puede utilizarse para depurar servicios de red como SMTP , IRC , HTTP , FTP o POP3 , para enviar comandos a un servidor y examinar las respuestas. [16] Por ejemplo, las aplicaciones cliente Telnet pueden establecer una sesión TCP interactiva con un puerto distinto del puerto del servidor Telnet. Sin embargo, la comunicación con dichos puertos no implica el protocolo Telnet, porque estos servicios simplemente utilizan una conexión TCP transparente de 8 bits, ya que la mayoría de los elementos del protocolo Telnet se diseñaron en torno a la idea de acceder a una interfaz de línea de comandos y ninguna de estas opciones o mecanismos se emplea en la mayoría de las demás conexiones de servicios de Internet.
Por ejemplo, un cliente telnet de línea de comandos podría realizar una solicitud HTTP a un servidor web en el puerto TCP 80 de la siguiente manera: [22]
$ telnet www.example.com 80 GET /ruta/al/archivo.html HTTP/1.1 Host: www.example.com Conexión: cerrada
En la actualidad, el protocolo más antiguo se utiliza solo en casos excepcionales para acceder a equipos antiguos que tienen décadas de antigüedad y que no admiten protocolos más modernos. [23] Por ejemplo, una gran cantidad de dispositivos industriales y científicos solo tienen Telnet disponible como opción de comunicación. Algunos están construidos con solo un puerto RS-232 estándar y utilizan un dispositivo de hardware de servidor en serie para proporcionar la traducción entre los datos TCP/Telnet y los datos en serie RS-232. En tales casos, SSH no es una opción a menos que el dispositivo de interfaz pueda configurarse para SSH (o se reemplace por uno que admita SSH).
Los operadores de radioaficionados suelen utilizar Telnet para proporcionar información pública. [24]
A pesar de la recomendación en contra, los investigadores de seguridad estimaron que 7.096.465 sistemas expuestos en Internet siguen usando Telnet en 2021. Sin embargo, las estimaciones de este número han variado significativamente, dependiendo de la cantidad de puertos escaneados más allá del puerto TCP 23 predeterminado. [10]
Los detalles técnicos de Telnet están definidos por una variedad de especificaciones, incluida la RFC 854. [3]
Los comandos Telnet constan de al menos dos bytes. [3] El primer byte es el carácter de escape IAC (normalmente el byte 255) seguido del código de byte para un comando determinado:
Todos los octetos de datos excepto 0xff se transmiten por Telnet tal cual. (0xff, o 255 en decimal, es el byte IAC (Interpretar como comando) que indica que el siguiente byte es un comando Telnet. El comando para insertar 0xff en la secuencia es 0xff, por lo que 0xff debe escaparse duplicándolo al enviar datos por el protocolo Telnet). [3]
Telnet también tiene una variedad de opciones que los terminales que implementan Telnet deben soportar.
Star Wars: Episodio IV – Una nueva esperanza de 1977 ha sido recreado como una película de arte de texto servida a través de Telnet. [27]