Servidor FTP

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.

¿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:

Servidor FTP en Windows

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
configuración de conexion contra un servidor 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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *