5.1 Telnet

Telnet es una aplicación cliente-servidor que se utiliza para el acceso remoto a un host. El servidor se ejecuta en el host remoto y el cliente en el local. De esta forma podemos acceder a los recursos de la computadora remota a través de un shell, igual que si estuviéramos sentados frente a un teclado directamente conectado al host remoto.

5.1.1 La interacción cliente-servidor

Telnet utiliza el protocolo TCP para transmitir, carácter a carácter, hasta el host remoto cada una de las teclas que pulsamos en el teclado del host cliente. De hecho, Telnet es (aparte de una conexión con un shell en el host remoto) una aplicación básica de eco (echo en inglés). Cada vez que pulsamos una tecla el cliente la transmite hasta el servidor y éste nos la devuelve. Así el usuario comprueba si ha existido algún error.

Como hemos dicho, para llevar a cabo estas comunicaciones Telnet utiliza el TCP. Esto significa que todas las comunicaciones están virtualmente libres de errores de transmisión gracias al sistema de retransmisión automática de paquetes que el TCP implementa.*

5.1.2 Utilizando Telnet

Para usar Telnet simplemente invocamos al cliente desde la línea de comandos y escibimos a continuación el nombre del host al que queremos conectarnos:

usuario$ telnet <host_remoto>  
# Nota: los <> no pertenecen a la dirección del host

Además, Telnet puede ser utilizado también para acceder a un servidor distinto de telnetd. Por ejemplo, podemos utilizar un cliente Telnet cuando deseemos comprobar el funcionamiento de un servidor SMTP que escucha en el puerto 25. Para seleccionar dicho servicio invocaremos a (el cliente) telnet de la siguiente forma:

usuario$ telnet <servidor_SMTP> 25

5.1.3 Acerca de la seguridad en las comunicaciones

Un aspecto importante a tener en cuenta a la hora de utilizar Telnet es que todas las transmisiones circulan por la red en texto plano, sin ningún tipo de cifrado. Y ésto es cierto incluso para la transmisión del nombre de usuario y del password cuando accedemos a la computadora remota. Por este motivo, Telnet sólo debería ser utilizado en aquellos contextos donde se está seguro que este hecho no va a ser un problema.

En la práctica existen pocas situaciones donde el uso de Telnet sea seguro: (1) cuando accedemos localmente a nuestro host y (2) cuando accedemos a un host remoto y la red garantiza que nadie puede estar haciendo sniffing. Por desgracia, esto último fuera de una red local cableada es bastante complicado de asegurar.

Taller 5.1:
Usando el programa Telnet que viene con el sistema operativo Windows intente hacer Telnet a un servidor que conozca. El programa Telnet puede ser invocado desde el intérprete de comandos del MS-DOS a través del comando telnet.

5.1.4 Instalación del cliente

Debian Linux:
Instalamos el paquete Linux NetKit (http://www.hcs.harvard.edu/ dholland/computers/netkit.html).
root# apt-get install telnet

Fedora Core Linux:
Instalamos el paquete Linux NetKit.
root# yum install telnet

Gentoo Linux:
Instalamos el paquete OpenBSD (ftp://ftp.suse.com/pub/people/kukuk/ipv6/).
root# emerge telnet-bsd

Taller 5.2:
Instale un cliente Telnet. Intente acceder a un host que conoza usando el servicio Telnet desde el PC virtual.

5.1.5 Instalación del servidor

Debian Linux:
 
root# apt-get install telnetd

Fedora Core Linux:
 
root# yum install telnet-server

Gentoo Linux:
 
root# emerge telnet-bsd xinetd

5.1.6 Configuración del servidor

Debian Linux:
No hay que hacer nada.
Fedora Core Linux:
Hay que editar el fichero /etc/xinetd.d/telnetd y comprobar que el servidor de Telnet no está “disabled”. A continuación reiniciar el servicio xinetd (véase el Apéndice C).
Gentoo Linux:
Hay que editar el fichero /etc/xinetd.d/telnetd y comprobar que el servidor de Telnet no está “disabled”. A continuación reiniciar el servicio xinetd (véase el Apéndice C).
Taller 5.3:
Instale un servidor Telnet. Intente acceder al host virtual. No utilice el usuario root porque en muchos casos, por motivos de seguridad, el demonio Telnet está configurado para negar el acceso al administrador. Intente el acceso desde:
  1. El PC virtual (Linux).
  2. El PC huésped (Windows).

5.1.7 Activación y desactivación del servicio

El demonio Telnet es un sub-demonio y por tanto, su activación y desactivación no es trivial. Esto es exáctamente lo que hay que hacer:

Debian Linux:
# Activación definitiva  
root# update-inetd --enable telnet  
 
# Desactivación definitiva  
root# update-inetd --disable telnet

Fedora Core Linux:
El demonio que controla Telnet se llama xinetd. Para activar y desactivar Telnet hay que modificar el fichero de configuración y reiniciar el demonio.
Gentoo Linux:
El demonio que controla Telnet se llama xinetd. Para activar y desactivar Telnet hay que modificar el fichero de configuración y reiniciar el demonio.
Taller 5.4:
Compruebe que activando y desactivando el servidor Telnet, el servicio se reanuda o deja de prestarse.