FTP - Entiende por qué falla y configúralo sin errores

26 de marzo de 2026

Script de PowerShell para crear un grupo de usuarios FTP. El número 4 señala la acción de ejecutar el script.

Índice

FTP sigue apareciendo en migraciones, copias de seguridad, NAS antiguos y equipos que todavía necesitan mover ficheros sin tocar demasiado la infraestructura. En el puerto 21 se negocia la sesión: autenticación, navegación por directorios y órdenes de transferencia, pero no el archivo en sí. Esa separación explica por qué un acceso puede abrir sesión sin que, después, funcionen los listados o las descargas.

Lo esencial para entender FTP sin perder tiempo

  • 21/TCP gestiona comandos, respuestas y autenticación; el contenido viaja por otra conexión.
  • El canal de datos no es fijo: cambia según uses modo activo o modo pasivo.
  • Detrás de NAT y cortafuegos, el modo pasivo suele ser el más estable y predecible.
  • FTP sin cifrado expone credenciales y archivos; FTPS y SFTP reducen ese riesgo de forma notable.
  • Si entras al servicio pero no ves directorios o no descargas nada, el fallo suele estar en los puertos de datos.

Cómo se separan los comandos de los datos en FTP

Yo suelo explicarlo como dos conversaciones paralelas. La primera, sobre 21/TCP, sirve para decirle al servidor quién soy, qué directorio quiero ver y qué operación voy a hacer; la segunda transporta la carga útil, es decir, el contenido real del fichero o del listado.

  • USER y PASS autentican.
  • CWD, PWD y LIST navegan por el árbol de directorios.
  • RETR descarga archivos y STOR los sube.

La consecuencia práctica es clara: el canal de control puede estar sano y, aun así, fallar la transferencia si la otra conexión no encuentra un camino abierto de ida y vuelta. Esa separación es la que complica el panorama cuando aparece un cortafuegos, y ahí entra el modo de transferencia.

Diagrama de FTP activo y pasivo. El modo activo usa el puerto 21 para comandos y el puerto 20 para datos. El modo pasivo usa el puerto 21 para comandos y un puerto aleatorio para datos.

Modo activo y modo pasivo, la parte que suele romperse

La diferencia más importante no está en el login, sino en quién inicia la conexión de datos. Ahí es donde los cortafuegos y el NAT deciden si la sesión fluye o se queda a medias.

Aspecto Modo activo Modo pasivo
Quién inicia la conexión de datos El servidor se conecta de vuelta al cliente El cliente se conecta a un puerto anunciado por el servidor
Puerto que suele intervenir 20 como origen del servidor en la transferencia de datos Un puerto alto, normalmente dentro de un rango configurado
Problema típico El cortafuegos del cliente bloquea la conexión entrante El rango pasivo no está abierto o la IP anunciada es incorrecta
Encaje habitual Redes muy controladas o escenarios heredados Entornos con NAT, usuarios remotos y acceso desde Internet

Si yo depuro un caso real y veo que el usuario sí entra pero el listado se queda colgado, casi siempre miro tres cosas antes que nada: el rango pasivo no está publicado, la IP pública anunciada por el servidor no coincide con la real o el cortafuegos está dejando pasar el canal de control pero no los puertos altos.

En otras palabras: el problema rara vez es el nombre de usuario. Casi siempre es la ruta que deben seguir los datos. Y esa pista nos lleva directamente a la parte de seguridad, que es donde FTP enseña sus limitaciones más serias.

Qué cambia en seguridad y por qué yo no expondría FTP plano

Desde seguridad, FTP sin cifrar sigue siendo flojo por una razón simple: credenciales y contenido viajan en claro. En una red Wi-Fi compartida, en una LAN mal segmentada o en una salida a Internet expuesta, eso deja margen para captura pasiva, robo de sesión y ataques de fuerza bruta sobre la cuenta.

También conviene recordar el viejo abuso del comando PORT, conocido como FTP bounce: no es el escenario más frecuente hoy, pero sí un recordatorio de que abrir este servicio sin control da más superficie de la que parece. Si además el servidor acepta cuentas débiles o anonimizadas sin restricciones, el riesgo deja de ser teórico.

Opción Cifrado Puerto habitual Mi criterio
FTP No 21/TCP y, según el modo, 20 o puertos altos Solo para legado muy controlado
FTPS explícito Sí, mediante TLS 21/TCP más el rango de datos que definas La mejor salida si necesitas seguir hablando FTP
SFTP Sí, sobre SSH 22/TCP Mi preferido cuando puedo elegir desde cero

La clave técnica aquí es sencilla: FTPS explícito mantiene la lógica de FTP y negocia seguridad sobre el canal de control con comandos como AUTH TLS; SFTP, en cambio, no es una variante de FTP, sino otro protocolo distinto sobre SSH. El FTPS implícito, asociado a puertos dedicados como 990 en algunos entornos, existe, pero yo lo trato más como una herencia histórica que como una elección moderna.

Con eso claro, lo útil es pasar del riesgo teórico a la configuración real: qué abrir, qué limitar y qué comprobar para que el servicio funcione sin regalar superficie de ataque.

Qué abrir en firewall, NAT y router para que funcione sin sobresaltos

La regla que mejor me ha funcionado es aburrida, pero evita incidencias: abrir lo mínimo, fijar el rango pasivo y anunciar la IP correcta si el servidor está detrás de NAT. Todo lo demás acaba siendo ruido.

  1. Abrir 21/TCP solo hacia el servidor o servicio que realmente lo necesita.
  2. Definir un rango pasivo fijo, por ejemplo 50000-51000, en vez de dejar que el servidor elija al azar.
  3. Permitir ese rango en el cortafuegos perimetral y en el router si hay redirección de puertos.
  4. Si el servidor está detrás de NAT, publicar la IP pública en la respuesta PASV para que el cliente no intente conectar a una dirección privada.
  5. Probar autenticación, listado de directorios, subida y descarga por separado.
  6. Si usas FTPS, verificar que el rango pasivo sigue abierto, porque cifrar el canal no elimina la necesidad de los puertos de datos.

En la práctica, el síntoma más común es sencillo: entra usuario y contraseña, pero LIST o RETR se quedan esperando. Ese patrón casi siempre apunta a una regla incompleta, no a un problema de credenciales. Y cuando ya tienes eso controlado, la decisión importante pasa a ser otra: si merece la pena mantener FTP o si conviene retirarlo.

Lo que revisaría antes de dejarlo en producción

Yo reservaría FTP para tres escenarios muy concretos: una migración temporal, un ecosistema heredado que no admite otra cosa o una red interna muy segmentada. Fuera de ahí, la superficie de ataque y la falta de cifrado pesan demasiado como para tratarlo como una opción general.

  • Si necesitas compatibilidad, usa FTPS explícito y limita por IP, usuario y rango pasivo.
  • Si empiezas de cero, SFTP suele simplificar más porque evita el doble canal de FTP.
  • Si solo lo mantienes por costumbre, merece la pena replantearlo: el canal de control no es el problema, la exposición innecesaria sí.

Mi lectura final es simple: 21/TCP sigue teniendo sentido cuando hay legado y control del entorno, pero no cuando el servicio queda expuesto sin una razón operativa clara. Si puedes elegir, reduce la dependencia del FTP clásico y deja este protocolo como una excepción bien acotada, no como la base de tu intercambio de archivos.

Preguntas frecuentes

Generalmente, esto ocurre porque el canal de control (puerto 21) funciona, pero el canal de datos no. El problema suele estar en el firewall, NAT o en la configuración de los modos activo/pasivo, impidiendo la conexión para la transferencia real de datos.

La diferencia clave es quién inicia la conexión de datos. En modo activo, el servidor se conecta al cliente (puerto 20). En modo pasivo, el cliente se conecta a un puerto alto anunciado por el servidor. El modo pasivo es más común con NAT y firewalls.

No, FTP sin cifrado expone credenciales y datos en texto plano, haciéndolos vulnerables a intercepciones. Se recomienda usar FTPS (FTP sobre SSL/TLS) o SFTP (FTP sobre SSH) para asegurar las comunicaciones.

Debes abrir el puerto 21/TCP para el control. Para los datos, si usas modo pasivo (recomendado), define un rango fijo de puertos altos (ej. 50000-51000) y ábrelos también. Asegúrate de que el servidor anuncie la IP pública correcta si está detrás de NAT.

Calificar artículo

Calificación: 0.00 Número de votos: 0

Etiquetas:

puerto 21 problemas ftp modo pasivo seguridad ftp vs ftps puertos firewall ftp

Compartir artículo

Víctor Arias

Víctor Arias

Soy Víctor Arias, un apasionado de la ciberseguridad, la privacidad y el hacking ético. Durante más de diez años, he estado inmerso en el análisis de tendencias y tecnologías en el ámbito de la seguridad informática, lo que me ha permitido desarrollar un conocimiento profundo sobre las amenazas actuales y las mejores prácticas para proteger la información personal y empresarial. Mi enfoque se centra en desmitificar conceptos complejos y ofrecer análisis objetivos que ayuden a los lectores a comprender mejor los desafíos que enfrentan en el mundo digital. A través de mi trabajo como editor especializado, me esfuerzo por presentar información precisa y actualizada, garantizando que los temas tratados sean accesibles y relevantes para todos, desde principiantes hasta expertos del sector. Mi misión es fomentar una cultura de seguridad y privacidad, proporcionando contenido que no solo informe, sino que también empodere a los lectores para que tomen decisiones informadas sobre su seguridad en línea. Estoy comprometido con la integridad y la veracidad en cada artículo que escribo, buscando siempre ser una fuente confiable de información en el emocionante y dinámico campo de la ciberseguridad.

Escribe un comentario