FTP
FTP, sigla de File Transfer Protocol y traducido como protocolo de transferencia de archivos, es un protocolo de la capa de aplicación utilizado para transferir, administrar y consultar archivos entre un cliente y un servidor mediante una red basada en TCP/IP. Permite iniciar una sesión remota, recorrer directorios, descargar archivos, subir contenidos, cambiar nombres, crear carpetas, eliminar elementos y consultar información del sistema de archivos conforme a los permisos concedidos a cada cuenta.
FTP utiliza una conexión de control separada de la conexión empleada para transferir datos. La conexión de control se establece tradicionalmente mediante el puerto TCP 21 y permanece abierta durante la sesión, mientras las conexiones de datos se crean según las operaciones ejecutadas y el modo activo o pasivo seleccionado.
El FTP convencional transmite nombres de usuario, contraseñas, comandos y datos sin cifrado. Esta característica permite que la información sea interceptada o modificada dentro de redes no confiables. Para operaciones modernas deben preferirse alternativas protegidas como FTPS, que incorpora TLS al protocolo FTP, o SFTP, que funciona sobre SSH y constituye un protocolo diferente.
En marketing digital, FTP se ha utilizado históricamente para publicar páginas, subir imágenes, transferir catálogos, administrar archivos de hosting, importar bases de productos, compartir materiales creativos y mantener sitios web. Su papel ha disminuido frente a SFTP, paneles de control, sistemas de despliegue, almacenamiento en la nube y herramientas basadas en Git, aunque continúa presente en servidores heredados, imprentas, medios, automatizaciones y entornos empresariales.
Introducción
La transferencia de archivos representa una de las necesidades fundamentales de las redes informáticas. Los usuarios y sistemas necesitan mover documentos, programas, imágenes, bases de datos, respaldos y otros recursos entre computadoras que pueden encontrarse en ubicaciones diferentes.
FTP fue diseñado para proporcionar un método estandarizado de transferencia entre sistemas potencialmente distintos. El protocolo buscaba abstraer diferencias relacionadas con sistemas operativos, nombres de archivos, estructuras de directorios, representaciones de texto y formatos de almacenamiento.
Una sesión FTP habitual incluye dos participantes:
- un cliente FTP;
- un servidor FTP.
El cliente inicia la conexión, proporciona credenciales y envía comandos. El servidor interpreta las instrucciones, verifica permisos y devuelve respuestas numéricas acompañadas frecuentemente de mensajes descriptivos.
Una interacción simplificada puede seguir este proceso:
- El cliente se conecta al servidor por el puerto TCP 21.
- El servidor devuelve un mensaje de bienvenida.
- El cliente envía el nombre de usuario mediante `USER`.
- El servidor solicita la contraseña.
- El cliente envía la contraseña mediante `PASS`.
- El servidor autentica la cuenta.
- El cliente selecciona el modo de transferencia.
- El cliente solicita una lista o archivo.
- Se establece una conexión de datos separada.
- El archivo se transfiere.
- La conexión de datos se cierra.
- La sesión de control puede continuar para otras operaciones.
Esta separación entre control y datos diferencia a FTP de protocolos más simples que utilizan una única conexión para todas las operaciones.
FTP puede utilizarse de forma interactiva mediante un programa gráfico o línea de comandos. También puede formar parte de scripts, tareas programadas, sistemas empresariales y procesos automatizados.
Durante las primeras décadas de internet, FTP fue una herramienta principal para distribuir software, publicar sitios y proporcionar repositorios públicos. Muchas universidades, empresas y organismos mantenían servidores de FTP anónimo desde los cuales cualquier persona podía descargar archivos.
Los navegadores web llegaron a incorporar soporte para direcciones con el esquema `ftp://`. Este soporte fue retirado gradualmente debido a su bajo uso, complejidad, incompatibilidades y problemas de seguridad. Actualmente, las transferencias suelen realizarse mediante clientes dedicados, herramientas de línea de comandos o sistemas integrados.
El protocolo continúa siendo técnicamente funcional y forma parte de los estándares históricos de internet. Su uso debe evaluarse según el contexto, porque FTP sin protección resulta inadecuado para credenciales, datos personales, archivos comerciales o redes públicas.
Definición
FTP puede definirse como un protocolo cliente-servidor para la transferencia y administración remota de archivos mediante conexiones TCP separadas para control y datos.
Una definición operativa puede apoyarse en los siguientes criterios:
- Protocolo de aplicación: funciona sobre la capa de transporte y proporciona comandos relacionados con archivos.
- Arquitectura cliente-servidor: un cliente inicia solicitudes hacia un servidor FTP.
- Conexión de control: los comandos y respuestas se intercambian mediante una sesión persistente.
- Conexión de datos: las listas y archivos utilizan conexiones independientes.
- Autenticación: puede utilizar usuarios, contraseñas, cuentas anónimas u otros mecanismos extendidos.
- Administración remota: permite consultar, crear, cambiar y eliminar elementos conforme a permisos.
- Transferencia bidireccional: admite descargas y cargas.
- Modos activo y pasivo: determina qué participante inicia la conexión de datos.
- Representaciones de datos: puede transferir texto, archivos binarios y otras estructuras definidas históricamente.
- Respuestas numéricas: el servidor informa resultados mediante códigos de tres dígitos.
- Extensibilidad: incorpora mecanismos para anunciar comandos y capacidades adicionales.
- Ausencia de cifrado en su forma original: requiere extensiones o protocolos alternativos para proteger la comunicación.
La especificación principal se encuentra en RFC 959, publicada en 1985 como evolución de versiones anteriores del protocolo. FTP ha recibido extensiones relacionadas con seguridad, negociación de características, internacionalización, IPv6, transferencias reiniciables y listados estructurados.
FTP describe cómo se intercambian comandos y datos, pero no determina por sí mismo la interfaz gráfica, el sistema de cuentas, las políticas organizacionales ni el almacenamiento físico del servidor.
Terminología
FTP. Sigla de File Transfer Protocol.
Cliente FTP. Programa que inicia conexiones y permite administrar archivos remotos.
Servidor FTP. Programa o sistema que recibe conexiones y aplica permisos.
Sesión FTP. Periodo comprendido entre la conexión, autenticación y cierre.
Conexión de control. Canal utilizado para comandos y respuestas.
Conexión de datos. Canal temporal utilizado para transferir archivos o listados.
Canal de comandos. Otra denominación para la conexión de control.
Canal de datos. Conexión utilizada para el contenido transferido.
Modo activo. Modalidad donde el servidor inicia la conexión de datos hacia el cliente.
Modo pasivo. Modalidad donde el cliente inicia también la conexión de datos.
FTP anónimo. Servicio que permite acceso público mediante una cuenta convencionalmente llamada `anonymous`.
Usuario FTP. Cuenta autorizada para acceder a uno o varios directorios.
Directorio raíz. Punto superior visible para la cuenta.
Chroot. Técnica que restringe la vista del proceso a una parte del sistema de archivos.
Directorio remoto. Carpeta situada en el servidor.
Directorio local. Carpeta situada en el dispositivo del cliente.
Descarga. Transferencia desde el servidor hacia el cliente.
Subida. Transferencia desde el cliente hacia el servidor.
Transferencia ASCII. Modo destinado históricamente a texto y conversiones de final de línea.
Transferencia binaria. Modo que conserva los bytes del archivo.
Puerto de control. Puerto donde escucha el servidor para iniciar sesiones, tradicionalmente TCP 21.
Puerto de datos. Puerto utilizado para una transferencia o listado.
FTPS. FTP protegido mediante TLS.
FTP explícito. FTPS donde la conexión comienza como FTP y se actualiza mediante el comando `AUTH TLS`.
FTP implícito. Variante donde TLS se negocia desde el inicio en un puerto específico; se utiliza en la práctica, aunque RFC 4217 favorece el modelo explícito.
SFTP. SSH File Transfer Protocol, protocolo distinto que funciona sobre SSH.
TFTP. Trivial File Transfer Protocol, protocolo simple basado en UDP y diferente de FTP.
FXP. Transferencia donde un cliente coordina el movimiento de datos entre dos servidores FTP.
Resume. Reanudación de una transferencia interrumpida.
Código de respuesta. Número de tres dígitos emitido por el servidor.
Banner. Mensaje inicial presentado por el servidor.
Timeout. Tiempo máximo permitido sin actividad o sin respuesta.
Keepalive. Mecanismo utilizado para mantener activa una sesión o detectar desconexiones.
Contexto histórico y evolución
FTP pertenece a los protocolos más antiguos de las redes informáticas y precede a la Web moderna.
Primeras redes y necesidad de transferencia
Durante el desarrollo de ARPANET surgió la necesidad de transferir archivos entre computadoras con arquitecturas, sistemas operativos y formatos diferentes.
Los sistemas podían representar texto, caracteres, registros y estructuras de archivo de maneras incompatibles. Un protocolo común debía establecer convenciones para que dos máquinas pudieran intercambiar información.
Las primeras propuestas de FTP aparecieron durante la década de 1970 dentro de la serie Request for Comments.
RFC 114
RFC 114, publicado en 1971, presentó una de las primeras especificaciones relacionadas con un protocolo de transferencia de archivos.
El diseño continuó evolucionando mediante diferentes documentos, correcciones y experimentos.
RFC 354 y RFC 542
Las primeras versiones ajustaron:
- comandos;
- representación;
- conexiones;
- respuestas;
- procedimientos de acceso.
La arquitectura se desarrolló en paralelo con cambios dentro de ARPANET y los protocolos de transporte.
RFC 765
RFC 765, publicado en 1980, definió una versión importante del protocolo y sustituyó especificaciones anteriores.
Sus objetivos incluían:
- promover el intercambio de archivos;
- facilitar el uso remoto de computadoras;
- proteger al usuario de diferencias entre sistemas;
- transferir datos con fiabilidad y eficiencia.
Transición a TCP/IP
La migración de ARPANET hacia TCP/IP exigió adaptar FTP a la nueva arquitectura de transporte.
FTP terminó utilizando conexiones TCP fiables para control y datos.
RFC 959
RFC 959 fue publicado en octubre de 1985 por Jon Postel y Joyce Reynolds. Se convirtió en la especificación principal del protocolo y recibió la categoría de Internet Standard STD 9.
RFC 959 consolidó:
- modelo cliente-servidor;
- conexión de control;
- proceso de transferencia;
- comandos;
- respuestas;
- tipos de representación;
- estructuras;
- modos.
También incorporó comandos como:
- `CDUP`;
- `MKD`;
- `RMD`;
- `PWD`;
- `SYST`;
- `STOU`.
Expansión de internet
Durante las décadas de 1980 y 1990, FTP se utilizó ampliamente para distribuir:
- sistemas operativos;
- controladores;
- software libre;
- documentos;
- publicaciones científicas;
- archivos multimedia;
- actualizaciones.
Los servidores anónimos funcionaban como bibliotecas públicas de archivos.
FTP anónimo
Los usuarios podían iniciar sesión con el nombre `anonymous` y proporcionar convencionalmente un correo electrónico como contraseña.
Este modelo permitía distribución pública sin crear cuentas individuales.
Los servidores podían limitar a los visitantes a operaciones de lectura y directorios específicos.
Aparición de la Web
La World Wide Web facilitó acceder a documentos mediante enlaces y navegadores. HTTP comenzó a sustituir FTP para gran parte de la distribución pública porque ofrecía:
- navegación más sencilla;
- integración con páginas;
- compatibilidad con proxies;
- menor complejidad de conexiones;
- mejor funcionamiento con firewalls.
FTP continuó siendo utilizado para administración y publicación de sitios.
Negociación de extensiones
RFC 2389, publicado en 1998, introdujo los comandos `FEAT` y `OPTS`.
`FEAT` permite que el cliente consulte las capacidades anunciadas por el servidor.
Esta negociación redujo problemas derivados de asumir que todos los servidores implementaban las mismas extensiones.
IPv6 y NAT
El diseño original se creó para IPv4 y presentaba dificultades con dispositivos NAT y firewalls.
RFC 2428 introdujo:
- `EPRT`;
- `EPSV`.
Estas instrucciones permiten comunicar endpoints de datos de forma compatible con IPv4, IPv6 y futuras familias de red.
Seguridad
RFC 2577 documentó problemas como:
- ataques bounce;
- robo de contraseñas;
- enumeración;
- control de acceso;
- problemas con transferencias de terceros.
RFC 2228 definió extensiones generales de seguridad para FTP.
RFC 4217, publicado en 2005, especificó cómo utilizar TLS con FTP y estableció la base del FTPS moderno.
Internacionalización
RFC 2640 abordó el uso de UTF-8 y caracteres de distintos idiomas en nombres de archivos, comandos y respuestas.
La compatibilidad real continúa dependiendo de cliente, servidor, sistema de archivos y configuración.
Extensiones modernas
RFC 3659 incorporó comandos y características como:
- `SIZE`;
- `MDTM`;
- `MLST`;
- `MLSD`;
- reanudación mediante `REST STREAM`;
- listados con formato definido.
Los listados tradicionales generados mediante `LIST` variaban entre sistemas y resultaban difíciles de procesar automáticamente. `MLSD` proporciona datos estructurados con hechos como tamaño, tipo y fecha.
Registro de comandos
RFC 5797 estableció un registro administrado por IANA para comandos y nombres de características FTP.
El registro ayuda a evitar conflictos entre extensiones.
Los navegadores eliminaron gradualmente el soporte integrado para FTP.
Entre los motivos se encontraban:
- bajo uso;
- tráfico sin cifrar;
- complejidad;
- mantenimiento;
- diferencias entre modos;
- riesgos de seguridad.
El acceso continúa disponible mediante clientes especializados.
Uso contemporáneo
FTP permanece presente en:
- hosting heredado;
- imprentas;
- agencias;
- cámaras;
- dispositivos industriales;
- sistemas de radiodifusión;
- proveedores;
- intercambio empresarial;
- automatizaciones antiguas.
Las nuevas implementaciones deberían utilizar conexiones protegidas y restringidas. Para administración de hosting suele recomendarse SFTP o SSH.
Fundamentos teóricos
Arquitectura cliente-servidor
El cliente inicia la sesión y el servidor espera conexiones.
El servidor puede atender múltiples clientes simultáneamente mediante procesos, hilos o eventos.
Conexiones separadas
FTP utiliza dos clases de conexiones:
Conexión de control. Transporta comandos y respuestas.
Conexión de datos. Transporta listados y archivos.
La separación permite mantener una sesión mientras se crean transferencias individuales.
También introduce complejidad en NAT, firewalls y cifrado.
Fuera de banda
Los datos se transmiten mediante un canal diferente al utilizado para control. Este diseño se describe frecuentemente como control fuera de banda.
Máquina de estados
El servidor interpreta comandos según el estado de la sesión.
Algunas instrucciones solamente resultan válidas después de:
- autenticación;
- selección de tipo;
- negociación de una conexión de datos.
Representación virtual
FTP fue diseñado para permitir transferencias entre sistemas heterogéneos.
La especificación define una estructura virtual de archivos y mecanismos de representación para reducir diferencias.
Códigos numéricos
Las respuestas poseen tres dígitos.
El primer dígito comunica la categoría general:
- `1xx`: respuesta preliminar positiva;
- `2xx`: finalización positiva;
- `3xx`: respuesta intermedia positiva;
- `4xx`: error temporal;
- `5xx`: error permanente.
El segundo dígito describe el área:
- sintaxis;
- información;
- conexiones;
- autenticación;
- sistema de archivos.
Sesión con estado
El servidor conserva información durante la sesión:
- usuario;
- directorio actual;
- tipo de transferencia;
- modo;
- conexión de datos;
- estado de autenticación.
Permisos
Las operaciones dependen del sistema de archivos y políticas del servidor.
Un usuario puede poseer permisos diferentes para:
- leer;
- escribir;
- eliminar;
- renombrar;
- listar;
- crear directorios.
Autenticación
La autenticación básica utiliza nombre y contraseña.
FTP original carece de protección criptográfica, por lo que estas credenciales pueden observarse dentro de la red.
Integridad y confidencialidad
FTP convencional depende de TCP para entrega fiable, pero no proporciona cifrado ni autenticación criptográfica del servidor.
TLS o SSH resultan necesarios para proteger la comunicación.
Interoperabilidad
Los sistemas pueden diferir en:
- separadores de directorios;
- permisos;
- mayúsculas;
- caracteres;
- fechas;
- enlaces;
- listados.
Las extensiones intentan reducir estas diferencias.
Metodología
La implementación o uso profesional de una transferencia FTP puede organizarse mediante las siguientes etapas.
1. Definir la necesidad. Se determina qué archivos deben transferirse, entre qué sistemas y con qué frecuencia.
2. Evaluar alternativas. Se compara FTP con SFTP, FTPS, HTTPS, almacenamiento de objetos, Git y servicios administrados.
3. Clasificar los datos. Se identifica si contienen información pública, interna, personal, financiera o confidencial.
4. Seleccionar el protocolo seguro. Para información sensible se utiliza SFTP o FTPS.
5. Definir el productor y consumidor. Se identifica qué sistema sube y cuál descarga.
6. Seleccionar el servidor. Se determina ubicación, sistema operativo, capacidad y disponibilidad.
7. Crear cuentas individuales. Cada persona o sistema recibe credenciales propias.
8. Aplicar privilegio mínimo. La cuenta accede únicamente a los directorios y operaciones necesarias.
9. Restringir el directorio raíz. El usuario se mantiene dentro de un entorno controlado.
10. Configurar cifrado. Se instalan certificados TLS o claves SSH según el protocolo.
11. Definir modo de conexión. Se configura modo pasivo y un rango de puertos compatible con firewall.
12. Configurar DNS y certificados. El nombre utilizado debe coincidir con la identidad del servidor.
13. Definir límites. Se establecen tamaño, velocidad, conexiones y almacenamiento.
14. Establecer convenciones de nombres. Los archivos deben seguir reglas comprensibles y compatibles.
15. Definir archivos temporales. Las cargas incompletas pueden utilizar extensiones o carpetas separadas.
16. Implementar validación. Se verifica tamaño, tipo, estructura, hash y malware.
17. Configurar registros. Se almacenan accesos, operaciones, errores y transferencias.
18. Probar transferencias pequeñas. Se valida autenticación, permisos y modos.
19. Probar archivos grandes. Se evalúa rendimiento y reanudación.
20. Probar interrupciones. Se simulan caídas y reconexiones.
21. Automatizar cuando corresponda. Los scripts utilizan secretos seguros y validan resultados.
22. Implementar alertas. Se notifican fallos, espacio insuficiente y accesos anómalos.
23. Revisar periódicamente cuentas. Se eliminan accesos obsoletos.
24. Rotar credenciales. Las contraseñas, certificados y claves se actualizan.
25. Retirar FTP sin cifrado. Los sistemas heredados deben migrarse cuando sea posible.
Elementos principales
Cliente FTP
El cliente proporciona una interfaz para:
- conectar;
- autenticar;
- navegar;
- transferir;
- pausar;
- reanudar;
- cambiar permisos;
- administrar colas.
Puede ser gráfico, de línea de comandos o una biblioteca integrada.
Servidor FTP
El servidor escucha conexiones, valida cuentas y administra operaciones.
Debe controlar:
- autenticación;
- permisos;
- rutas;
- conexiones;
- puertos pasivos;
- límites;
- registros;
- cifrado.
Host
El cliente necesita una dirección:
- dominio;
- subdominio;
- dirección IP.
Ejemplo:
<syntaxhighlight lang="text"> ftp.ejemplo.com </syntaxhighlight>
Puerto
FTP utiliza tradicionalmente:
- TCP 21 para control;
- TCP 20 en determinadas transferencias activas.
El modo pasivo utiliza puertos dinámicos o un rango configurado por el servidor.
FTPS implícito se asocia convencionalmente con el puerto 990, aunque su disponibilidad depende del proveedor.
SFTP utiliza normalmente el puerto SSH 22.
Usuario y contraseña
Identifican la cuenta.
Las credenciales deben ser únicas, extensas y almacenadas en un gestor seguro.
Directorio inicial
La sesión puede comenzar dentro de:
- raíz del sitio;
- carpeta pública;
- carpeta privada;
- directorio de intercambio.
Comandos
Las instrucciones se envían como texto mediante la conexión de control.
Respuestas
El servidor devuelve códigos y mensajes.
Cola de transferencias
Los clientes gráficos pueden administrar múltiples archivos pendientes.
Logs
Registran:
- inicio;
- usuario;
- dirección;
- comando;
- archivo;
- tamaño;
- resultado;
- duración.
Certificado TLS
En FTPS permite verificar la identidad del servidor y cifrar la conexión.
Claves SSH
En SFTP permiten autenticación sin contraseña y control más seguro.
Comandos principales
Autenticación
USER. Envía el nombre de usuario.
<syntaxhighlight lang="text"> USER cuenta </syntaxhighlight>
PASS. Envía la contraseña.
<syntaxhighlight lang="text"> PASS contraseña </syntaxhighlight>
ACCT. Proporciona información adicional de cuenta cuando el servidor la requiere.
PWD. Muestra el directorio actual.
CWD. Cambia de directorio.
CDUP. Sube al directorio superior.
Listados
LIST. Solicita un listado descriptivo.
NLST. Solicita una lista de nombres.
MLST. Devuelve información estructurada sobre un elemento.
MLSD. Devuelve un listado estructurado.
Descarga
RETR. Recupera un archivo desde el servidor.
<syntaxhighlight lang="text"> RETR catalogo.csv </syntaxhighlight>
Subida
STOR. Almacena un archivo enviado por el cliente.
STOU. Almacena el archivo con un nombre único generado por el servidor.
APPE. Añade datos al final de un archivo.
Administración
DELE. Elimina un archivo.
RNFR. Indica el archivo que será renombrado.
RNTO. Proporciona el nombre nuevo.
MKD. Crea un directorio.
RMD. Elimina un directorio.
Información
SYST. Solicita información sobre el tipo de sistema.
STAT. Solicita estado.
HELP. Solicita ayuda sobre comandos.
FEAT. Consulta características y extensiones.
OPTS. Configura opciones asociadas con una extensión.
SIZE. Solicita el tamaño de un archivo.
MDTM. Solicita o, en algunas implementaciones, modifica la fecha de modificación.
Transferencia
TYPE. Selecciona representación.
<syntaxhighlight lang="text"> TYPE A </syntaxhighlight>
<syntaxhighlight lang="text"> TYPE I </syntaxhighlight>
`A` representa ASCII y `I` imagen o binario.
MODE. Selecciona modo de transmisión.
STRU. Selecciona estructura de archivo.
REST. Indica un punto desde el cual reanudar.
ABOR. Cancela una transferencia.
Conexión de datos
PORT. Comunica una dirección y puerto para modo activo IPv4.
PASV. Solicita modo pasivo IPv4.
EPRT. Extiende PORT para diferentes familias de red.
EPSV. Extiende PASV y mejora compatibilidad con IPv6 y NAT.
Sesión
NOOP. No realiza una operación y puede utilizarse para comprobar la sesión.
REIN. Reinicializa el estado.
QUIT. Finaliza la sesión.
Códigos de respuesta
| Código |
Los mensajes textuales pueden variar y no deben analizarse como única fuente de estado. Los clientes deben interpretar principalmente el código. Modos activo y pasivoModo activoEn modo activo:
El modelo original utilizaba el puerto TCP 20 del servidor para la conexión de datos. Este modo puede fallar cuando el cliente se encuentra detrás de:
Modo pasivoEn modo pasivo:
El modo pasivo funciona mejor con numerosos firewalls porque todas las conexiones son iniciadas por el cliente. El servidor debe configurar:
EPSV`EPSV` evita incluir una dirección IP completa dentro de la respuesta y resulta útil con IPv6, NAT y proxies. Los clientes modernos pueden preferir EPSV cuando existe compatibilidad. Problemas frecuentesUn usuario puede iniciar sesión correctamente y, sin embargo, no listar ni transferir archivos. Esto suele indicar que:
Las causas incluyen:
Tipos de transferenciaASCIIEl tipo ASCII fue diseñado para archivos de texto. Puede transformar finales de línea entre sistemas. Esta conversión puede dañar archivos que deben conservarse byte por byte. BinarioEl tipo imagen o binario transfiere los bytes sin conversiones. Debe utilizarse para:
Los clientes actuales suelen detectar o utilizar binario de forma predeterminada. EBCDICLa especificación histórica incluye representación EBCDIC para sistemas compatibles. Su uso contemporáneo es poco frecuente. Local bytePermite transferir datos usando tamaños de byte específicos del sistema. Su adopción es limitada. Estructuras y modos de transmisiónRFC 959 define estructuras como: File structure. El archivo se considera una secuencia continua de bytes. Record structure. El archivo se organiza en registros. Page structure. El archivo se organiza en páginas independientes. Los modos de transmisión incluyen: Stream mode. Los datos se envían como flujo continuo. Block mode. Los datos se envían en bloques con encabezados. Compressed mode. Utiliza una codificación de compresión definida por el protocolo. La mayoría de las implementaciones modernas utiliza estructura de archivo y modo stream. Tipos y variantesFTP sin cifradoEs la implementación clásica. Transmite:
sin cifrado. Debe limitarse a redes controladas o datos públicos cuando no existe alternativa. FTP anónimoPermite acceso público. Se utiliza para distribuir archivos sin crear cuentas individuales. Debe restringirse generalmente a lectura. FTP autenticadoRequiere una cuenta y contraseña. Sin TLS, las credenciales continúan expuestas. FTPS explícitoLa sesión comienza en el puerto 21. El cliente envía: <syntaxhighlight lang="text"> AUTH TLS </syntaxhighlight> Después negocia TLS. Puede proteger:
La protección del canal de datos se negocia mediante comandos como `PBSZ` y `PROT`. FTPS implícitoTLS se negocia inmediatamente después de conectar, convencionalmente en el puerto 990. Se encuentra soportado por diferentes productos, aunque no representa el modelo principal definido por RFC 4217. SFTPSFTP funciona como subsistema de SSH. Utiliza normalmente una conexión por el puerto 22. Permite:
SFTP no utiliza comandos FTP ni canales activo y pasivo. TFTPTFTP utiliza UDP y posee funciones mínimas. Se utiliza en:
Carece de autenticación y funciones amplias de directorio. FTP sobre VPNLa sesión sin cifrar puede transportarse dentro de una VPN protegida. Esto protege el trayecto incluido dentro del túnel, aunque la aplicación continúa utilizando FTP convencional. FTP sobre SSH tunnelingEs posible tunelizar conexiones, pero la separación entre control y datos complica la configuración. SFTP suele ser una solución más apropiada. FXPPermite coordinar una transferencia directa entre dos servidores FTP. Puede ahorrar ancho de banda del cliente. También puede introducir riesgos de abuso y ataques bounce, por lo que numerosos servidores lo restringen. FTP virtualizadoUn servidor puede alojar varios dominios o espacios virtuales y seleccionar el entorno mediante configuración, dirección o comando `HOST`. FTP administradoUn proveedor ofrece cuentas, auditoría, cifrado, automatización y políticas empresariales. Managed File TransferManaged File Transfer constituye una categoría empresarial que añade:
Puede utilizar SFTP, FTPS, HTTPS y otros protocolos. Aplicaciones en marketingPublicación de sitios webDurante muchos años, el flujo habitual para publicar un sitio consistía en:
Este proceso continúa presente en hosting compartido y proyectos pequeños. Administración de WordPressFTP puede utilizarse para:
SFTP resulta preferible cuando se encuentra disponible. Desactivación de pluginsCuando WordPress no permite acceder al panel, un administrador puede renombrar la carpeta de un plugin para impedir su carga. Ejemplo: <syntaxhighlight lang="text"> wp-content/plugins/plugin-problematico </syntaxhighlight> puede cambiarse temporalmente por: <syntaxhighlight lang="text"> wp-content/plugins/plugin-problematico-desactivado </syntaxhighlight> La intervención debe respaldar archivos y registrar el cambio. Transferencia de catálogosLos comercios y proveedores intercambian:
Un servidor puede recibir archivos periódicos que posteriormente procesa una automatización. Imágenes de productosLas agencias pueden subir grandes colecciones de imágenes hacia:
Materiales publicitariosFTP se utiliza para transferir:
Los archivos creativos pueden ser grandes y requieren reanudación. ImprentasLas imprentas han utilizado FTP para recibir:
Los sistemas modernos pueden sustituirlo por portales HTTPS o servicios de transferencia, aunque FTP continúa presente. Medios y radiodifusiónLas agencias de noticias, radio y televisión pueden intercambiar:
Feeds comercialesUn proveedor puede dejar archivos actualizados dentro de una carpeta y un sistema de marketing descargarlos periódicamente. Campañas de emailLos activos de campañas pueden transferirse hacia servidores de correo o proveedores, aunque las plataformas modernas utilizan interfaces web y API. Migraciones webFTP puede ayudar a copiar archivos durante un cambio de hosting. La base de datos debe exportarse mediante herramientas específicas y no se migra automáticamente con los archivos. BackupsAlgunos sistemas envían respaldos hacia un servidor FTP externo. Para copias sensibles deben utilizarse cifrado previo, FTPS o SFTP. Directorios y portalesLos administradores pueden recibir lotes de:
Automatización de contenidosUn script puede:
SEO técnicoFTP puede utilizarse para modificar:
Una modificación incorrecta puede afectar todo el sitio. Gestión de etiquetasLos desarrolladores pueden publicar archivos asociados con analítica, píxeles o scripts. La implementación debe respetar control de versiones y consentimiento. MicrositiosLas campañas temporales pueden publicarse dentro de subdirectorios o subdominios mediante transferencia de archivos. Marketing localLas agencias que administran múltiples sitios regionales pueden distribuir:
La automatización mediante Git o despliegues resulta más segura y trazable que editar directamente por FTP. E-commerceLos proveedores pueden intercambiar:
Integración con CRM y ERPLos sistemas heredados pueden utilizar carpetas FTP como bandejas de entrada y salida. Ejemplo: <syntaxhighlight lang="text"> /entrada/clientes.csv /salida/resultados.csv /procesados/clientes_2026-07-14.csv </syntaxhighlight> Entrega a clientesLas agencias pueden proporcionar cuentas limitadas para descargar materiales. Un portal con HTTPS y control de acceso ofrece frecuentemente una mejor experiencia. Ventajas del conceptoEstandarización histórica. FTP cuenta con especificaciones y amplia implementación. Compatibilidad. Numerosos sistemas, servidores y dispositivos lo admiten. Transferencia bidireccional. Permite subir y descargar. Administración remota. Ofrece operaciones de directorio y archivo. Reanudación. Determinadas transferencias pueden continuar después de una interrupción. Archivos grandes. Puede transferir grandes volúmenes sin depender de formularios web. Automatización. Existen bibliotecas y comandos para scripts. Clientes gráficos. Las interfaces de dos paneles resultan accesibles para usuarios no especializados. Separación de control y datos. Permite mantener una sesión y realizar varias operaciones. Cuentas restringidas. Los usuarios pueden limitarse a directorios específicos. Soporte empresarial heredado. Muchos sistemas antiguos continúan utilizándolo. Transferencia entre servidores. FXP y procesos automatizados permiten movimientos sin descargar manualmente. Listados y metadatos. Las extensiones proporcionan tamaño, fechas y tipos. Bajo requisito de interfaz. Puede funcionar en dispositivos y sistemas con recursos limitados. LimitacionesAusencia de cifrado. FTP convencional expone credenciales y datos. Múltiples conexiones. Complica firewalls, NAT y proxies. Configuración pasiva. El servidor necesita un rango de puertos adicional. Compatibilidad irregular. Los listados y caracteres pueden variar. Problemas con nombres internacionales. Los sistemas antiguos pueden interpretar incorrectamente UTF-8. Escasa integración con navegadores. El soporte integrado fue eliminado. Interfaz técnica. Las cuentas, rutas y permisos pueden resultar confusos. Sin versionado. Sobrescribir un archivo elimina la versión anterior salvo que exista respaldo. Sin colaboración avanzada. Carece de comentarios, historial y edición simultánea. Riesgo de eliminación accidental. Una cuenta con escritura puede borrar contenidos. Contraseñas compartidas. Las organizaciones suelen reutilizar una sola cuenta. Auditoría limitada. Algunos servidores no conservan registros suficientes. Transferencia no transaccional. Un conjunto de archivos puede quedar parcialmente actualizado. Archivos incompletos visibles. Una carga puede ser leída antes de finalizar. Dificultad de despliegue atómico. Los usuarios pueden observar versiones mezcladas. Rendimiento variable. Depende de latencia, ventanas TCP y servidor. No optimizado para sincronización moderna. Las herramientas especializadas detectan cambios y versiones de forma más eficiente. Gestión de secretos. Los scripts pueden contener contraseñas en texto. Ataques heredados. Existen riesgos como FTP bounce y fuerza bruta. Menor trazabilidad que Git. No registra autor, cambio ni motivo. Consideraciones técnicas o estadísticasPuertos
|
|---|