Definición:
FTP son las siglas de File Transfer Protocol o protocolo de transferencia de archivos. Es un protocolo de red que permite copiar archivos, consultar directorios y realizar otras operaciones entre un cliente y un servidor mediante una conexión basada en TCP.
FTP fue diseñado para intercambiar archivos entre sistemas conectados a una red y forma parte de los protocolos históricos de Internet. Su especificación principal se encuentra en el RFC 959, aunque posteriormente recibió extensiones y mecanismos adicionales.
Índice de contenidos
Arquitectura de FTP
FTP utiliza una arquitectura cliente-servidor con dos conexiones separadas:
- Cliente FTP: inicia la sesión y envía órdenes para autenticarse, navegar o transferir archivos.
- Servidor FTP: acepta conexiones, comprueba los permisos y ejecuta las operaciones autorizadas.
- Canal de control: mantiene la sesión y transporta órdenes y respuestas; normalmente utiliza el puerto 21 del servidor.
- Canal de datos: transporta listados de directorios y contenido de archivos mediante una conexión independiente.
La separación de canales diferencia FTP de protocolos como HTTP. No significa que uno sea una versión del otro: emplean modelos y órdenes distintos.
Cómo funciona una transferencia FTP
Una sesión habitual puede resumirse así:
- Conexión: el cliente abre el canal de control con el servidor.
- Autenticación: envía un nombre de usuario y una contraseña o utiliza acceso anónimo cuando el servidor lo permite.
- Navegación: consulta directorios y cambia la ubicación de trabajo mediante órdenes del protocolo.
- Selección del modo de datos: cliente y servidor acuerdan cómo establecer la conexión que transportará el contenido.
- Transferencia: el cliente descarga, sube, renombra o elimina archivos según sus permisos.
- Cierre: finaliza la sesión y se cierran las conexiones utilizadas.
FTP admite transferencias en modo ASCII y binario. El modo ASCII puede transformar finales de línea de archivos de texto entre sistemas; el modo binario conserva los bytes y es el apropiado para imágenes, ejecutables, archivos comprimidos y la mayoría de formatos actuales.
FTP activo y pasivo
Los modos activo y pasivo determinan quién inicia la conexión de datos:
- FTP activo: el cliente indica un puerto y el servidor inicia la conexión de datos hacia él.
- FTP pasivo: el servidor comunica un puerto disponible y el cliente inicia también la conexión de datos.
- Cortafuegos y NAT: el modo activo puede resultar problemático cuando el cliente no acepta conexiones entrantes.
- Uso habitual: el modo pasivo suele adaptarse mejor a redes domésticas, cortafuegos y traducción de direcciones.
Estos modos no cifran la comunicación. Solo cambian la forma de establecer el canal de datos.
Para qué se utiliza FTP
FTP permite automatizar o realizar manualmente distintas tareas:
- Publicar archivos web: transferir recursos a un servidor de hosting cuando el proveedor admite este protocolo.
- Distribuir archivos: ofrecer descargas desde un repositorio o servidor organizado por directorios.
- Intercambiar grandes volúmenes: mover conjuntos de archivos sin depender del correo electrónico.
- Mantener sistemas heredados: comunicarse con equipos y procesos que todavía utilizan FTP.
- Automatizar transferencias: ejecutar envíos o recogidas periódicas mediante scripts y clientes de línea de comandos.
FTP no sincroniza archivos por sí solo como un servicio de almacenamiento en la nube. Una aplicación puede comparar directorios y programar transferencias, pero esa lógica pertenece al cliente o al sistema que utiliza el protocolo.
Diferencias entre FTP, FTPS y SFTP
Los tres nombres se relacionan con la transferencia de archivos, pero no identifican el mismo protocolo:
- FTP: utiliza canales de control y datos propios y, en su forma original, no cifra credenciales ni contenido.
- FTPS: extiende FTP mediante TLS para proteger la autenticación y las transferencias. Mantiene la arquitectura y las órdenes de FTP.
- SFTP: es un protocolo de transferencia de archivos que funciona sobre SSH. No es FTP encapsulado ni una extensión de FTP.
- Compatibilidad: un servidor que ofrece FTP o FTPS no admite necesariamente SFTP, y viceversa.
- Puertos y configuración: cada opción requiere servicios, reglas de red y credenciales acordes con el protocolo utilizado.
El cifrado protege el contenido durante el transporte, pero no sustituye la gestión de permisos, la actualización del servidor o la protección de las credenciales.
Clientes FTP y medidas de seguridad
Un cliente FTP puede ofrecer interfaz gráfica, línea de comandos, colas y automatización. Al utilizarlo conviene comprobar:
- Protocolo seleccionado: FTP, FTPS y SFTP no deben configurarse como si fueran equivalentes.
- Identidad del servidor: los certificados TLS o las claves SSH ayudan a comprobar el destino de la conexión.
- Credenciales: deben utilizarse cuentas individuales, contraseñas robustas y permisos limitados.
- Acceso anónimo: solo debe habilitarse para recursos y operaciones expresamente públicos.
- Registros: los eventos de autenticación y transferencia permiten investigar errores o accesos no autorizados.
- Exposición de red: los puertos y rangos pasivos deben limitarse a lo necesario.
Cuando no existe un requisito de compatibilidad con FTP sin cifrar, FTPS o SFTP protegen las comunicaciones frente a la lectura directa de credenciales y archivos durante el tránsito.
