El pasado 16 de abril se han cumplido 40 años de existencia del protocolo FTP (File Transfer Protocol), protocolo de transferencia de archivos en español. No deja de ser sorprendente que en un mundo tan cambiante y evolucionado como Internet, un protocolo sobreviva nada menos que cuatro décadas.
Como pequeño tributo a esta efemérides, vamos a dedicar la imagen de la semana al protocolo FTP, recordando cómo empezó y con cierta nostalgia, los comandos que se utilizan en un terminal para manejar el protocolo FTP, que siguen siendo de gran utilidad.
Orígenes y evolución de FTP
El protocolo FTP fue propuesto por primera vez por Abhay Bhushan, del MIT, en abril de 1971 como un medio para transferir archivos grandes entre los diferentes sistemas que componían ARPANet, precursora de Internet.
Al estar pensado para un entorno muy cerrado como era ARPANet, la seguridad no fue un factor fundamental. Los comandos, datos del usuario y contraseña viajan en texto plano fácilmente rastreable.
La única medida implementada en este sentido fue el establecimiento de números de puerto aleatorios que se utilizaban para las conexiones, para dificultar el uso de rastreadores que escuchaban por un puerto específico.
La explosión de Internet como medio masivo de comunicación puso en evidencia la cortedad de miras de la seguridad original. Hasta mediados de la primera década de este siglo, no aparecieron los protocolos cifrados FTPS y SFTP.
Para el público en general, otros medios de transferencia de archivos se han universalizado, como los utilizados en las redes P2P. El protocolo ha mantenido su popularidad en parte debido a que todavía cuenta con algunas ventajas sobre el mucho más reciente protocolo HTTP, como la capacidad de manejar las interrupciones temporales en las transferencias, que pueden reanudarse tras un corte.
Comandos básicos FTP
La lista de comandos FTP es razonablemente extensa. Vamos a repasar los más básicos, aquellos que permiten descargar o subir ficheros a un servidor o hacer una copia de seguridad de la configuración de un router ADSL.
Hoy en día, prácticamente todos los sistemas operativos traen un cliente FTP de consola aunque poca gente los utiliza. Sobre este cliente elemental vamos a repasar los comandos. Para estos ejemplos he montado un servidor básico FTP.
Una vez dentro de cualquier terminal, escribimos ftp
. Si el cliente está instalado, aparecerá un prompt:
ftp>
Para establecer la conexión con el servidor remoto escribimos:
open [nombre del servidor o dirección IP]
Si la conexión se establece con éxito, aparecerán una serie de mensajes precedidos, en algunos casos, de un código numérico, (conectado, bienvenida, estado del servidor, información auxiliar y petición para escribir el nombre de usuario).
Introducimos el nombre de usuario y pulsamos la tecla ENTER. Dependiendo de la configuración del servidor, si el nombre de usuario no está registrado, te conectarás como usuario anónimo si está permitido. En este último caso y en servidores públicos, como Red Iris, la contraseña es cualquier palabra, pero siempre ha sido un signo de cortesía, al menos en el pasado, consignar nuestro correo electrónico.
Si ya has introducido la contraseña, que en los clientes normales de consola no ves reflejada de ninguna forma, y el servidor autoriza la entrada, un mensaje de aviso te confirmará que te has autentificado de forma correcta.
Salvo que sepas a la perfección lo que buscas y dónde está, el primer comando que vas a utilizar es:
ls
o dir
para conocer el contenido del directorio raíz del servidor.
Una vez te ha mostrado el contenido, puedes ir navegando por las carpetas mediante el comando:
cd [nombre carpeta]
o cdup
para subir al directorio superior
En cada acceso con éxito te mostrará la confirmación de que estás en el directorio correcto.
Lo normal en servidores públicos es que sólo se permita navegar y descargar contenidos. Únicamente se pueden crear directorios, borrarlos, subir ficheros o borrarlos con cuentas de usuario especiales.
Puede ser útil decidir el directorio de nuestra máquina que vamos a emplear para contener los ficheros que queremos descargar o subir, para ello utilizamos el comando:
lcd [ruta]
Si ya hemos localizado en el servidor el fichero que nos interesa, para descargar escribiremos:
get [nombre fichero]
esto iniciará la secuencia de descarga.
Si por el contrario queremos alojar un fichero contenido en nuestra máquina en el servidor, utilizaremos el comando:
put [nombre fichero]
Existen comandos para concatenar descargas o subidas, pero los obviamos aquí. Una vez terminada la subida o bajada, lo normal es que se nos muestre información del proceso, tal como tamaño del archivo, tiempo y velocidad de descarga.
Si ya hemos terminado, cerramos la sesión con el comando close
y para salir del cliente FTP a la consola, bye
. También puedes utilizar el comando quit
, que hace ambas cosas, terminar la sesión y salir a la consola.
Como ejemplo, prueba a entrar por FTP dentro del servidor público RedIris (ftp://ftp.rediris.es), aloja muchas distribuciones GNU/Linux y aunque no descargues nada, es un buen ejercicio para probar los comandos y volver por unos instantes a un pasado que está vigente hoy en día.