Telnet, una abreviatura de "Teletype Network", es una herramienta de línea de comandos que ha facilitado la comunicación remota y la comprobación de redes. Aunque su uso para la gestión de servidores ha disminuido considerablemente debido a la falta de cifrado, lo que presenta problemas de seguridad en entornos modernos, Telnet sigue siendo una utilidad valiosa para probar servicios de red, depurar problemas de conectividad, analizar respuestas del servidor y aprender sobre protocolos de red. Este artículo explora el uso de Telnet en Linux, abarcando su instalación, sintaxis, opciones básicas, casos de uso modernos y consideraciones de seguridad importantes, permitiendo a los usuarios emplear esta versátil herramienta de red en entornos controlados.

Requisitos Previos para el Uso de Telnet en Linux
Antes de comenzar a utilizar Telnet en Linux, es fundamental preparar dos máquinas: una actuará como cliente Telnet y la otra como sistema de destino. Puedes optar por dos ordenadores de sobremesa Linux, un ordenador de sobremesa y un servidor privado virtual (VPS), o, como en este tutorial, dos servidores virtuales VPS. Si se eligen VPS, cualquier plan que se ajuste a las necesidades será suficiente, ya que para practicar comandos Telnet, incluso el plan más básico será adecuado para ambos servidores.
Es crucial asegurarse de tener autorización para acceder a la máquina de destino y conocer su dirección IP. Es importante recordar que acceder a sistemas no autorizados es ilegal y poco ético. En este caso, se pueden ejecutar comandos libremente al ser propietario de ambas máquinas Linux. Además, se deben tener privilegios administrativos o sudo para instalar y configurar Telnet tanto en el cliente como en el sistema de destino. Para los clientes VPS de Hostinger, se concede acceso root completo para permitir la modificación del servidor cuando sea necesario.
También se necesita un software de terminal para ejecutar comandos Telnet en la máquina cliente. Se puede utilizar el terminal incorporado de Linux o software de terceros como PuTTY. Alternativamente, Hostinger ofrece un Terminal de navegador que permite ejecutar comandos directamente en el navegador sin instalar aplicaciones adicionales. Para utilizar esta función, se pulsa el botón correspondiente en la esquina superior derecha del panel de control del VPS, abriendo una nueva pestaña en el navegador donde se pueden empezar a ejecutar comandos.
Instalación de Telnet en Linux
La instalación de Telnet en la máquina cliente principal y en el sistema remoto de destino es un paso esencial. En la máquina cliente principal, la instalación se realiza ejecutando el comando apropiado en la terminal. Si la instalación se ha realizado correctamente, se mostrará la sesión interactiva de Telnet de la siguiente manera. Para salir de la sesión, se utiliza el comando quit.
En el sistema remoto de destino, la configuración es un poco más compleja. Será necesario instalar el servidor Telnet, abrir su puerto en el cortafuegos y crear un usuario dedicado, ya que Telnet no permite el acceso root por defecto por motivos de seguridad. En las distribuciones basadas en Debian, el servidor Telnet se inicia automáticamente. Es importante permitir el puerto Telnet (23 por defecto) a través del cortafuegos. Si no se utiliza ningún cortafuegos, este paso puede omitirse.
Sintaxis y Opciones del Comando Telnet
El comando Telnet se utiliza para establecer una conexión con un servidor especificado. Cuando se ejecuta, pedirá al usuario que introduzca el nombre de usuario y la contraseña previamente creados para Telnet. Al igual que muchos comandos de Linux como ssh, scp y ftp, Telnet permite añadir opciones para personalizar su comportamiento. A continuación, se presentan algunas de las opciones más utilizadas y sus finalidades:
- -4: Fuerza el uso de IPv4.
- -6: Fuerza el uso de IPv6.
- -a: Intenta una autenticación automática basada en el nombre de usuario local.
- -b: Especifica la dirección IP local que hay que enlazar antes de establecer una conexión.
- -c: Desactiva la lectura del archivo
.telnetrcdel usuario. - -d: Activa el modo de depuración para mostrar información de diagnóstico detallada.
- -e char: Establece el carácter de escape para la sesión Telnet.
- -E: Desactiva el carácter de escape, tratando toda la entrada como literal.
- -k: Envía la entidad de seguridad Kerberos especificada durante la autenticación.
- -l user: Especifica el nombre de usuario para el inicio de sesión automático.
- -n file: Registra la sesión en un archivo especificado.
- -x: Activa la encriptación de la sesión si está soportada.
- -X: Desactiva la opción TELNET STARTTLS.
- -?: Muestra el menú de ayuda de Telnet.
- -V: Muestra la versión del cliente Telnet.
Por ejemplo, si se tiene varios usuarios Telnet y se desea especificar uno inicialmente, se puede ejecutar el comando telnet -l usuario servidor_remoto_ip, sustituyendo usuario y servidor_remoto_ip por las credenciales reales. Tras acceder con éxito a la máquina remota, se puede interactuar con su shell como si fuera el servidor principal.
Uso de Telnet para Interactuar con Servidores SMTP
Telnet se puede utilizar para interactuar con servidores de Protocolo Simple de Transferencia de Correo (SMTP), permitiendo enviar correos electrónicos directamente desde la línea de comandos. Para iniciar una sesión SMTP, se necesita el nombre de dominio completo o la dirección IP del servidor SMTP al que se intenta conectar, así como el puerto, que puede ser 25, 587, 465 o 2525. El número de puerto depende de las configuraciones del servidor SMTP. Es importante notar que la mayoría de los servidores SMTP bloquean las transmisiones a través del puerto 25.
Al conectar, si la conexión es exitosa, se verá una respuesta que comienza con el código 220, indicando que el servidor está listo para recibir peticiones. El primer comando a enviar es HELO o EHLO. El comando HELO inicia una conexión SMTP sin extensiones de servicio, mientras que EHLO es un método ESMTP (Enhanced SMTP) que informa al cliente sobre las extensiones soportadas por el servidor, como los métodos de autenticación.
Con el siguiente comando, se indica la cuenta de correo que se desea que aparezca como remitente. Por ejemplo, la cadena de texto “cGVwaXRvQGRvbWluaXdzc3NvLmNvbQ==” representa un login cifrado en BASE-64 y la cadena “aW5pd3NzczQz” representa una clave cifrada de la misma forma. Ya se está logeado contra el servidor. Sin embargo, es crucial tener en cuenta que el usuario y la clave no van cifrados en este caso cuando se utiliza Telnet de esta manera, viajando en texto plano y exponiendo la información a interceptaciones. La mayoría de las versiones de sistemas operativos Windows no tienen Telnet habilitado por defecto, por lo que primero se necesita instalar el cliente Telnet. El proceso de instalación varía ligeramente según la versión de Windows.

Para completar la tarea de enviar un correo, se necesitará formatear el mensaje con MIME. Esto implica definir el Content-Type como text/html o multipart/alternative. La parte más fácil es enviar el comando RCPT TO varias veces, incluyendo las direcciones de los destinatarios en el campo to después del comando DATA. Adicionalmente, justo después de DATA, se puede añadir el asunto escribiendo: SUBJECT:[asunto].
Para finalizar la sesión SMTP, se debe escribir el comando QUIT. No olvide seguir el orden exacto de los comandos SMTP, de lo contrario, la transmisión no será exitosa. Si se escribe mal alguno de los comandos, no se podrán hacer correcciones con la tecla de retroceso.
Errores Comunes y Consideraciones de Seguridad en SMTP con Telnet
Cuando algo sale mal en una sesión SMTP con Telnet, se recibirán mensajes de error:
- 535 Authentication failed: El servidor SMTP no puede autenticar al cliente Telnet. Causas comunes incluyen nombres de usuario/contraseñas incorrectos y métodos de autenticación inválidos.
- Connection closed o timed out: El cliente Telnet no logra establecer una conexión con el servidor SMTP. Típicamente, esto se debe a un problema de red, un número de puerto incorrecto o un firewall bloqueando la conexión.
- 502 Unrecognized command: Se ha utilizado un comando incorrecto. Es necesario verificar los comandos que se están usando.
- 421 Service not available: El servidor SMTP no está disponible o no puede procesar la solicitud, posiblemente debido a una interrupción de la red o mantenimiento del servidor.
Es importante destacar que Telnet establece una conexión no cifrada, ya que no admite SSL o TLS. Tampoco puede conectarse a servidores SMTP con autenticación, ya que la mayoría de ellos requieren cifrado TLS o SSL antes de permitir métodos de autenticación como LOGIN y PLAIN. La autenticación sin TLS solo está permitida en servidores SMTP de prueba. Por lo tanto, se debería usar OpenSSL en lugar de Telnet para conectarse a servidores SMTP con cifrado.
Además, las credenciales de usuario cifradas con Base64 son bastante simples de descifrar, lo que deja al usuario vulnerable a ataques. Más aún, para usar el comando SMTP AUTH en Windows, se necesita autenticación básica. Desafortunadamente, Microsoft ha descontinuado la autenticación básica para nuevos inquilinos, lo que significa que no se podrá realizar la autenticación SMTP desde las versiones más nuevas de Windows.
Como enviar email desde la terminal con mSMTP y Gmail
Evaluación de Servidores POP3 con Telnet
Además de comprobar servidores SMTP, Telnet resulta útil para comprobar servidores Post Office Protocol 3 (POP3). Para ello, se puede conectar al servidor POP3 utilizando Telnet e interactuar con él mediante comandos específicos. Se le pedirá que introduzca su dirección de correo electrónico completa o simplemente el dominio. También es posible recuperar el contenido de un correo electrónico. Al igual que con SMTP, se debe teclear QUIT cuando se haya terminado de depurar.
Comprobación de Servidores FTP con Telnet
Utilizar Telnet para probar un servidor de Protocolo de Transferencia de Archivos (FTP) es una forma rápida de verificar si funciona correctamente y si el puerto 21 por defecto no está bloqueado. Esto es solo con fines de prueba. Se pueden enviar manualmente comandos FTP básicos para comprobar el funcionamiento del servidor. Por ejemplo, el comando FEAT se puede utilizar para consultar las características extendidas del servidor FTP.
Interacción con Servidores IRC mediante Telnet
Internet Relay Chat (IRC) es un protocolo de comunicación de texto en tiempo real que se utiliza para charlas y debates en grupo. Aunque las plataformas de mensajería modernas lo han sustituido en gran medida, aún se puede conectar a un servidor IRC utilizando Telnet para comprobar su disponibilidad e interactuar con él.
Es importante tener en cuenta que IRC es un protocolo de texto plano, por lo que se debe evitar compartir información sensible a través de él. Se utiliza el comando JOIN para entrar en un canal IRC. La conexión se realiza mediante telnet remote_server_ip port. Se recibirá una respuesta si el puerto está abierto y el servicio se está ejecutando. Dependiendo del servicio que se ejecute en el puerto personalizado, se envían los comandos adecuados para interactuar con él. Por ejemplo, se puede enviar una petición HTTP GET para recuperar la página por defecto del servidor: GET / HTTP/1.1. El servidor responderá con las cabeceras HTTP y, en la mayoría de los casos, con el contenido de la página solicitada.
Prueba de Puertos Personalizados con Telnet
Telnet también es una herramienta valiosa para probar puertos personalizados. Se puede iniciar una conexión a un servidor específico en un puerto determinado utilizando el comando telnet <dirección_IP_del_servidor> <número_de_puerto>. Dependiendo de la aplicación o servicio que se esté ejecutando en ese puerto, el servidor responderá con datos específicos, como cabeceras, mensajes o incluso códigos de error. Por ejemplo, para probar un servidor web en el puerto 80, se podría usar telnet example.com 80.
Consideraciones de Seguridad al Utilizar Telnet
Telnet se ha utilizado históricamente para conexiones remotas y administración de redes. Sin embargo, todos los datos, incluida la información sensible como nombres de usuario y contraseñas, se transmiten en texto plano. Esto lo hace muy vulnerable a la interceptación por parte de atacantes, especialmente en redes públicas o no fiables.
Debido a estos riesgos, Telnet solo debe ejecutarse en entornos controlados o locales para tareas básicas de depuración, como probar puertos abiertos o verificar la comunicación SMTP. Para comunicaciones seguras con servidores remotos, es mejor utilizar SSH, ya que este protocolo encripta todos los datos en tránsito, protegiendo la información de posibles ataques.
Si se necesita probar protocolos seguros o servicios encriptados, se debe considerar alternativas más seguras como OpenSSL o Netcat (nc). Estas herramientas permiten depurar y probar conexiones de red de forma segura, lo que es ideal para aplicaciones sensibles. OpenSSL es una herramienta de línea de comandos de código abierto que soporta cifrado SSL/TLS. Para instrucciones de instalación en Windows, Linux y otros sistemas operativos, se puede consultar la documentación oficial. En Windows, también es posible descargar el instalador. Luego, se puede saludar al servidor e identificarse con EHLO, similar a como se hace con Telnet. OpenSSL puede usarse tanto en entornos de staging como de producción.
En resumen, Telnet sigue siendo útil para solucionar problemas de red en un entorno Linux controlado o local. Sin embargo, debido a su falta de cifrado, debe utilizarse con responsabilidad y solo para tareas no sensibles. Se recomienda SSH, OpenSSL o nc para conexiones remotas seguras o evaluaciones de servicios encriptados. Además, es fundamental asegurarse de tener la autorización necesaria antes de utilizar Telnet para acceder a servidores o servicios remotos.