Diferencias Técnicas entre FTP Activo y FTP Pasivo

Informática3,16 KB

FTP Activo vs. FTP Pasivo

El FTP (File Transfer Protocol) es un servicio TCP que utiliza un puerto de datos y uno de control o comando. Comúnmente, estos puertos son el 20 y el 21, respectivamente. Sin embargo, esto no siempre es así, especialmente si te encuentras detrás de un cortafuegos (firewall).

FTP Activo

Veamos cómo funcionan las conexiones FTP normalmente:

  • El cliente se conecta desde un puerto aleatorio no privilegiado (N > 1024) al puerto de control del servidor (21).
  • El cliente comienza a escuchar en el puerto N+1 y envía este puerto de control al servidor.
  • El servidor se conectará al cliente en el puerto N+1 desde su puerto de datos (20).
activeftp

FTP Activo

Aquí tenemos un ejemplo de conexión:

  1. El puerto de control del cliente (1026) se conecta al puerto de control del servidor (21) y envía el número del puerto de datos (1027).
  2. El servidor responde con un ACK al puerto de control del cliente.
  3. El servidor inicia una conexión entre su puerto de datos (20) y el puerto de datos del cliente (1027).
  4. El cliente responde con un ACK al servidor.

FTP Pasivo

El modo activo tiene un inconveniente: si estás detrás de un cortafuegos (firewall), el servidor no podrá establecer una conexión al puerto de datos aleatorio del cliente (el que está por encima de 1024). Para solucionar este detalle, existe otra forma de conexión llamada FTP pasivo:

  • El cliente abre dos puertos aleatorios no privilegiados (N > 1024 y N+1).
  • El primer puerto (puerto de control) se conecta al puerto 21 del lado del servidor y envía el comando PASV.
  • Luego, el servidor abre un puerto aleatorio no privilegiado (P > 1024) y envía el comando PORT P al cliente.
  • Finalmente, el cliente inicia una conexión desde el puerto N+1 al puerto P en el servidor para transferir datos.
passiveftp

FTP Pasivo

Aquí tenemos un ejemplo:

  1. El puerto de control del cliente (1026) se conecta al servidor al puerto de control (21) y envía el comando PASV.
  2. El servidor responde al cliente con el puerto 2024, el puerto aleatorio de datos abierto para conexiones de datos.
  3. El cliente inicia una conexión desde su puerto de datos (1027) al puerto de datos del servidor (2024).
  4. Finalmente, el servidor envía de vuelta un ACK al puerto de datos del cliente.

Descargar

PDF Word HTML