Practica 5 Telnet y Ftp

5
Práctica 5 Acceso remoto 1: Telnet y Ftp Las primeras computadoras eran extremadamente caras y debían ser compartidas por muchos usuarios a la vez para justificar su uso. En esta situación cada usuario usaba un terminal " tonto" (con poca potencia de cálculo) para conectarse al host principal " el mainframe". Para que los usuarios pudieran usar los recursos del host principal se escribieron una serie de aplicaciones de red que perduran hasta nuestros días. De estos programas, los más interesantes son Telnet y Ftp. 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. 1 5.1.2 Utilizando Telnet Para usar Telnet simplemente invocamos al cliente desde la línea de comandos y escribimos 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 esto 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. 1 Por tanto, si vemos que existe un error en algún comando que hayamos escrito, muy probablemente se trate de un error de mecanografía. Pág. 1 de 5

Transcript of Practica 5 Telnet y Ftp

  • Prctica 5

    Acceso remoto 1: Telnet y Ftp Las primeras computadoras eran extremadamente caras y deban ser compartidas por muchosusuarios a la vez para justificar su uso. En esta situacin cada usuario usaba un terminal " tonto" (conpoca potencia de clculo) para conectarse al host principal "el mainframe". Para que los usuariospudieran usar los recursos del host principal se escribieron una serie de aplicaciones de red queperduran hasta nuestros das. De estos programas, los ms interesantes son Telnet y Ftp.

    5.1 Telnet Telnet es una aplicacin cliente-servidor que se utiliza para el acceso remoto a un host. El servidor seejecuta en el host remoto y el cliente en el local. De esta forma podemos acceder a los recursos de lacomputadora remota a travs de un shell, igual que si estuviramos sentados frente a un tecladodirectamente conectado al host remoto.

    5.1.1 La interaccin cliente-servidor

    Telnet utiliza el protocolo TCP para transmitir, carcter a carcter, hasta el host remoto cada una delas teclas que pulsamos en el teclado del host cliente. De hecho, Telnet es (aparte de una conexincon un shell en el host remoto) una aplicacin bsica de eco (echo en ingls). Cada vez que pulsamosuna tecla el cliente la transmite hasta el servidor y ste nos la devuelve. As el usuario comprueba si haexistido algn error.

    Como hemos dicho, para llevar a cabo estas comunicaciones Telnet utiliza el TCP. Esto significa quetodas las comunicaciones estn virtualmente libres de errores de transmisin gracias al sistema deretransmisin automtica de paquetes que el TCP implementa.1

    5.1.2 Utilizando Telnet

    Para usar Telnet simplemente invocamos al cliente desde la lnea de comandos y escribimos acontinuacin el nombre del host al que queremos conectarnos:

    usuario$telnet

    # Nota: los no pertenecen a la direccin del host

    Adems, Telnet puede ser utilizado tambin para acceder a un servidor distinto de telnetd. Porejemplo, podemos utilizar un cliente Telnet cuando deseemos comprobar el funcionamiento de unservidor SMTP que escucha en el puerto 25. Para seleccionar dicho servicio invocaremos a (el cliente)telnet de la siguiente forma:

    usuario$telnet25

    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 transmisionescirculan por la red en texto plano, sin ningn tipo de cifrado. Y esto es cierto incluso para latransmisin del nombredeusuario y del password cuando accedemos a la computadora remota.Por este motivo, Telnet slo debera ser utilizado en aquellos contextos donde se est seguro queeste hecho no va a ser un problema.

    En la prctica existen pocas situaciones donde el uso de Telnet sea seguro: (1) cuando accedemoslocalmente a nuestro host y (2) cuando accedemos a un host remoto y la red garantiza que nadiepuede estar haciendo sniffing. Por desgracia, esto ltimo fuera de una red local cableada esbastante complicado de asegurar.

    1 Por tanto, si vemos que existe un error en algn comando que hayamos escrito, muy probablemente se tratede un error de mecanografa.

    Pg. 1 de 5

  • Taller 5.1: Usando el programa Telnet que viene con el sistema operativo Windowsintente hacer Telnet a un servidor que conozca. El programa Telnet puede ser invocadodesde el intrprete de comandos del MS-DOS a travs del comando telnet.

    5.1.4 Instalacin del cliente

    Debian Linux: Instalamos el paquete Linux NetKit2 .

    root#aptgetinstalltelnet

    Fedora Core Linux: Instalamos el paquete Linux NetKit.

    root#yuminstalltelnet

    Gentoo Linux: Instalamos el paquete OpenBSD3.

    root#emergetelnetbsd

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

    5.1.5 Instalacin del servidor

    Debian Linux:

    root#aptgetinstalltelnetd

    Fedora Core Linux:

    root#yuminstalltelnetserver

    Gentoo Linux:

    root#emergetelnetbsdxinetd

    5.1.6. Configuracin del servidor

    Debian Linux: No hay que hacer nada.

    Fedora Core Linux: Hay que editar el fichero /etc/xinetd.d/telnetd y comprobar que elservidor de Telnet no est "disabled". A continuacin reiniciar el servicio xinetd (vase el ApndiceC).

    Gentoo Linux: Hay que editar el fichero /etc/xinetd.d/telnetd y comprobar que el servidor deTelnet no est "disabled". A continuacin reiniciar el servicio xinetd (vase el Apndice C).

    Taller 5.3: Instale un servidor Telnet. Intente acceder al host virtual. No utilice el usuarioroot porque en muchos casos, por motivos de seguridad, el demonio Telnet estconfigurado para negar el acceso al administrador. Intente el acceso desde:

    1. El PC virtual (Linux).

    2. El PC husped (Windows).

    5.1.7 Activacin y desactivacin del servicio

    El demonio Telnet es un sub-demonio y por tanto, su activacin y desactivacin no es trivial. Esto esexactamente lo que hay que hacer:

    2 http://www.hcs.harvard.edu/ dholland/computers/netkit.html 3 ftp://ftp.suse.com/pub/people/kukuk/ipv6/

    Pg. 2 de 5

  • Debian Linux: # Activacin definitiva

    root#updateinetdenabletelnet

    # Desactivacin definitiva

    root#updateinetddisabletelnet

    Fedora Core Linux: El demonio que controla Telnet se llama xinetd. Para activar y desactivarTelnet hay que modificar el fichero de configuracin y reiniciar el demonio.

    Gentoo Linux: El demonio que controla Telnet se llama xinetd. Para activar y desactivar Telnet hayque modificar el fichero de configuracin y reiniciar el demonio.

    Taller 5.4: Compruebe que activando y desactivando el servidor Telnet, el servicio sereanuda o deja de prestarse.

    5.2 Ftp (File Transfer Program) Ftp es, junto con Telnet, uno de esos programas que aparecieron en las primeras redes decomputadoras. Si Telnet permite acceder de forma remota a un host, Ftp se utiliza para transmitirficheros entre hosts remotos.

    Ftp es una sistema que consta de un servidor y de un cliente. El usuario ejecuta el cliente de la forma:

    usuario$ftp

    usuario$ftp

    El servidor Ftp solicita un login y un password correctos y cuando dicha informacin ha sidoenviada (sin cifrar), el cliente ejecuta un intrprete sencillo de rdenes que permiten mover ficherosentre nuestro host y el remoto.

    5.2.1 Instalacin del cliente

    Existen muchos clientes Ftp. El que nosotros vamos a instalar se llama ftp y pertenece al paqueteLinuxNetKit:4

    Debian Linux:

    root#aptgetinstallftp

    Fedora Core Linux:

    root#yuminstallftp

    Gentoo Linux:

    root#emergeftp

    Taller 5.5: Instale un cliente Ftp.

    5.2.2 Comandos Ftp ms usuales

    A continuacin presentamos una lista de los principales comandos que acepta el cliente:

    pwd Imprimir el directorio actual.

    ls Mostrar el contenido del directorio remoto.

    cd Nos permite cambiar de directorio.

    get Transfiere un fichero desde el host remoto al host local.

    4 http://www.hcs.harvard.edu/ dholland/computers/netkit.html

    Pg. 3 de 5

  • put Transfiere un fichero desde el host local al host remoto.

    ! Ejecuta un comando en un shell del cliente.

    quit Cierra el intrprete del Ftp.

    Si se desea conocer el resto de comandos que el cliente Ftp acepta, escriba help en el shell delcliente Ftp.

    Taller 5.6: Conctese a un servidor Ftp que conozca desde el PC virtual y transfiera algnarchivo. Haga lo mismo desde el host husped (Windows).

    5.2.3 Instalacin del servidor

    Tambin existen mltiples servidores Ftp. El que nosotros vamos a instalar se llama vsftpd:5

    Debian Linux:

    root#aptgetinstallvsftpd

    Gentoo Linux:

    root#emergevsftpd

    5.2.4 Configuracin del servidor

    En el vsftpd, por defecto slo tiene acceso el usuario anonymous. Para habilitar el acceso a todoslos usuarios del sistema es necesario descomentar la lnea localenable=YES. Adems, siqueremos habilitar la escritura en los homes de los usuarios, hay que descomentar la lnea writeenable=YES.

    Debian Linux: El fichero de configuracin es /etc/vsftpd.conf. Excepto lo indicadoanteriormente no hay que realizar nada extra.

    #Editarelficheroysalvarlo

    root#vi/etc/vsftpd.conf

    Fedora Core Linux: Si se desea que los usuarios tengan acceso a su homes en la mquina remotahay deshabilitar selinux modificando el fichero /etc/selinux/config. Esto puede hacerse conel comando:

    root#/usr/sbin/setseboolPftp_home_dir1

    Gentoo Linux: Es necesario crear un fichero de configuracin. Por suerte, la que viene en el fichero/etc/vsftpd/vsftpd.conf.example es suficiente para la mayora de los servicios mscomunes:

    root#cp/etc/vsftpd/vsftpd.conf.example/etc/vsftpd/vsftpd.conf

    5.2.5 Activacin y desactivacin del servicio

    El demonio que hemos instalado se activa y desactiva de forma estndar. Vase el Apndice C parasaber cmo hacer esto.

    Taller 5.7:

    1. Instale un servidor Ftp en un PC virtual y configrelo para que los usuarios puedanescribir en sus homes.

    2. Acceda desde el host husped (Windows) a su cuenta de usuario en el host virtual ytransfiera algn fichero. Esto puede hacerse invocando desde el intrprete decomandos del MS-DOS al programa ftp. Pruebe a hacer lo mismo desde el PC virtual.

    5 http://vsftpd.beasts.org/

    Pg. 4 de 5

  • 3. Compruebe que activando y desactivando el servidor, el servicio se reanuda o deja deprestarse.

    Cuestiones de evaluacin 1. Describa brevemente para qu se utilizan los programas Telnet y Ftp.

    2. Usando Wireshark (vase el Apndice F) disee un time-line que muestre una interaccin realentre un cliente y un servidor Telnet suponiendo que el usario slo ejecuta el comando exituna vez que ha accedido al servidor remoto. Muestre slo los paquetes generados por elprotocolo Telnet que dependen de la sesin (los generados cuando introducimos nuestro loginy nuestro password6 , y los que resultan de ejecutar el comando exit). En cada paquetetransmitido indique el contenido del payload (la parte del paquete que es generada en laparte ms alta de la pila de protocolos) y el instante en el que es capturado por el sniffer.

    3. En la aplicacin Ftp, qu diferencias hay entre transmitir los ficheros en formato binario y enformato ASCII? Investigue en Internet.

    4. Actualmente es imposible realizar Telnet o Ftp a un ordenador de la Universidad de Almeradesde el resto de Internet, si estos servicios estn siendo ofrecidos en los puertos estndar(vase el fichero /etc/services).7 Por qu esto es as? Sabiendo que, por ejemplo, eltrfico Web s est permitido, podra instalarse un servidor Telnet en el puerto 80 (el puertousado por los servidores Web) y conectarnos a l desde fuera de la Universidad? Razone surespuesta. Indique en este ltimo caso qu otro servicio necesariamente no podra ofrecerseen el host que tiene el servidor Telnet escuchando en el puerto 80.

    6 Altere el login y el password para no revelarlos ...7 Sin usar el redireccionamiento de puertos mediante la aplicacin SSH

    Pg. 5 de 5