Telnet (TELecommunication NETwork) es el nombre de un protocolo de red que sirve para acceder mediante una red a otra máquina para manejarla remotamente como si estuviéramos sentados delante de ella. También es el nombre del programa informático que implementa el cliente. Para que la conexión funcione, como en todos los servicios de Internet, la máquina a la que se acceda debe tener un programa especial que reciba y gestione las conexiones. El puerto que se utiliza generalmente es el 23.
El protocolo Telnet se aplica en una conexión TCP para enviar datos en formato ASCII codificados en 8 bits, entre los cuales se encuentran secuencias de verificación Telnet. Por lo tanto, brinda un sistema de comunicación orientado bidireccional (semidúplex) codificado en 8 bits y fácil de implementar.
El protocolo Telnet se basa en tres conceptos básicos:
1. El paradigma Terminal virtual de red (NVT);
2. El principio de opciones negociadas;
3. Las reglas de negociación.
Éste es un protocolo base, al que se le aplican otros protocolos del conjunto TCP/IP (FTP, SMTP, POP3, etc.). Las especificaciones Telnet no mencionan la autenticación porque Telnet se encuentra totalmente separado de las aplicaciones que lo utilizan (el protocolo FTP define una secuencia de autenticación sobre Telnet). Además, el protocolo Telnet no es un protocolo de transferencia de datos seguro, ya que los datos que transmite circulan en la red como texto sin codificar (de manera no cifrada). Cuando se utiliza el protocolo Telnet para conectar un host remoto a un equipo que funciona como servidor, a este protocolo se le asigna el puerto 23.
Excepto por las opciones asociadas y las reglas de negociación, las especificaciones del protocolo Telnet son básicas. La transmisión de datos a través de Telnet consiste sólo en transmitir bytes en el flujo TCP (el protocolo Telnet especifica que los datos deben agruparse de manera predeterminada —esto es, si ninguna opción especifica lo contrario— en un búfer antes de enviarse. Específicamente, esto significa que de manera predeterminada los datos se envían línea por línea). Cuando se transmite el byte 255, el byte siguiente debe interpretarse como un comando. Por lo tanto, el byte 255 se denomina IAC (Interpretar como comando). Los comandos se describen más adelante en este documento.
RFC ,Request for Comments ("Petición De Comentarios" en español) son una serie de notas sobre Internet que comenzaron a publicarse en 1969.Se abrevian como RFC.
Cada una de ellas individualmente es un documento cuyo contenido es una propuesta oficial para un nuevo protocolo de la red Internet (originalmente de ARPANET), que se explica con todo detalle para que en caso de ser aceptado pueda ser implementado sin ambigüedades.
Cualquiera puede enviar una propuesta de RFC a la IETF(Internet Engineering Task Force ,en español Grupo Especial sobre Ingeniería de Internet ), pero es ésta la que decide finalmente si el documento se convierte en una RFC o no. Si luego resulta lo suficientemente interesante, puede llegar a convertirse en un estándar de Internet.
Las especificaciones básicas del protocolo Telnet se encuentran disponibles en la RFC (petición de comentarios) 854, mientras que las distintas opciones están descriptas en la RFC 855 hasta la RFC 861.
RFC (peticiones de comentarios) relacionadas con Telnet
RFC 854 Especificaciones del protocolo Telnet
RFC 855 Especificaciones de opciones de Telnet
RFC 856 Transmisión binaria en Telnet
RFC 857 Opción Eco de Telnet
RFC 858 Opción de suprimir continuación en Telnet
RFC 859 Opción Estado de Telnet
La noción de terminal virtual
Cuando surgió Internet, la red (ARPANET) estaba compuesta de equipos cuyas configuraciones eran muy poco homogéneas (teclados, juegos de caracteres, resoluciones, longitud de las líneas visualizadas). Además, las sesiones de los terminales también tenían su propia manera de controlar el flujo de datos entrante/saliente.
Por lo tanto, en lugar de crear adaptadores para cada tipo de terminal, para que pudiera haber interoperabilidad entre estos sistemas, se decidió desarrollar una interfaz estándar denominada NVT (Terminal virtual de red). Así, se proporcionó una base de comunicación estándar, compuesta de:
caracteres ASCII de 7 bits, a los cuales se les agrega el código ASCII extendido;
tres caracteres de control;
cinco caracteres de control opcionales;
un juego de señales de control básicas.
Por lo tanto, el protocolo Telnet consiste en crear una abstracción del terminal que permita a cualquier host (cliente o servidor) comunicarse con otro host sin conocer sus características.
El principio de opciones negociadas
Las especificaciones del protocolo Telnet permiten tener en cuenta el hecho de que ciertos terminales ofrecen servicios adicionales, no definidos en las especificaciones básicas (pero de acuerdo con las especificaciones), para poder utilizar funciones avanzadas. Estas funcionalidades se reflejan como opciones. Por lo tanto, el protocolo Telnet ofrece un sistema de negociaciones de opciones que permite el uso de funciones avanzadas en forma de opciones, en ambos lados, al iniciar solicitudes para su autorización desde el sistema remoto.
Las opciones de Telnet afectan por separado cada dirección del canal de datos. Entonces, cada parte puede negociar las opciones, es decir, definir las opciones que:
* Desea usar (DO);
* Se niega a usar (DON'T);
* Desea que la otra parte utilice (WILL);
* Se niega a que la otra parte utilice (WON'T).
De esta manera, cada parte puede enviar una solicitud para utilizar una opción. La otra parte debe responder si acepta o no el uso de la opción. Cuando la solicitud se refiere a la desactivación de una opción, el destinatario de la solicitud no debe rechazarla para ser completamente compatible con el modelo NVT.
Opciones negociadas de Telnet | ||
Solicitud | Respuesta | Interpretación |
DO | WILL | El remitente comienza utilizando la opción El remitente no debe utilizar la opción |
WON'T | El remitente no debe utilizar la opción | |
WILL | DO | El remitente comienza utilizando la opción, después de enviar DO |
DON'T | El remitente no debe utilizar la opción | |
DON'T | WON'T | El remitente indica que ha desactivado la opción |
WON'T | DON'T | El remitente indica que el remitente debe desactivar la opción |
Existen 255 códigos de opción. De todas maneras, el protocolo Telnet proporciona un espacio de dirección que permite describir nuevas opciones.
La RFC (petición de comentarios) 855 explica cómo documentar una nueva opción.
Las reglas de negociación
Las reglas de negociación
para las opciones permiten evitar situaciones de enrollo automático (por ejemplo, cuando una de las partes envía solicitudes de negociación de opciones a cada confirmación de la otra parte).
Las solicitudes sólo deben enviarse en el momento de un cambio de modo.
Cuando una de las partes recibe la solicitud de cambio de modo, sólo debe confirmar su recepción si todavía no se encuentra en el modo apropiado.
Sólo debe insertarse una solicitud en el flujo de datos en el lugar en el que surte efecto.
Uso de Telnet
Telnet es un protocolo que sirve para emular una terminal remota, lo que significa que se puede utilizar para ejecutar comandos introducidos con un teclado en un equipo remoto. La herramienta Telnet está implementada por el protocolo Telnet. Esto significa que traduce las especificaciones del protocolo al lenguaje de programación a fin de crear un programa que pueda emular una terminal.
Telnet opera en un entorno de cliente/servidor, lo que implica que el equipo remoto se configura como servidor, por lo que espera que el otro equipo le solicite un servicio. Por lo tanto, dado que este equipo remoto envía datos que se deben mostrar, el usuario siente que está trabajando directamente en un ordenador remoto. En UNIX, este servicio se brinda por medio de lo que se conoce como un daemon (daemon), una tarea pequeña que se ejecuta de fondo. El daemon de Telnet se denomina Telnetd.
Protocolos e implementación
Telnet también es un protocolo, un conjunto de reglas y procedimientos que se definieron para estandarizar la comunicación de Telnet. Por esta razón, Telnet se implementó en muchas plataformas, en base a las especificaciones del protocolo.
Cómo ejecutar Telnet
Telnet se proporciona con varias plataformas, incluidas UNIX, Windows 95, Windows NT, y Linux.
El comando para iniciar una sesión Telnet generalmente es:
telnet nombre_del_servidor
nombre_del_servidor representa el nombre o la dirección IP del equipo remoto al que se quiere conectar el usuario. También puede usar su dirección IP, por ejemplo:
telnet 125.64.124.77
Por último, también puede especificar el puerto que desea usar introduciendo el número de puerto después de la dirección IP o el nombre del servidor:
telnet 125.64.124.77 80
Comandos en Telnet
Una vez conectado al equipo remoto, se le solicitará que introduzca un nombre de usuario y una contraseña por razones de seguridad para permitir el acceso únicamente a los individuos autorizados. De hecho, la razón por la que Telnet es un protocolo tan potente es el hecho de que permite que los comandos se ejecuten en forma remota. El administrador de red define los comandos que se pueden ejecutar en una sesión Telnet. Generalmente son comandos UNIX, ya que la mayoría de los servidores Telnet pueden ejecutar UNIX. Los comandos estándar son:
open host [port]
abre una conexión al host llamado. Si el número de puerto no es especificado, telnet intenta de conectar el servidor telnet desde el puerto default. La especificación del host puede ser tanto el nombre de un host o una IP
close
cierra una sesión TELNET y te regresa al modo de comando.
quit
cierra cualquier sesión TELNET abierta y sale de telnet. Un fin de archivo (end-of-file) (en modo de comando) también cerrará una sesión y saldrá.
Ctrl-z
suspende telnet. Este comando sólo trabaja cuando el usuario está usando csh o la el ambiente de aplicación BSD versión de ksh.
status
muestra el status actual de telnet.
display [argumento .... ]
lista las propiedades del argumento dado
? [comand]
proporciona ayuda. Sin argumentos, telnet muestra un sumario de ayuda. Si un comando es especificado, telnet mostrará la información de ayuda sobre el comando.
send argumentos
envía uno o más secuencias de caracteres especiales a un host remoto. Los siguientes son argumentos los cuales pueden ser especificados (más de algún argumento puede ser especificado en un tiempo).
escape
envía el caracter telnet escape.
synch
envía la secuencia SYNCH TELNET. Esta secuencia causa que el sistema remoto descarte todo lo previamente tecleado como entrada, pero que todavía no haya sido leído. Esta secuencia es enviada como un dato urgente TCP.
brk
envía la secuencia TELNET BRK (break -rompimiento), la cual puede tener significado para el sistema remoto.
ip
envía la secuencia TELNET IP (interrupción de proceso), la cual debe causar que el sistema remoto aborte en proceso que se esta corriendo.
ao
envía la secuencia TELNET AO (abortar salida), la cual puede causar al sistema remoto que nivele todas las salidas del sistema remoto a la terminal del usuario.
ayt
envía la secuencia TELNET AYT (are you there- estas ahí), el cual el sistema remoto puede o no responder.
ec
envía la secuencia TELNET EC (erase character- borrar caracter), la cual puede causar al sistema remoto a borrar el último caracter tecleado.
el
envía la secuencia TELNET EL (erase line - borrar línea), la cual causa que el sistema remoto borre la línea anterior escrita.
ga
envía la secuencia TELNET GA (go ahead - adelante), la cual probablemente no tiene significado para el sistema remoto.
nop
envía la secuencia TELNET NOP ( no operación - no operación).
mode
Cambia el modo de entrada del usuario de telnet al Modo. El huésped remoto es preguntado por el permiso para introducirse en el modo solicitado. Si el huésped remoto es capaz de entrar en ese modo, el modo solicitado se introduce.
Problemas de seguridad y SSH
Su mayor problema es de seguridad, ya que todos los nombres de usuario y contraseñas necesarias para entrar en las máquinas viajan por la red como texto plano (cadenas de texto sin cifrar). Esto facilita que cualquiera que espíe el tráfico de la red pueda obtener los nombres de usuario y contraseñas, y así acceder él también a todas esas máquinas. Por esta razón dejó de usarse, casi totalmente, hace unos años, cuando apareció y se popularizó el SSH (Secure SHell, en español: intérprete de órdenes segura), que puede describirse como una versión cifrada de telnet -actualmente se puede cifrar toda la comunicación del protocolo durante el establecimiento de sesión (RFC correspondiente, en inglés- si cliente y servidor lo permiten, aunque no se tienen ciertas funcionalidad extra disponibles en SSH).
Hay tres razones principales por las que el telnet no se recomienda para los sistemas modernos desde el punto de vista de la seguridad:
1. Los dominios de uso general del telnet tienen varias vulnerabilidades descubiertas sobre los años, y varias más que podrían aún existir.
2. Telnet, por defecto, no cifra ninguno de los datos enviados sobre la conexión (contraseñas inclusive), así que es fácil interferir y grabar las comunicaciones, y utilizar la contraseña más adelante para propósitos maliciosos.
3. Telnet carece de un esquema de autentificación que permita asegurar que la comunicación esté siendo realizada entre los dos anfitriones deseados, y no interceptada entre ellos.
En ambientes donde es importante la seguridad, por ejemplo en el Internet público, telnet no debe ser utilizado. Las sesiones de telnet no son cifradas. Esto significa que cualquiera que tiene acceso a cualquier router, switch, o gateway localizado en la red entre los dos anfitriones donde se está utilizando telnet puede interceptar los paquetes de telnet que pasan cerca y obtener fácilmente la información de la conexión y de la contraseña (y cualquier otra cosa que se mecanografía) con cualesquiera de varias utilidades comunes como tcpdump y Wireshark.
Estos defectos han causado el abandono y depreciación del protocolo telnet rápidamente, a favor de un protocolo más seguro y más funcional llamado SSH, lanzado en 1995. SSH provee de toda la funcionalidad presente en telnet, la adición del cifrado fuerte para evitar que los datos sensibles tales como contraseñas sean interceptados, y de la autentificación mediante llave pública, para asegurarse de que el computador remoto es realmente quién dice ser.
Los expertos en seguridad computacional, tal como el instituto de SANS, y los miembros del newsgroup de comp.os.linux.security recomiendan que el uso del telnet para las conexiones remotas debería ser descontinuado bajo cualquier circunstancia normal.
Cuando el telnet fue desarrollado inicialmente en 1969, la mayoría de los usuarios de computadoras en red estaban en los servicios informáticos de instituciones académicas, o en grandes instalaciones de investigación privadas y del gobierno. En este ambiente, la seguridad no era una preocupación y solo se convirtió en una preocupación después de la explosión del ancho de banda de los años 90. Con la subida exponencial del número de gente con el acceso al Internet, y por la extensión, el número de gente que procura crackear los servidores de otra gente, telnet podría no ser recomendado para ser utilizado en redes con conectividad a Internet.
Telnet en la actualidad
Hoy en día este protocolo también se usa para acceder a los BBS ( Bulletin Board System o en español Sistema de Tablón de Anuncios), Los tableros de anuncios son en muchas formas un precursor de los modernos foros y otros aspectos de Internet. Históricamente se considera que el primer software de BBS fue creado por Ward Christensen en 1978; mientras que Usenet, por ejemplo, no empezó a funcionar hasta el año siguiente.
Fueron muy populares en los años 80 y 90. Durante estos años, las BBS se convirtieron en el punto de encuentro de aficionados a las comunicaciones y desarrolladores de software. Constituyeron los primeros sistemas públicos de intercambio de ficheros, incluyendo los primeros programas shareware o los primeros virus informáticos.
A diferencia de las páginas WEB en internet, al depender de un ordenador conectado a una línea de teléfono, los usuarios tenían que «hacer cola», es decir, mientras el usuario anterior no desconectase una vez hubiera terminado, y liberase la línea de teléfono, no podía conectarse el siguiente (la mayoría de las BBS solo tenían 1 línea de teléfono).
Con el auge de internet de la segunda mitad de los 90 los BBS decrecieron en popularidad aunque no por ello han desaparecido, hoy siguen existiendo y se han adaptado a los nuevos tiempos y a Internet, sirviéndose de la red de redes para facilitar el acceso a los BBS.
En España siguen funcionando Pucela BBS, Eye Of The Beholder, RafaSTD, Zruspa's, Parolas, Nervion, FiC, Radio Maceda, Zafiro Corp., Lucus, ... Otros sistemas célebres pero que ya no se encuentran en activo fueron Alija, Elektra, LA Voix, Panic, La Conexión, El Libro de Arena, Conecta2, Quartz, DataByte, Europa, Asturias, Vision, Movera, +Bytes, Danger, El Zoco, Cyberiada, Beholder, Chrome, FiC, HappyCom, Brother, Revolution, Corben, Power Station, Galletas, Nada de Nada, Virtual BBS. Por su parte, éstos se encuentran en otros países del mundo, como en Argentina donde todavía funciona vía telnet Momia BBS, en México aún funciona Matrix BBS.
Ejemplo:
En una pc normal con windows XP, click en inicio, en ejecutar poner cmd y dar enter.
en el modo comando escribir lo siguinete:
telnet towel.blinkenlights.nl
CONSULTAR EL CORREO (POP3) MEDIANTE TELNET
1. Conectarse con el cliente telnet al servidor que corresponda. El puerto casi siempre es 110.
2. Identificarse:
* user nombreDeUsuario
* pass contraseña
Sé que es posible enviar la contraseña cifrada, según no se qué RFC que todavía
no he tenido tiempo de leer...
3. Ver la lista de mensajes:
* list
//este comando devuelve la lista de mensajes y lo que ocupa cada uno en bytes.
* stats
//nos dice cuántos mensajes tenemos y cuántos bytes ocupan, en total.
4. Leer un mensaje:
* retr mensajeNúmero
//por ejemplo, retr 1 para el primer mensaje, retr 2 para el segundo.
* top mensajeNúmero númeroDeLíneas
//para leer las primeras líneas del mensaje (además de todos los encabezados).
5. Borrar un mensaje:
* dele mensajeNúmero
//Muy útil si nos han mandado un mail de tropecientos megas que no nos interesa en absoluto.
//El mensaje no se borra hasta que terminamos la sesión con quit.
* rset
//Recupera un mensaje que hemos marcado para borra con dele, antes de cerrar la sesión.
6. Terminar la sesión:
* quit
ENVIAR CORREO (SMTP) MEDIANTE TELNET
1. Conectarse con el cliente telnet al servidor que corresponda. El puerto casi siempre es 25.
2. Saludar:
* ehlo tuNombre
* helo tuNombre
//Cualquiera de estos dos comandos sirve para iniciar una sesión SMTP.
3. Escribir un mensaje:
* mail from: emilio@delRemite.nte
//Así indicamos quién es el remitente. Podría explicar qué sistemas utilizan los
servidores
SMTP para comprobar que esta información es cierta, pero no lo voy a hacer.
El que quiera enviar correos anónimos o falsificados, que se busque la vida .
* rcpt to: emilio@delDestinata.rio
//Así indicamos a quién va dirigido el correo.
* data
//Después de este comando, empezamos a escribir el correo. Para terminar,
escribimos un punto ( . ) en una línea aparte.
4. Añadir cabeceras:
//Podemos añadir más cabeceras, como el nombre del remitente o del
destinatario. Éstas
son sólo relevantes para los clientes de correo, pero al servidor no le importan
en absoluto,
así que van al principio del cuerpo del mensaje (es decir, después de empezar el
mensaje con data).
* subject: elAsunto
//Para indicar el subject o asuntod del mensaje.
* from: miNombre
//Para indicar que me llamo miNombre y mi correo electrónico es
emilio@delRemite.nte.
* to: elNombreDelOtro
//Para indicar que el correo va dirigido a elNombreDelOtro y su dirección de
correo es emilio@delDestinata.rio.
//Ya os imagináis que las direcciones de correo indicadas aquí no tienen por qué
coincidir con las indicadas en el apartado 3. En cualquier caso, el que reciba el mensaje va a poder ver todas las cabeceras.
5. Cancelar:
* rset
//igual que en POP3, este comando sirve para cancelar cualquier cambio que se
haya hecho durante la sesión.
6. Terminar la sesión:
* quit
Video de como enviar un correo por telnet :
Muy buen tutorial. Si desde hace 20 años hubiera aprendido a hacer todo desde la línea de comandos ahora tendría mi propio emporio de Informática (tipo Bill Gates).
ResponderEliminar