FTP
Guía de puertos FTP: transferencia de archivos en los puertos 20 y 21
Comprenda cómo funcionan el control FTP y las conexiones de datos, por qué son importantes los rangos de puertos pasivos y por qué SFTP o FTPS suelen ser más seguros para los nuevos flujos de trabajo de transferencia de archivos.
- Puerto predeterminado
- 20/21
- Protocolo
- TCP
- Uso principal
- Transferencia de archivos heredada
¿Qué es el puerto FTP?
FTP, o Protocolo de transferencia de archivos, es un protocolo heredado para cargar y descargar archivos. FTP suele utilizar el puerto TCP 21 para la conexión de control. En FTP activo, el puerto TCP 20 se puede utilizar para datos del servidor; En FTP pasivo, el servidor abre un rango de puertos de datos pasivos configurado.
El puerto 21 es el puerto de control FTP
Los clientes se conectan a TCP 21 para autenticarse, enumerar directorios, solicitar cargas, solicitar descargas y negociar cómo se abrirá la conexión de datos.
Los puertos de datos dependen del modo activo o pasivo
FTP es más difícil de bloquear que los protocolos modernos porque los datos de los archivos a menudo viajan a través de una conexión separada de los comandos.
Cómo funciona FTP
FTP separa los comandos de los datos del archivo. El cliente se conecta al servidor en TCP 21, inicia sesión y envía comandos como listar, recuperar, almacenar, cambiar nombre o eliminar. Los listados de archivos y las transferencias utilizan una conexión de datos separada.
Ese diseño tenía sentido en redes más antiguas, pero crea problemas con NAT, firewalls y grupos de seguridad en la nube. Un verificador de puertos puede mostrar si se puede acceder al puerto 21, pero una transferencia de archivos exitosa también depende del canal de datos permitido.
FTP activo frente a FTP pasivo
En FTP activo, el cliente se conecta al puerto de control del servidor, luego el servidor abre una conexión de datos con el cliente. Esa conexión inversa a menudo falla a través de NAT o firewalls de cliente estrictos.
En FTP pasivo, el cliente abre tanto la conexión de control como la conexión de datos al servidor. El modo pasivo es más común para FTP con acceso a Internet, pero el servidor debe publicar un rango de puertos pasivos definido y los firewalls deben permitir ese rango.
FTP frente a FTPS frente a SFTP
El FTP simple no cifra nombres de usuarios, contraseñas, comandos ni contenidos de archivos. FTPS agrega TLS a FTP, pero aún mantiene el control FTP y el modelo de canal de datos. SFTP es diferente: se ejecuta a través de SSH, generalmente en TCP 22, y no utiliza puertos FTP.
Para nuevas implementaciones, SFTP suele ser más sencillo de controlar y operar. Es posible que se requiera FTPS para la compatibilidad con socios. El FTP simple debe limitarse a flujos de trabajo heredados aislados o reemplazarse cuando sea posible.
Cuándo debe estar abierto FTP
Abra FTP solo cuando un socio, dispositivo, aplicación o flujo de trabajo heredado no pueda usar SFTP, FTPS, carga HTTPS, almacenamiento de objetos o un servicio de transferencia de archivos administrado. Los ejemplos comunes incluyen fuentes EDI antiguas, escáneres, dispositivos integrados e integraciones de proveedores.
Evite el FTP público anónimo a menos que proporcione intencionalmente archivos públicos y tenga controles de carga estrictos. Con frecuencia se abusa del FTP grabable expuesto a Internet para la preparación de malware, el robo de datos y el uso indebido del almacenamiento.
Antes de abrir FTP
Antes de permitir FTP, decida si el servidor utilizará el modo activo, el modo pasivo o ambos. Defina el rango de puertos pasivos, la dirección IP externa, el modelo de aislamiento de usuarios, el comportamiento de chroot o jail, el registro, las cuotas y si se requiere TLS.
Una verificación de TCP en el puerto 21 confirma solo la ruta de control. Pruebe cargas y descargas reales desde fuera de la red porque el rango pasivo, la inspección NAT, TLS y los permisos del sistema de archivos aún pueden interrumpir las transferencias.
Cómo habilitar FTP en Windows, Linux y servidores en la nube
En Windows Server, IIS FTP puede proporcionar FTP o FTPS. Configure el aislamiento de usuarios, la política TLS, el rango de puertos pasivos, las reglas de firewall y la configuración de IP externa si el servidor está detrás de NAT.
En Linux, servidores como vsftpd, ProFTPD y Pure-FTPd son comunes. Configure usuarios locales o usuarios virtuales, comportamiento de chroot, rango de puertos pasivos, certificados TLS si usa FTPS y reglas de firewall del host para TCP 21 más los puertos de datos.
En servidores en la nube, permita solo las fuentes requeridas cuando sea posible. Abra TCP 21 y el rango pasivo en el grupo de seguridad de la nube y el firewall del host. Si no puede definir un rango pasivo estrecho, será difícil proteger FTP de forma limpia.
- Ruta de control: los clientes deben llegar a TCP 21.
- Ruta de datos: FTP pasivo requiere un rango de puertos pasivos del lado del servidor; El FTP activo puede requerir conexiones de servidor a cliente.
- Capa de identidad: use cuentas con nombre, privilegios mínimos, aislamiento de usuario o chroot y credenciales sólidas.
- Capa de migración: documente por qué permanece FTP y planifique un cambio a SFTP, FTPS, carga HTTPS o transferencia administrada.
Cómo probar los puertos FTP
Comience con una verificación del puerto externo para TCP 21. Si el puerto de control está abierto, pruebe con un cliente FTP real desde fuera de la red. Confirme el inicio de sesión, el listado de directorios, la carga, la descarga, el cambio de nombre y el comportamiento de eliminación según corresponda.
Si el inicio de sesión funciona pero la lista de directorios o las transferencias se bloquean, inspeccione la configuración del modo pasivo, el rango de puertos pasivos, la publicidad de IP externa, NAT, los grupos de seguridad en la nube y la configuración de TLS. Muchas fallas de FTP son fallas del canal de datos, no fallas del puerto 21.
Casos comunes de solución de problemas de FTP
Si el puerto 21 está cerrado, el servicio FTP puede detenerse, vincularse a una interfaz privada, bloquearse por un firewall del host o denegarse por un grupo de seguridad en la nube. Si el puerto 21 está abierto pero las transferencias fallan, los puertos pasivos o NAT son los primeros lugares a verificar.
Si la autenticación falla, inspeccione el formato del nombre de usuario, la política de contraseñas, el bloqueo de cuentas, los permisos chroot, la propiedad del sistema de archivos, los requisitos de TLS y los registros del servidor. Si solo fallan algunos clientes, compare el modo activo con el pasivo y si el cliente está detrás de una NAT restrictiva.
Lista de verificación de seguridad para FTP
Evite el FTP simple para credenciales o archivos privados. Utilice FTPS o SFTP cuando sea posible, deshabilite la carga anónima, restrinja las IP de origen, aísle a los usuarios, establezca cuotas y mantenga registros de transferencia detallados.
Si el FTP debe permanecer público, parchee el servidor, limite los puertos pasivos, supervise los inicios de sesión fallidos y el volumen de carga, escanee los archivos cargados y elimine las cuentas obsoletas. Trate el FTP como una excepción heredada con un propietario y un plan de migración.
Preguntas frecuentes
¿Qué puertos utiliza FTP?
FTP utiliza el puerto TCP 21 para la conexión de control. El FTP activo puede usar TCP 20 para conexiones de datos del lado del servidor, mientras que el FTP pasivo usa un rango de puertos pasivos configurados del lado del servidor.
¿Es seguro FTP?
El FTP simple no es seguro porque no cifra las credenciales ni el contenido del archivo. Utilice SFTP o FTPS para transferencias confidenciales.
¿Por qué está abierto el puerto FTP 21 pero fallan las transferencias?
La conexión de control puede funcionar mientras la conexión de datos esté bloqueada. Verifique el modo pasivo, el rango de puertos pasivos, NAT, la configuración de IP externa, los firewalls y la política TLS.
¿SFTP es lo mismo que FTP?
No. SFTP es un protocolo diferente que se ejecuta a través de SSH, generalmente en TCP 22. FTP usa el puerto 21 y conexiones de datos separadas.