Servicios de Internet
Servicio de conexión remota
Protocolo TELNET
Servicio de conexión remota
Protocolo TELNET
Servicios de Internet
Años 1950’s, antes de Internet…
Servicio de conexión remota
Protocolo TELNET
• Mainframes: grandes ordenadores con gran capacidad de cálculo.
• Terminales: Conjunto de pantalla y teclado conectado al mainframe por medio de cable serie, no tenían
capacidad de procesamiento.
• Cada fabricante utilizaba su tecnología de conexión (IBM era el más importante).
Servicios de Internet
Mediados de los 1970’s, aparece Internet
Servicio de conexión remota
y el ordenador personal…
Protocolo TELNET
Para poder usar los PC en los mainframe se creó un servicio emulador de terminal con la tecnología Internet:
• Servidor en el mainframe + clientes en los PC
• Protocolo de comunicación: TELNET (terminal networking)
Servicios de Internet
Emulación de terminal
Servicio de conexión remota
Protocolo TELNET
TELNET no hace nada más que enviar las pulsaciones del teclado local hacia un servicio remoto, de forma que
éste servicio remoto tiene la impresión de que esos comandos se están introduciendo en el propio teclado del
equipo donde reside. La respuesta se trae de nuevo al cliente.
Aunque inicialmente se utilizó para emulación de terminal, pronto se vio la posibilidad de utilizar TELNET para
realizar conexiones remotas a otros PC o servidores (no solo mainframes) para administrarlos, y también para
administrar routers, switches, etc.
Servicios de Internet
TELNET para conectar a cualquier servicio
Servicio de conexión remota
Protocolo TELNET
El uso más extendido de la conexión remota con TELNET fue (y sigue siendo) administrar remotamente (a
través de Internet) un equipo, es decir, acceder a una Shell del sistema operativo. TELNET solo se encarga de
transportar la secuencia de teclas. El proceso de login, por ejemplo, ya lo implementa el sistema operativo.
Emulación terminal IBM AS/400
Administración de un Switch HP
Administración de un Linux remoto
El puerto bien conocido de TELNET para este tipo de uso es el 23.
TELNET utiliza TCP en capa de transporte.
Servicios de Internet
TELNET para conectar a cualquier servicio
Servicio de conexión remota
Protocolo TELNET
Dado que TELNET sirve genéricamente para conectar a un servicio en un puerto y enviar los comandos de
forma remota, se puede utilizar para interactuar con cualquier servicio de Internet.
• Indicando el puerto donde está el servicio.
• Introduciendo posteriormente sentencias del protocolo de capa de aplicación del servicio al que
conectamos.
HTTP
GET / HTTP/1.1
[enter]
Servicios de Internet
Abandono y resurgir de TELNET
Servicio de conexión remota
Protocolo TELNET
El servicio de conexión remota con TELNET es uno de los primeros servicios de Internet.
Los datos con TELNET viajan en texto plano (sin encriptar), por tanto es un protocolo inseguro que debe
evitarse si se envían datos sensibles (como nombres de usuario o contraseñas). Deben utilizarse servicios con
cifrado como ssh.
Hoy en día el servicio de conexión remota con TELNET viene deshabilitado o desisntalado en todos los sistemas
operativos.
… pero TELNET ha encontrado un uso dentro de los dispositivos de Internet de las Cosas. Estos dispositivos
suelen ser de pocos recursos (poca memoria y procesamiento). No pueden implementar algoritmos de cifrado.
TELNET es una forma sencilla de administrarlos.
Si se une esto al hecho de que los usuarios muchas veces no cambian las contraseñas por defecto
tenemos un grave problema de seguridad.
Servicios de Internet
Problemas de seguridad con telnet en IoT
Servicio de conexión remota
Protocolo TELNET
Servicios de Internet
Funcionamiento de TELNET
Servicio de conexión remota
Protocolo TELNET
Servicios de Internet
NVT
Servicio de conexión remota
Protocolo TELNET
Al inicio de una sesión TELNET cliente y servido se intercambian datos en un formato
básico denominado NVT (Network Virtual Terminal).
• Los datos de NVT se componen de caracteres ASCII de 7 bits (el denominado USASCII),
aumentados a 8 por medio de un 0 inicial. Tenemos así 95 caracteres imprimibles más
33 de especiales (CR, LF, BS,…).
• Los datos se envían línea a línea. Se guardan los caracteres en un buffer hasta que se
pulsa el retorno de carro.
• Cada línea termina con una combinación de caracteres USASCII de retorno de carro
(CR) y salto de línea (LF). Es decir, cuando el cliente pulsa la tecla enter después de
introducir una línea, la traducción a caracteres para NVT es CR+LF. Una vez que la línea
llegue al otro extremo, el servidor deberá transformar los caracteres CR+LF en el
carácter fin de línea para el sistema servidor.
• Los bytes cuyo bit más significativo es 1 se usan para códigos de comando. Además,
cada código de comando va precedido del comando IAC (Interpret As Command). El
código para el IAC es 255 (los 8 bit a 1).
• El protocolo NVT es semidúplex. Después de enviar una línea, el cliente espera hasta
recibir una línea del servidor. El servidor envía sus datos y, a continuación, un comando
“go ahead”, desbloqueando el teclado del cliente e indicándole que ya puede enviar
una nueva línea.
Servicios de Internet
Ejemplos de terminales emulados
Servicio de conexión remota
Protocolo TELNET
Terminal ASCII.
Los terminales ASCII se utilizan en las máquinas UNIX y VAX
y se caracterizan por:
Ofrecer eco remoto. Cada carácter se envía al host
remoto y se reenvía de vuelta ANTES de ser
mostrados en la pantalla del cliente.
Transmisión dúplex. Los caracteres viajan en las dos
direcciones de forma simultánea. El servidor no
necesita enviar señales “go ahead”.
Ofrecen soporte para aplicaciones interactivas de
pantalla completa (por ejemplo, en la configuración
del switch HP) -> mucha sobrecarga de la red.
Utiliza un conjunto de caracteres ASCII mayor que el
de NVT.
Existen muchas versiones de este tipo de terminal, entre
ellas: ANSI, VT52, VT100, VT220, TVI950, TVI955 y WYSE50.
El terminal más usado para conexiones a máquinas UNIX
es el VT100.
Servicios de Internet
Ejemplos de terminales emulados
Servicio de conexión remota
Protocolo TELNET
Terminal 3270 y 5250
Provienen de los terminales de acceso a las grandes
computadoras de IBM (como el terminal 5250 para
acceder a las AS/400).
Los terminales 3270 funcionan en modo bloque. Cuando
el usuario pulsa INTRO, se envía al host la información
de toda la pantalla (en la que aparecen los datos en
diferentes campos por los que nos moveremos con el
tabulador) y el teclado se bloquea. El host envía de
vuelta al terminal los datos en una o varias pantallas y
cuando termina, desbloquea el teclado. Los terminales
3270 se caracterizan por:
• Usan código EBCDIC (una codificación de IBM
alternativa a ASCII) de 8 bits.
• Comunicación semidúplex (en las dos direcciones
pero de forma alternativa).
• Modo de bloque.
Servicios de Internet
Negociación de opciones de terminal
Servicio de conexión remota
Protocolo TELNET
Mediante NVT se negocian, al inicio, las capacidades de ambos extremos para
ofrecer un funcionamiento más complejo (opciones de terminal).
Por ejemplo para emular un tipo de terminal de los vistos anteriormente, para
implementar pantalla completa, full-dúplex, determinada codificación ASCII, etc.
Cualquiera de los extremos puede enviar comandos (en negrita) para los
siguientes usos:
• Pedir a la otra parte que realice una opción (comando DO). La otra
parte podrá aceptar (respondiendo con un comando WILL) o negarse
(comando WONT)
• Ofrecerse para realizar una opción (WILL). La otra parte podrá aceptar
(respondiendo con DO) o negarse (DONT)
• Declarar que no va a realizar una función (código WONT). Solamente
se admite DONT como respuesta.
• Pedir a la otra parte que no implemente una función (DONT).
Solamente se admite como respuesta WONT