5.2 Ftp (File Transfer Program)

Ftp es, junto con Telnet, uno de esos programas que aparecieron en las primeras redes de computadoras. Si Telnet permite acceder de forma remota a un host, Ftp se utiliza para transmitir ficheros 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 <host_remoto>

El servidor Ftp solicita un login y un password correctos y cuando dicha información ha sido enviada (sin cifrar), el cliente ejecuta un intérprete sencillo de órdenes que permiten mover ficheros entre nuestro host y el remoto.

5.2.1 Instalación del cliente

Existen muchos clientes Ftp. El que nosotros vamos a instalar se llama ftp y pertenece al paquete Linux NetKit (http://www.hcs.harvard.edu/˜dholland/computers/netkit.html):

Debian Linux:
 
root# apt-get install ftp

Fedora Core Linux:
 
root# yum install ftp

Gentoo Linux:
 
root# emerge ftp

Taller 5.5:
Instale un cliente Ftp.

5.2.2 Comandos Ftp más usuales

A continuación presentamos una lista de los principales comandos que acepta el cliente:

pwd:
Imprimir el directorio actual.
ls:
Mostrar el contenido del directorio remoto.
cd <directorio>:
Nos permite cambiar de directorio.
get <fichero>:
Transfiere un fichero desde el host remoto al host local.
put <fichero>:
Transfiere un fichero desde el host local al host remoto.
!<comando local>:
Ejecuta un comando en un shell del cliente.
quit:
Cierra el intérprete del Ftp.

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

Taller 5.6:
Conéctese a un servidor Ftp que conozca desde el PC virtual y transfiera algún archivo. Haga lo mismo desde el host huésped (Windows).

5.2.3 Instalación del servidor

También existen múltiples servidores Ftp. El que nosotros vamos a instalar se llama vsftpd (http://vsftpd.beasts.org/):

Debian Linux:
 
root# apt-get install vsftpd

Fedora Core Linux:
 
root# yum install vsftpd

Gentoo Linux:
 
root# emerge vsftpd

5.2.4 Configuración del servidor

En el vsftpd, por defecto sólo tiene acceso el usuario anonymous. Para habilitar el acceso a todos los usuarios del sistema es necesario descomentar la línea local_enable=YES. Además, si queremos habilitar la escritura en los home’s de los usuarios, hay que descomentar la línea write_enable=YES.

Debian Linux:
El fichero de configuración es /etc/vsftpd.conf. Excepto lo indicado anteriormente no hay que realizar nada extra.
# Editar el fichero y salvarlo  
root# vi /etc/vsftpd.conf

Fedora Core Linux:
Si se desea que los usuarios tengan acceso a su home’s en la máquina remota hay deshabilitar selinux modificando el fichero /etc/selinux/config. Esto puede hacerse con el comando:
root# /usr/sbin/setsebool -P ftp_home_dir 1

Gentoo Linux:
Es necesario crear un fichero de configuración. Por suerte, la que viene en el fichero /etc/vsftpd/vsftpd.conf.example es suficiente para la mayoría de los servicios más comunes:
root# cp /etc/vsftpd/vsftpd.conf.example /etc/vsftpd/vsftpd.conf

5.2.5 Activación y desactivación del servicio

El demonio que hemos instalado se activa y desactiva de forma estándar. Véase el Apéndice C para saber cómo hacer esto.

Taller 5.7:
  1. Instale un servidor Ftp en un PC virtual y configurelo para que los usuarios puedan escribir en sus home’s.
  2. Acceda desde el host huésped (Windows) a su cuenta de usuario en el host virtual y transfiera algún fichero. Esto puede hacerse invocando desde el intérprete de comandos del MS-DOS al programa ftp. Pruebe a hacer lo mismo desde el PC virtual.
  3. Compruebe que activando y desactivando el servidor, el servicio se reanuda o deja de prestarse.
Cuestión 5.1:
Describa brevemente para qué se utilizan los programas Telnet y Ftp.
Cuestión 5.2:
Usando Wireshark (véase el Apéndice F) diseñe un time-line que muestre una interacción real entre un cliente y un servidor Telnet suponiendo que el usario sólo ejecuta el comando exit una vez que ha accedido al servidor remoto. Muestre sólo los paquetes generados por el protocolo Telnet que dependen de la sesión (los generados cuando introducimos nuestro login y nuestro password , y los que resultan de ejecutar el comando exit). En cada paquete transmitido indique el contenido del payload (la parte del paquete que es generada en la parte más alta de la pila de protocolos) y el instante en el que es capturado por el sniffer.
Cuestión 5.3:
En la aplicación Ftp, ¿qué diferencias hay entre transmitir los ficheros en formato binario y en formato ASCII? Investigue en Internet.
Cuestión 5.4:
Actualmente es imposible realizar Telnet o Ftp a un ordenador de la Universidad de Almería desde el resto de Internet, si estos servicios están siendo ofrecidos en los puertos estándar (véase el fichero /etc/services). ¿Por qué esto es así? Sabiendo que, por ejemplo, el tráfico Web sí está permitido, ¿podría instalarse un servidor Telnet en el puerto 80 (el puerto usado por los servidores Web) y conectarnos a él desde fuera de la Universidad? Razone su respuesta. Indique en este último caso qué otro servicio necesariamente no podría ofrecerse en el host que tiene el servidor Telnet escuchando en el puerto 80.