MODO ACTIVO

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.
MODO PASIVO
Por el contrario, en modo pasivo es siempre el programa cliente quien inicia la conexión con el servidor. Al abrir una conexión ftp, se abre primeramente una conexión de control desde un puerto inferior a 1024 de la máquina local al puerto 21 del servidor. El cliente pasa a modo pasivo enviando el comando PASV y pidiendo un puerto abierto al servidor. Tras recibir la respuesta, será el cliente quien establezca la conexión de datos con el servidor a través del puerto que le ha sido enviado.
EJEMPLO
1. El puerto de control del cliente (1026) se conecta al puerto de control del servidor (21) y envía PASV.
2. El servidor responde al cliente con el puerto 2024, 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.
Como resumen podríamos decir, que en el modo pasivo las conexiones son siempre abiertas por el cliente, mientras que en el modo activo son abiertas por aquel que envía los datos, es decir, el servidor si se trata de descargar archivos a la máquina local y el cliente si de lo que se trata es de subir archivos al servidor.
PROBLEMA CONEXIÓN MODO ACTIVO
Como ya se ha comentado, en el modo activo se abre una conexión para datos desde el servidor hacia el cliente, es decir, una conexión desde fuera hacia dentro, lo que podría provocar que si el cliente estuviera protegido con un cortafuegos, éste filtrara o bloqueara la conexión entrante, al considerarlo un proceso desconocido. Debido a esto, surge el modo pasivo, en el cual es el cliente quien inicia ambas conexiones, tanto control como datos, con lo que el contafuegos ya no tiene ninguna conexion entrante que filtrar o bloquear.
Excelente artículo.
ResponderEliminarMe parece un esquema muy claro.
ResponderEliminar¡Gracias!
Buen artículo solo un pequeño detalle
ResponderEliminarsegún se me enseña en clase los puertos siempre son superiores a 1024, salu2
A mí también me están enseñando en clase que son superiores al puerto 1024.
EliminarExcelente aporte.
Hola amigos, yo también noté este detalle, pero creo que es un error de redacción ya que en los ejemplos sí se están utilizando puertos arriba de 1024.
EliminarEl FTP usa el puerto 20 y 21. Los puertos arriba del 1024 son para el usuario
EliminarBien explicado, sali de dudas gracias
ResponderEliminarcoincido, los puertos creo que deben ser superiores a 1024, es mas, en los ejemplos usa el 1027..
ResponderEliminarGracias por el artículo. Una pregunta, en modo pasivo, cuando el servidor le da un nuevo puerto al cliente para la transferencia, este puerto debería estar también mapeado en el router apuntando al servidor??
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminaryeeeeeee
ResponderEliminarAcá dice que en FTP Pasivo utiliza otros puertos:
ResponderEliminarhttps://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd421710(v=ws.10)
Simple y con imágenes de ejemplo... excelente artículo.
ResponderEliminarBien explicado.
ResponderEliminarF
ResponderEliminar