¿Cuáles son las diferencias entre las conexiones pasivas y activas en FTP?

FTP es un tipo diferente de protocolo de aplicación que los protocolos habituales como HTTP o SMTP, ya que utiliza conexiones TCP separadas para el comando y la transferencia de datos.

Cuando se conecta al servidor FTP utilizando un cliente, la conexión TCP establecida es iniciada por el cliente y utilizada para emitir comandos y recibir la respuesta del comando. Cualquier tipo de transferencia de datos se realiza abriendo una conexión TCP separada. Incluso cuando da un comando para listar archivos en un directorio, se establece una conexión TCP separada para transferir la salida del comando. Las conexiones de datos no se pueden reutilizar y cada salida o transferencia de datos requiere abrir una nueva conexión TCP.

Ahora, en FTP, los canales de datos pueden ser iniciados por el cliente o el servidor. Cuando el servidor inicia una conexión, se llama modo activo y cuando un cliente la inicia, se llama modo pasivo.

El protocolo FTP se desarrolló en los años 70 y hasta principios de 2000, la mayoría de los sistemas operativos no tenían ningún firewall instalado y la mayoría de las computadoras tendrían una dirección IP pública a través de conexiones de acceso telefónico. Debido a esto, fue bastante fácil para el servidor conectarse de nuevo al cliente y el modo activo de FTP era el modo de operación predeterminado.

Más tarde, con el espacio de direcciones IPv4 que se está agotando y la popularidad de los enrutadores domésticos y puntos de acceso que tienen traducción de direcciones de red (NAT), y la mayoría de los sistemas operativos que tienen firewalls incorporados, es casi imposible trabajar FTP en modo activo.

La mayoría de los clientes FTP actuales usan el modo pasivo o tienen la configuración de modo pasivo habilitada de manera predeterminada en la instalación y se conectan al servidor para abrir los canales de datos.

En el lado del servidor, deberá configurar el firewall para permitir todas las conexiones entrantes al servidor FTP. Los firewalls modernos no requieren ninguna configuración específica, ya que pueden seguir el canal de comando FTP y saber qué conexión TCP atravesar.

En modo activo, el servidor establece el canal de datos, mientras que en modo pasivo, es el cliente el que establece el canal de datos. (El servidor es pasivo en este modo, de ahí el nombre).

Modo activo

En modo activo, el cliente le permite al servidor saber en qué puerto está escuchando los datos. El servidor luego establece la conexión y transfiere datos en este canal.

El problema con este enfoque es que el cliente puede estar detrás de un firewall , y el firewall puede no estar configurado para aceptar conexiones desde el servidor. Esto es muy común, porque el usuario final puede no tener la experiencia suficiente para configurar su firewall.

Aquí es donde ayuda el modo pasivo.

Modo pasivo

En modo pasivo, el cliente le informa al servidor, en qué puerto está escuchando los datos. Sin embargo, el servidor no establece la conexión. En cambio, le dice al cliente, en qué puerto, está enviando los datos. El cliente luego establece la conexión. El servidor luego transfiere datos en este canal.

Activo y pasivo son los dos modos en que FTP puede ejecutarse. FTP utiliza dos canales entre el cliente y el servidor, el canal de comando y el canal de datos, que de hecho dividen las conexiones TCP. El canal de comando es para comandos y respuestas; el canal de datos es para transferir archivos de hecho.