Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Redes de ordenadores Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

El FTP o Protocolo de Transferencia de Archivos es uno de los métodos de transferencia de datos más populares disponibles para diversos casos de uso.

FTP dispone de diferentes variaciones seguras, conocidas como FTPS y SFTP, que incorporan algunas diferencias sutiles y otras no tan sutiles en su funcionamiento. Estas diferencias están relacionadas con la forma en que se intercambian los datos, el nivel y el tipo de seguridad en la comunicación y las consideraciones sobre el cortafuegos.

Conocer cómo funcionan estos protocolos y las diferencias entre estos populares mecanismos de transferencia puede ayudarle a elegir el que mejor se adapte a sus necesidades.

FTP

FTP es el Protocolo de Transferencia de Archivos con décadas de antigüedad propuesto originalmente bajo el RFC 114. Posteriormente evolucionó como RFC 959, que es el estándar que se utiliza hoy en día.

FTP funciona en dos canales para intercambiar información: uno para comandos y otro para datos. Esto requiere dos puertos para que FTP funcione: el canal de comandos y el canal de datos.

El canal de comandos funciona en el puerto 21, que acepta conexiones de clientes y gestiona el paso de comandos. El canal de comandos permanece abierto durante toda la sesión FTP hasta que el cliente envía el comando SALIR o el servidor se desconecta forzosamente por inactividad o cualquier otro motivo posible.

El canal de datos utiliza un puerto temporal a la escucha del servidor (modo pasivo) o del cliente (modo activo). Este canal es el responsable de compartir los datos reales entre el servidor y el cliente en forma de listados de directorios y transferencias de archivos.

A diferencia del canal de comandos, el canal de datos permanece abierto sólo mientras dura la transferencia de archivos, y en cuanto ésta finaliza, el canal de datos se cierra. Para la transferencia simultánea de varios archivos o listados de directorios, se necesitan varios puertos del canal de datos.

El FTP es un protocolo intrínsecamente inseguro, ya que tanto el canal de comandos como el de datos transfieren la información de forma no cifrada, lo que es fácilmente susceptible de ser interceptado por cualquiera que utilice ataques man-in-the-middle.

Como ya se ha comentado, el FTP requiere una conexión entrante en el puerto 21/tcp en el lado del servidor para el canal de comandos. Para las transferencias de archivos y los listados de directorios se define un rango de puertos pasivo que permite las conexiones entrantes. Este proceso de definición puede variar en función del servidor FTP utilizado. Consulte su documentación para más detalles. En el lado del cliente, debe permitirse la conexión saliente en el puerto 21/tcp junto con el rango de puertos pasivos definido en el servidor.

Autenticación en FTP

La información de autenticación en FTP se pasa a través del canal de comandos durante el establecimiento de la conexión inicial. FTP puede utilizar un nombre de usuario y una contraseña para la autenticación, o puede ser anónimo para permitir que cualquiera se conecte y acceda al servidor.

Modos FTP Activo y Pasivo

FTP utiliza el modo Activo o Pasivo para establecer las conexiones.

En el modo activo, un usuario se conecta desde un puerto aleatorio del cliente FTP al puerto FTP 21/tcp del servidor y envía el comando PORT, especificando el puerto cliente al que debe conectarse el servidor. Este puerto se utilizará para el canal de datos.

A continuación, el servidor se conecta desde el puerto 20/tcp al puerto cliente especificado anteriormente con el comando PORT por el cliente. Este canal de datos se utiliza entonces para las transferencias de archivos entre el servidor y el cliente.

En modo pasivo, el cliente se conecta desde un puerto aleatorio del cliente FTP al puerto 21/tcp del servidor y envía el comando PASV. El servidor responde entonces con un puerto aleatorio que debe utilizarse para el canal de datos. El cliente utiliza entonces otro puerto aleatorio para conectarse al puerto respondido por el servidor en el paso anterior. Esta conexión del canal de datos se utiliza entonces para la transferencia de archivos entre el servidor y el cliente.

Así pues, en el modo activo, la solicitud de conexión inicial la inicia el cliente, mientras que la solicitud de conexión del canal de datos la inicia el servidor.

Por otro lado, en el modo pasivo, tanto las solicitudes de conexión inicial como las posteriores solicitudes de canal de datos son iniciadas por el cliente al servidor. Esta sutil diferencia a veces afecta a la forma en que un cortafuegos permite/bloquea las solicitudes FTP tradicionales debido a la dirección del tipo de conexión entrante/saliente.

FTPS

Incluso si está dispuesto a asumir los riesgos asociados que conlleva el FTP con la transmisión de datos sin cifrar y los ataques main-in-the-middle, los requisitos de la industria le obligan a utilizar una alternativa más segura como FTPS y SFTP, que son comparativamente mucho más seguros.

En 1990, con el cambiante panorama de la seguridad, Netscape creó el protocolo SSL o Secure Sockets Layer (SSL, ahora conocido como TLS) para proteger la comunicación a través de una red. SSL se aplicó al FTP, que se convirtió en FTPS o Protocolo Seguro de Transferencia de Archivos. FTPS o FTP/S se ejecuta comúnmente en el puerto 990/tcp, pero también puede verse en el puerto 21/tcp. Del mismo modo, para el canal de datos el puerto 989/tcp es el puerto común utilizado para FTPS. Si el puerto de comandos es 21/tcp, se espera que su puerto de datos sea 20/tcp.

Al igual que FTP, FTPS utiliza dos canales para la comunicación: canal de comandos y canal de datos. Con FTPS se puede encriptar el canal de datos, o bien encriptar tanto el canal de comandos como el de datos para mayor seguridad.

FTPS, al igual que FTP, también utiliza varios puertos para los canales de comandos y datos. Así, el puerto 21/tcp se utiliza para la conexión inicial y la transmisión de la información de autenticación. Posteriormente, se necesitarán puertos diferentes para establecer los canales de datos para cada transferencia de archivos o solicitud de listado de directorios por parte del cliente. Por lo tanto, al igual que el FTP, necesita que se permita un rango de puertos en su cortafuegos.

Autenticación en FTPS

La autenticación para FTPS funciona utilizando un nombre de usuario y una contraseña junto con un certificado del servidor para el cifrado. Cuando el cliente FTPS se conecta a un servidor, comprueba si el certificado del servidor es de confianza para proceder con la conexión. Este certificado puede ser solicitado tanto por el cliente como por el servidor.

SFTP

A diferencia de FTP y FTPS, SFTP(SSH File Transfer Protocol) es un protocolo completamente diferente construido sobre SSH (o Secure Shell). SFTP, por defecto, funciona en el puerto 22/tcp, el mismo que SSH aunque puede configurarse para utilizar un puerto libre personalizado en el servidor.

SFTP es un protocolo FTP seguro que utiliza SSH por debajo para enviar y recibir archivos. Al estar SSH completamente encriptado, SFTP es un método robusto y seguro para transferir archivos a través de una red.

SFTP, a diferencia de FTP y FTPS, utiliza un único canal de comunicación para transferir comandos y tráfico de datos, todos los cuales se pasan de forma encriptada junto con la autenticación inicial.

Autenticación en SFTP

La autenticación en SFTP puede realizarse mediante un simple nombre de usuario y contraseña, pero a diferencia de FTP, toda la información, incluidos los detalles de autenticación, se pasan cifrados a través de la red.

SFTP también admite la autenticación mediante un par de claves SSH, una combinación de claves privada y pública, en la que el cliente proporciona la clave privada del usuario especificado, y el servidor debe disponer de la clave pública correspondiente para que la autenticación tenga éxito. Es más seguro que utilizar una combinación de nombre de usuario y contraseña. Es posible autenticar al mismo usuario utilizando contraseña y claves SSH si ambos métodos están configurados en el servidor SFTP.

Resumen

Este artículo resume las características básicas de diferentes protocolos populares de transferencia de archivos, a saber, FTP, FTPS y SFTP, y destaca las diferencias sutiles y principales entre estos protocolos. Cubre los puertos que uno necesita permitir en un cortafuegos para configurar un servidor FTP/FTPS/SFTP que funcione, a la vez que destaca la necesidad de cambiar a protocolos más seguros como FTPS y SFTP.

Cuando digo FTP aquí, me refiero a cualquiera de los protocolos discutidos en este artículo. La razón es que FTP tiene décadas de antigüedad, e incluso las versiones seguras más recientes a veces se denominan FTP en lugar de su nombre designado para el uso cotidiano.

Puede que también le interese conocer el mejor software de servidor FTP y los mejores clientes FTP/SFTP.

  • Abhishek Nair
    Autor
Gracias a nuestros patrocinadores
Más lecturas sobre Redes de ordenadores
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder