Guías

FTP : Que es y como funciona este protocolo de transferencia de archivos

Descubre cómo funciona el protocolo FTP, sus orígenes, modos de conexión y software más utilizado

El protocolo FTP (File Transfer Protocol) es una de las tecnologías más antiguas de internet, con más de 50 años de historia. A pesar de los avances en métodos de transferencia de archivos, el FTP sigue siendo una herramienta fundamental en determinados ámbitos. En este artículo, exploraremos los orígenes, el funcionamiento y las aplicaciones actuales de este protocolo pionero.

FTP : File Transfer Protocol

El Protocolo de Transferencia de Archivos, más conocido por sus siglas en inglés “File Transfer Protocol(FTP), es una de las tecnologías más antiguas de internet, con más de 50 años de historia. Implementado por primera vez en abril de 1971 y publicado como el RFC 114, el FTP nació incluso antes de que existiera la pila de protocolos TCP/IP que da soporte a internet.

En sus inicios, el FTP se utilizaba en ARPANET, la red precursora de internet, para permitir el intercambio de archivos entre los diferentes sistemas conectados. A lo largo de la década de 1970 y 1980, el protocolo FTP fue perfeccionándose y ampliando sus funcionalidades, hasta que en 1985 se publicó el RFC 959, que es la versión actualmente utilizada.

La estructura cliente-servidor es fundamental en el funcionamiento del FTP. Por un lado, tenemos el programa cliente FTP, que se ejecuta en el equipo del usuario y le permite conectarse a un servidor FTP remoto. Por otro lado, el servidor FTP es un programa especial que se ejecuta en un equipo conectado normalmente a internet, cuya función es permitir el intercambio de datos entre diferentes sistemas.

Cabe destacar que el FTP, al ser un protocolo de la capa de aplicación del modelo TCP/IP, requiere estar soportado por esta pila de protocolos de red. Esto significa que tanto el cliente como el servidor FTP deben estar conectados a una red que utilice el Protocolo de Control de Transmisión (TCP) para poder establecer la comunicación y transferir los archivos.

Software FTP más populares

A lo largo de los años, se han desarrollado numerosos programas cliente y servidor FTP. Algunos de los más populares entre los usuarios son:

Clientes FTP:

  • FileZilla: Cliente FTP gratuito y multiplataforma. FileZilla es uno de los clientes FTP más populares y utilizados. Está disponible para Windows, macOS y Linux, y ofrece una interfaz gráfica intuitiva que facilita la transferencia de archivos. Cuenta con características avanzadas como soporte para SFTP, FTP sobre SSL/TLS, explorador de directorios remoto y local, y programación de tareas.Página oficial: https://filezilla-project.org/
  • WinSCP: Cliente FTP con interfaz gráfica para Windows. WinSCP es otro cliente FTP muy popular, especialmente entre los usuarios de Windows. Además de la transferencia de archivos, permite realizar tareas de administración remota, como la edición de archivos y la sincronización de directorios. Ofrece soporte para diversos protocolos, como FTP, FTPS, SFTP y SCP. Página oficial: https://winscp.net/
  • CuteFTP: Cliente FTP con funciones avanzadas, de pago. CuteFTP es un cliente FTP de pago que se caracteriza por sus funciones avanzadas, como la programación de tareas, la integración con herramientas de desarrollo y la compatibilidad con una amplia gama de protocolos. Está disponible para Windows y es considerado una solución robusta y completa para usuarios profesionales. Página oficial: https://www.globalscape.com/cuteftp

Servidores FTP:

  • Titan FTP Server: Servidor FTP para Windows con características de seguridad. Titan FTP Server es una solución de servidor FTP para entornos Windows que se destaca por sus funciones de seguridad, como el soporte para SSL/TLS, autenticación de usuarios y control de acceso. Está orientado a empresas y organizaciones que requieren un servidor FTP robusto y seguro. Página oficial: https://www.titanftp.com/
  • WS_FTP Server: Servidor FTP con soporte para SSL/TLS y autenticación. WS_FTP Server es otro servidor FTP para Windows que ofrece características avanzadas, como el soporte para protocolos seguros (FTPS y SFTP), autenticación de usuarios y gestión de permisos. Es una opción popular entre las pequeñas y medianas empresas que necesitan un servidor FTP con funcionalidades de seguridad. Página oficial: https://www.ipswitch.com/products/ws-ftp-server/
  • FileZilla Server: Servidor FTP gratuito y multiplataforma. FileZilla Server es la contraparte de servidor del conocido cliente FTP FileZilla. Al igual que el cliente, el servidor FileZilla es gratuito y de código abierto, lo que lo hace una opción muy accesible. Ofrece características como autenticación de usuarios, control de acceso, registros detallados y soporte para protocolos seguros como FTPS y SFTP. Página oficial: https://filezilla-project.org/server.php

Modos de conexión FTP

El protocolo FTP admite dos modos de conexión entre el cliente y el servidor: el modo activo y el modo pasivo. La elección del modo dependerá de factores como la configuración de seguridad de los equipos implicados y la presencia de firewalls.

Modo activo:

En el modo activo, el servidor FTP siempre crea el canal de datos en su puerto 20, mientras que en el lado del cliente, el canal de datos se asocia a un puerto aleatorio mayor que el 1024. Para ello, el cliente envía un comando “PORT” al servidor por el canal de control, indicándole ese número de puerto, de manera que el servidor pueda abrirle una conexión de datos por donde se transferirán los archivos y los listados.

Este modo activo tiene un problema de seguridad, ya que la máquina cliente debe estar dispuesta a aceptar cualquier conexión de entrada en un puerto superior al 1024, lo que puede suponer un riesgo en redes inseguras como internet. Para solucionar esto, se desarrolló el modo pasivo.

Modo pasivo:

En el modo pasivo, cuando el cliente envía un comando “PASV” sobre el canal de control, el servidor FTP le indica por ese canal de control, el puerto (mayor a 1024) al que debe conectarse el cliente. El cliente inicia entonces una conexión desde un puerto local hacia el puerto del servidor especificado.

De esta manera, se evita que el cliente tenga que abrir puertos para recibir conexiones entrantes, lo que supone una mejora importante en términos de seguridad, especialmente al operar en redes abiertas como internet.

Autentificación en el servidor FTP

Para poder transferir archivos utilizando el protocolo FTP, es necesario establecer una conexión entre el cliente FTP y el servidor FTP remoto. Existen dos formas principales de conectarse a un servidor FTP: el acceso anónimo y el acceso de usuario.

Acceso anónimo:

En el acceso anónimo, los servidores FTP permiten que cualquier usuario se conecte sin necesidad de proporcionar un nombre de usuario y contraseña. Esto se conoce como “FTP anónimo” o “FTP de acceso público”.

Para conectarse a un servidor FTP de este modo, generalmente basta con utilizar el nombre de usuario “anonymous” o “ftp” cuando el cliente FTP lo solicite. En lugar de una contraseña, suele ser común que se pida al usuario que introduzca su dirección de correo electrónico u otro dato similar.

Este tipo de acceso anónimo permite a los usuarios descargar archivos que el administrador del servidor ha marcado como públicos, pero suele limitar las opciones de subida o modificación de archivos.

Acceso de usuario:

Por otro lado, el acceso de usuario implica conectarse al servidor FTP utilizando un nombre de usuario y una contraseña específicos. Esto proporciona al usuario mayores privilegios y acceso a directorios y archivos que no están disponibles en el acceso anónimo.

El acceso de usuario es el método más común cuando se requiere una mayor seguridad o un control más estricto sobre los archivos alojados en el servidor FTP. Cada usuario tiene su propio conjunto de permisos y restricciones, definidos por el administrador del servidor.

Conexión a un servidor FTP a través de la interfaz del cliente

Cuando se utiliza un cliente FTP, la ventana principal típicamente muestra dos paneles: uno para el sistema local y otro para el sistema remoto (el servidor FTP al que se está conectando). Para establecer la conexión con el servidor FTP, el usuario debe proporcionar la información necesaria en los campos correspondientes.

filezilla

En la parte superior de la ventana, generalmente se encuentran los campos para ingresar los datos de conexión:

Servidor/Dirección: Este campo se utiliza para especificar la dirección IP o el nombre de dominio del servidor FTP al que se desea conectar. Por ejemplo: ftp.example.com

Puerto: El puerto predeterminado para las conexiones FTP es el 21, pero algunos servidores pueden utilizar puertos diferentes. El usuario debe ingresar el número de puerto correcto, como 21 o 2021.

Nombre de usuario: Si el servidor FTP requiere autenticación, en este campo se debe ingresar el nombre de usuario proporcionado por el administrador del servidor. En el caso de acceso anónimo, se puede utilizar “anonymous” o “ftp” como nombre de usuario.

Contraseña: Si se requiere autenticación, también se debe ingresar la contraseña correspondiente al nombre de usuario. En el caso de acceso anónimo, generalmente se solicita una dirección de correo electrónico como contraseña.

Una vez que se han ingresado todos los datos de conexión correctamente, el usuario puede hacer clic en el botón “Conectar” o “Enviar” para establecer la comunicación con el servidor FTP. Esto permitirá al cliente FTP acceder a los archivos y directorios disponibles en el sistema remoto.

Es importante asegurarse de tener la información de conexión correcta, especialmente el nombre de usuario y la contraseña, para poder acceder a los recursos del servidor FTP de manera exitosa.

Tipos de transferencia de archivos

Dentro del protocolo FTP, existen dos modos principales de transferencia de archivos: el modo ASCII y el modo binario. La elección del modo dependerá del tipo de archivo que se vaya a transferir.

Modo ASCII:

El modo ASCII es el adecuado para transferir archivos que contienen únicamente caracteres imprimibles, como archivos de texto plano (por ejemplo, archivos .txt, .html, .css, etc.). En este modo, el FTP se encarga de transformar los símbolos de control, como los saltos de línea, para mantener la compatibilidad entre diferentes sistemas operativos.

Por ejemplo, si un archivo de texto creado en un sistema Linux (donde el salto de línea se representa con un solo carácter, el byte 10 decimal) se transfiere en modo ASCII a un sistema Windows (donde el salto de línea se representa con dos caracteres, los bytes 13 y 10 decimal), el FTP se encargará de realizar la conversión correspondiente para que el archivo se visualice correctamente en el sistema destino.

Modo binario:

Por otro lado, el modo binario se utiliza para transferir archivos que no son de texto plano, como ejecutables, imágenes, archivos de audio, archivos comprimidos (zip, rar, etc.), entre otros. En este modo, el FTP no aplica ninguna transformación a los datos, sino que los transfiere tal cual se encuentran en el archivo original.

Utilizar el modo binario es crucial para mantener la integridad de este tipo de archivos durante la transferencia, ya que cualquier modificación en los datos podría corromper el archivo y hacerlo inutilizable en el sistema de destino

Comandos FTP más usuales

El protocolo FTP cuenta con una amplia variedad de comandos que permiten a los usuarios interactuar con el servidor y manipular archivos y directorios de manera remota. Algunos de los comandos FTP más comúnmente utilizados son:

  • open: Inicia una conexión con un servidor FTP.
  • close o disconnect: Finaliza una conexión FTP sin cerrar el programa cliente.
  • bye o quit: Finaliza una conexión FTP y la sesión de trabajo con el programa cliente.
  • cd: Cambia el directorio de trabajo en el servidor.
  • delete: Borra un archivo en el servidor.
  • mdelete: Borra múltiples archivos en el servidor según un patrón.
  • dir: Muestra el contenido del directorio actual en el servidor.
  • get: Descarga un archivo del servidor.
  • mget: Descarga múltiples archivos del servidor.
  • put: Sube un archivo al directorio activo del servidor.
  • mput: Sube múltiples archivos al servidor.
  • pwd: Muestra el directorio de trabajo actual en el servidor.
  • rename: Cambia el nombre de un archivo en el servidor.
  • rmdir: Elimina un directorio vacío en el servidor.
  • bin o binary: Activa el modo de transferencia binario.
  • ascii: Activa el modo de transferencia en texto ASCII.

Estos son solo algunos de los comandos más destacados y comúnmente utilizados en el protocolo FTP. Dependiendo del programa cliente FTP que se use, pueden estar disponibles comandos adicionales o variantes de los mencionados.

Códigos de respuesta de FTP

El protocolo FTP estandariza una serie de códigos de respuesta que son devueltos por el servidor FTP al cliente. Estos códigos permiten al cliente entender el resultado de las diferentes operaciones y acciones realizadas durante la conexión.

Los códigos de respuesta FTP son valores de tres dígitos, donde cada dígito tiene un significado específico:

  • Primer dígito:
    – 2yz: Respuesta de éxito
    – 4yz o 5yz: Respuesta de error o fallo
    – 1yz o 3yz: Respuesta incompleta o de error
  • Segundo dígito:
    – x0z: Respuestas relacionadas con errores de sintaxis
    – x1z: Respuestas informativas
    – x2z: Respuestas relacionadas con conexiones y control de datos
    – x3z: Respuestas de autenticación y contabilidad
    – x4z: Respuestas sin definición específica
    – x5z: Respuestas relacionadas con el sistema de archivos
  • Tercer dígito:
    – Proporciona detalles adicionales para cada una de las categorías definidas por el segundo dígito.

Algunos ejemplos de códigos de respuesta FTP comunes son:

  • 150: Iniciando transferencia de datos
  • 200: Comando ejecutado correctamente
  • 226: Transferencia de datos completada
  • 331: Usuario y contraseña requeridos
  • 425: No se puede abrir la conexión de datos
  • 550: Permiso denegado, archivo no encontrado

Estos códigos de respuesta estandarizados permiten a los clientes FTP interpretar de manera precisa el estado y los resultados de las diferentes operaciones realizadas durante una sesión FTP, facilitando así la automatización de tareas y la gestión de errores.

Protocolo SFTP: La versión segura del FTP

Además del protocolo FTP tradicional, existe una variante conocida como SFTP (Secure File Transfer Protocol), que proporciona una capa adicional de seguridad a la transferencia de archivos.

El SFTP se basa en el protocolo SSH (Secure Shell), lo que permite que la comunicación entre el cliente y el servidor se realice de manera cifrada. A diferencia del FTP, donde la información se transmite en texto plano, incluyendo los datos de autenticación, el SFTP encripta todo el tráfico, evitando que pueda ser interceptado y leído por terceros.

Para establecer una conexión SFTP, el cliente debe proporcionar la siguiente información:

– Servidor/Dirección: La dirección IP o el nombre de dominio del servidor SFTP al que se desea conectar.
– Puerto: El puerto predeterminado para SFTP es el 22, aunque algunos servidores pueden utilizar puertos diferentes.
– Nombre de usuario: El nombre de usuario proporcionado por el administrador del servidor SFTP.
– Contraseña: La contraseña correspondiente al nombre de usuario, o bien, una clave SSH (par de claves pública y privada) para autenticación.

Al utilizar el protocolo SFTP, los datos transferidos, incluyendo el nombre de usuario y la contraseña, viajan de forma cifrada, lo que proporciona un mayor nivel de seguridad en comparación con el FTP tradicional. Esto lo convierte en una opción preferida para la transferencia de archivos confidenciales o sensibles, como en el caso de alojamiento web, copias de seguridad o intercambio de información entre empresas.

Algunas de las ventajas clave del SFTP sobre el FTP tradicional son:

– Cifrado de toda la comunicación para proteger la privacidad de los datos.
– Autenticación más segura mediante claves SSH, en lugar de contraseñas en texto plano.
– Funcionalidades adicionales, como la compatibilidad con permisos de archivos y directorios.
– Mejor compatibilidad con firewalls y redes más restrictivas.

Botón volver arriba