Diferencias entre el Modo FTP Activo y Pasivo
Diferencias entre el Modo FTP Activo y Pasivo

Diferencias entre el Modo FTP Activo y Pasivo

Modos FTP
  • Diferencias Modo Activo y Pasivo
Sending
User Review
3.25 (4 votes)

El FTP (Protocolo de transferencia de archivos) es un servicio basado en TCP (Protocolo de control de transmisión), ampliamente utilizado para transferir archivos a través de redes de datos.

El término FTP puede referirse tanto al protocolo, como al programa que implementa este protocolo (Servidor FTP, Cliente FTP). Este, utiliza dos modos de operación, activo y pasivo. Conozcamos entonces qué los diferencia.

Los dos modos FTP funcionan según la configuración del servidor y del cliente. Ambos utilizan dos canales de comunicación entre el servidor, el de comandos y el de datos, separados por dos conexiones TCP. El canal de comandos se utiliza, como su nombre indica, para enviar comandos y recibir la respuesta. El canal de datos se utiliza para transferir datos.

1. FTP Modo activo (predeterminado)

Este modo funciona cuando el cliente solicita el servidor, enviando un comando PORT, a través de un puerto aleatorio, con un paquete dirigido al puerto 21, a fin de transferir un archivo. Una vez establecida la conexión, el servidor inicia otra.

El servidor, a través del puerto 20, se pone en contacto inmediatamente con el puerto siguiente del cliente, es decir, imaginemos que el puerto utilizado en la primera conexión, por este, fue el 1500, la utilizada a efectos de la segunda conexión será la 1501, canal de datos.

FTP Modo activo
FTP Modo activo

Una vez establecida la conexión, todas las transferencias de archivos se realizan a través de los mismos puertos entre el cliente y el servidor. Por lo tanto, el cliente establece el canal de comandos, pero es el servidor que establece el canal de datos.

En el segundo esquema, la presencia de un firewall bloquea el intento de comunicación entre servidor y cliente, ya que el servidor utiliza un puerto diferente de la primera conexión.


2. FTP Modo Pasivo

En este, el cliente también se pone en contacto con el puerto 21 del servidor FTP a través de un comando PASV. En lugar de iniciar una segunda conexión de inmediato, el servidor responde que el cliente sólo puede ponerse en contacto con un segundo puerto diferente a la primera. Se realiza una segunda conexión entre el cliente y el servidor para la transferencia de datos.

El firewall no bloquea el intento de comunicación entre el servidor y el cliente, ya que ha sido el cliente quien inició la conexión ambas veces.

FTP Modo Pasivo
FTP Modo Pasivo

El modo pasivo se utiliza generalmente en situaciones que el servidor FTP no puede establecer el canal de datos, por culpa del firewall, aunque exista una regla en el servidor FTP.

Para un mejor control sobre la red, lo más indicado será utilizar el modo activo, que sólo requiere la apertura de los puertos 20 y 21. Ya que el modo pasivo, obliga la apertura de varios puertos, dejando la red más expuesta y con varios puntos de vulnerabilidad, precisamente por estar más puertos accesibles.

3. Conclusión

Estas son las principales diferencias entre los modos Activo y Pasivo del protocolo FTP. Es importante conocerlas para poder adaptarse en situaciones en que estemos con problemas o que tengamos que adaptarnos a una red con un firewall más restrictivo.

Resumiendo (Modo activo):

  • El cliente abre el canal de comandos a través del puerto 1500.
  • Envía el comando PORT para el puerto 21 del servidor.
  • El servidor confirma la conexión del canal de comandos.
  • Abre el canal de datos en el puerto 20 para el cliente en el puerto 1501.
  • El cliente confirma la conexión por el canal de datos.
  • Los canales de comandos y datos están abiertos y listos para su actividad.

Resumiendo (Modo Pasivo):

  • El cliente abre el canal de comandos a través del puerto 1500.
  • Envía el comando PASV al servidor dirigido al puerto 21.
  • El comando cambia la transmisión al modo pasivo.
  • A través del canal de comandos, el servidor envía al cliente el puerto que escuchará el canal de datos, por ejemplo 2345.
  • El cliente abre el canal de datos en el puerto 1501 para el puerto 2345 del servidor.
  • El servidor confirma la conexión del canal de datos.
  • Los canales de comandos y datos están abiertos y listos para su actividad.