En los últimos 30 años cuando queremos transferir un archivo desde un servidor a nuestro ordenador simplemente hacemos clic un enlace de una página y el archivo en cuestión se transfiere.
Sin embargo mucho antes de la aparición del protocolo HTTP y las páginas web ya existía la necesidad de transferir archivos entre dos equipos.
Para solucionar esa necesidad nace el protocolo FTP (en inglés File Transfer Protocol) a principios de los años de la década de 1970 con el fin de proporcionar una forma sencilla y rápida de transferir archivos entre dos equipos.
Con nuestra mirada de hoy el Protocolo de Transferencia de Archivos nos puede parecer un protocolo un poco arcaico y complicado, sin embargo en ese entonces no había nada parecido.
La primera versión del protocolo luego se conocido como FTP se implementó en el MIT en 1971 y cuyas especificaciones originales se documentan en RFC 114 , es decir en la documentación que estandariza los protocolos de Internet que son las iniciales de Request For Comments
Esta primera versión era bastante diferente a la que utilizamos en nuestros días porque 1985 se modificó el protocolo para añadir nuevas funciones en el documento original en inglés RFC 959 o la versión traducida RFC 959.
Contenidos
¿Qué es un servidor FTP?
Un servidor FTP es un servicio que corre en un servidor y que soporta los comandos de FTP que facilitan la transferencia de archivos en uno u otro sentido, es decir permite subir archivos al servidor o descargarlos desde allí, para ello el usuario debe utilizar software cliente para conectarse usando un usuario y contraseña y una vez conectado puede navegar los los directorios y visualizar los archivos que contenga.
Sin embargo también puede ser un servidor anónimo que permita acceder sin contraseña, para descargar archivos aunque la subida seguramente esté bloqueada por seguridad.
Estando conectado al servidor el usuario puede subir archivos, descargarlos, modificar o eliminar cualquier archivo o crear o eliminar directorios.
Originalmente estaba diseñado para transferir archivos de texto o archivos planos basado en caracteres ASCII acrónimo inglés de American Standard Code for Information Interchange o en castellano Código Estándar Estadounidense para el Intercambio de Información.
Sin embargo con el tiempo evolucionó y permite transferir archivos binarios como pueden ser programas, imágenes, videos o cualquier otro tipo de archivos.
En la actualidad para la mayoría de los servicios cuando se quiere subir o descargar un archivo se hace desde un servidor web sin embargo hay en áreas que todavía es muy utilizado el servicio FTP como puede ser en el mundo del hosting.
Todos los proveedores de hosting provee acceso FTP a la carpeta del sitio para poder manipular los directorios y los archivos de un sitio web.
Tampoco es extraño encontrar empresas que comparten mediante FTP archivos con sus clientes
Otro uso muy extendido en el mundo IT es para transferir respaldos a un servidor remoto como medida de seguridad para garantizar la preservación de datos en un lugar geográfico o de red distinto.
Si bien hay otras formas más sencillas, eficientes y seguras de transferir datos sobre todo en internet, el FTP es una opción muy usada gracias a la rapidez de configuración y de compatibilidad entre sistemas.
Características del protocolo FTP
El protocolo FTP está basado en comandos que se envían al servidor y se obtiene una respuesta, la sintaxis de los comandos es muy similar a los comandos usados en la consola de cualquier sistema operativo.
Existen comandos para crear carpetas, para moverse entre los directorios, para listar el contenido, modificar permisos y un largo etc.
Con el correr de los años los clientes FTP evolucionaron y agregaron una capa gráfica que oculta de cierto modo la complejidad cambiando el tener que escribir a mano una larga secuencia de varios comandos en algo tan simple como arrastrar y soltar un icono en la pantalla para realizar la misma tarea.
Desde el punto de vista de la seguridad FTP se considera inseguro debido a que la transferencia se realiza en texto plano, en caso de que la comunicación sea interceptada los archivos se verían comprometidos, por eso para garantizar la seguridad se debe agregar alguna capa extra de cifrado.
Uno de los métodos más seguros para la transferencia de archivos es usar SFTP que son las siglas de SSH File Transfer Protocol, si bien desde el lado del cliente funciona igual realmente se trata de una implementación diferente que FTP, fue reescrita de cero no solo para agregar el cifrado sino también para solucionar deficiencias del FTP original.
Para utilizar SFTP el servidor debe tener habilitado un servidor SSH en lugar del FTP y las credenciales también debe ser emitidas para SSH, la ventaja es que se pueden utilizar un archivo de claves lo que lo torna más seguro.
Otro método muy utilizado es FTPS que es una extensión del FTP original agregando soporte para certificados SSL/TLS similares a los usados en sitios web, a nivel de seguridad está por debajo de la solidez de cifrado de SSH sin embargo es muy seguro también.
La ventaja de FTPS es que se puede utilizar con un servidor FTP común que soporte cifrado, otro método también muy seguro, tanto como SFTP es utilizar FTP bajo un túnel VPN (Virtual Private Network) que agrega una capa de cifrado estableciendo un túnel cifrado a nivel de red entre el cliente y el servidor VPN.
Tipos de Servidores FTP
Básicamente existen tres tipos de servidores FTP.
FTP autenticado
Es el que se accede con credenciales, ya sea un juego de usuario y contraseña o un archivo de clave, los servidores autenticados, es la implementación mas común que brinda seguridad a los datos publicados.
FTP anónimo
Un tipo de servidor muy común hace unas décadas es el servidor FTP anónimo, es decir que no se necesita un usuario y contraseña para acceder o el usuario por defecto es **anonymous** utilizado principalmente para el intercambio de archivos entre usuarios.
En ese tiempo no existían los enlaces, ni el html, ni los servidores web o los servicios en la nube para compartir un archivo, los métodos de difusión eran listas de correo o listas de discusión y salas de IRC (Internet Relay Chat) donde el FTP anónimo era usado para la diffusion de documentos, libros, juegos, software y archivos en general publicados en esos otros medios.
Hoy nos puede parecer casi una locura y peligroso un servicio anónimo donde cada uno puede subir o modificar con malas intenciones un archivo sin embargo no es muy diferente a lo que es Wikipedia hoy.
Servidores FTP Embebidos
Un tercer tipo de servidores son los Servidores Embebidos que es derivado del servidor anónimo y es el que se implementa a través del navegador para descargar archivos a nuestro PC, hoy casi a quedado en desuso sin embargo alguna distribuciones de Linux aun lo utilizan para publicar sus CD/DVD en sus sitios web
Instalación de un servidor FTP en Linux
Existen muchos clientes FTP tanto de consola como gráficos siendo estos últimos sin duda los mas populares debido a su facilidad de uso.
Hay varias alternativas como WinSCP, SmartFTP, FireFTP entre otros pero sin dudas el mas popular de todos es Filezilla, un cliente gratuito disponible tanto para Window, MacOS y Linux.
Instalar un programa en Linux es sumamente fácil si se hace desde los repositorios oficiales de cada distribución
Instalar Filezilla en Debian/Ubuntu
En el caso de la familia Debian y Ubuntu se puede instalar mediante apt o aptitude mediante el siguiente comando ejecutandolo desde una terminal.
sudo apt-get install filezilla
Instalar Filezilla en CentOS/RHEL
En el caso de CentOS/RHEL el administrador de paquetes cambia a YUM, también desde la consola se ejecuta:
sudo yum install filezilla
Instalar Filezilla en Fedora
Hasta hace pocos años Fedora utiliza YUM como administrador de paquetes aunque en los últimos años cambio a DNF
sudo dnf install filezilla
Aunque si escribimos yum en lugar de dnf aun funcionara debido a que los comandos son compatibles y el sistema lo ejecutara igual.
Instalar Filezilla en Arch
El administrador de paquetes de Arch se denomina pacman y lo ejecutamos de la siguiente manera:
pacman -S filezilla
Instalar Filezilla en Suse/OpenSuse
En el caso de Suse y OpenSuse podemos elegir instalarlo desde Yast, el administrador con interfaces gráficas como con zypper desde consola ejecutando:
zypper install filezilla
Instalar servidor FTP Filezilla otros Linux
Obviamente hay más distribuciones no solos las que mencionadas arribas y si bien es muy difícil que un programa como Filezilla no esté en los repositorios oficiales de cada distribución también existe otra alternativa y es SnapCraft un repositorio universal que permite instalar sus paquetes en cualquier distribución:
snap install filezilla
Instalación de un servidor FTP en Windows
Para la instalación en Windows (desktop o bien Windows Server) se debe descargar el instalador desde la pagina del proyecto Filezilla se pulsa en descargar y abrirá una ventana para seleccionar la descarga gratuita o la version de pago:
Si se desea la version gratuita se presiona en Download de la primera columna y espesara la descarga, una vez descargado se ejecuta el instalador y luego la instalación es la típica instalación de todo programa windows.
Cómo conectar a un servidor FTP
Independiente si se trata de Windows, Linux o MacOS, la configuración de los sitios es idéntica, para conectarse a un servidor FTP se necesitan tres datos básicos:
- IP del server o dominio
- Puerto
- Usuario y Password
Habitualmente el puerto es el 21 aunque esto puede cambiar, sobre todo si se utiliza SFTP donde puede ser el 22 u otro, tanto el puerto como la IP/Dominio y el usuario/contraseña debe ser proporcionado por el administrador del servidor FTP
Luego para configurar lo en Filezilla debemos ir a Gestión de Sitios y hacer clic en el botón de Nuevo Sitio.
Por último debemos completar los siguientes datos:
- Servidor: IP del server
- Puerto: 21
- Protocolo: FTP
- Cifrado: plano / sin cifrado
- Modo de acceso: preguntar la contraseña
- Usuario: usuario de FTP
Click en botón de Conectar.
Esta es la típica pantalla de configuración, una vez que se completen todos los datos solo se debe pulsar Conectar, si da error seguramente algún dato sea incorrecto o quizás el servidor no soporta cifrado TLS o Filezilla no puede manejar el certificado enviado por el servidor, en ese caso la mejor solución es modificar la opción de cifrado y seleccionar sin cifrado o inseguro dependiendo de la traducción
Conclusión
Como vemos es sumamente fácil de configurar un cliente FTP y si bien es uno de los protocolos más antiguos que existen aún sigue siendo sumamente importante y útil para muchas tareas.
Si bien en los últimos años a ido perdiendo terreno frente a Git para realizar deploy de aplicaciones en la nube sigue estando muy vigente sobre todo en el mundo del hosting compartido y en el mundo de administración de sistemas donde es muy utilizado transferir respaldos de una forma sencilla.