FTP Activo Vs FTP Pasivo

Quería explicar un poco la diferencias entre estos dos tipos de servidores, ya que hay mucha controversia a la hora de explicarlo.

MODO ACTIVO

Este modo es el normal en todo servidor FTP, viene por defecto configurado.
Cuando tenemos un servidor de FTP y un cliente se conecta, tenemos una conexión desde un puerto aleatorio mayor a 1024 (lo llamamos N) desde el cliente, atacando a nuestro servidor en el puerto 21. Cuando se realiza esta conexión, el servidor inicia una comunicación desde el puerto 20 (puerto de datos) hacia el cliente a un puerto N+1 del cliente.

Por tal motivo se denomina activo, porque es el servidor quien inicia la conexión para la transmisión de datos.

EJEMPLO

3653200134_bfc6b8fe71

1. El puerto de control del cliente (N) se conecta al puerto de control del servidor (21) y le envía el numero del puerto de datos (N+1).
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 (N+1).
4. El cliente responde con un ACK al servidor.

MODO PASIVO

El modo pasivo se utilizaría si el cliente se encuentra detrás de un firewall que no permite conexiones entrantes, ya que este limitaría la sesión de datos provenientes desde el servidor.

El funcionamiento es muy parecido al activo en cuanto al inicio de la comunicación. El cliente inicia una comunicación desde un puerto mayor a 1024 (llamaremos N) hacia el puerto 21 del servidor. En este caso a través de este canal de comunicación el cliente envía el comando PASV (de pasivo) dando la orden al servidor para que se convierta en un cliente y nos indique otro puerto donde iniciar la comunicación de datos, el servidor selecciona un puerto aleatorio mayor a 1024 y lo informa al cliente mediante un ACK.

El cliente es el que inicia una nueva conexión hacia el servidor pero desde el puerto N+1 hacia el puerto ofrecido por el servidor.

EJEMPLO

3655032708_13be9f791c

1. El puerto de control del cliente (N) se conecta al puerto de control del servidor (21) y envía PASV.

2. El servidor responde un ACK al cliente con el puerto M (Puerto aleatorio mayor a 1024), puerto abierto para conexiones de datos.

3. El cliente inicia una conexión desde su puerto de datos (N+1) al puerto de datos del servidor (M).

4. Finalmente, el servidor envía de vuelta un ACK al puerto de datos del cliente.

Podemos resumir que el modo pasivo es para que el cliente siempre inicie todas las conexiones hacia el servidor y es útil para cuando el cliente se encuentra detrás de un firewall muy restrictivo.

Leave a Reply

Your email address will not be published. Required fields are marked *