Está en la página 1de 14

FTP ACTIVO Y

PASIVO

JUAN PEDRO JIMÉNEZ DATO 2ºASIR


ÍNDICE
1.Introducción 3

2.Escenario de red 4

3.Modo activo FTP 6

4.Modo pasivo FTP 8

5.Conexión predeterminada 10

6.Bibliografía 14

ÍNDICE DE FIGURAS
Figura 1.1 - Demostración de que FTP no usa cifrado 3
Figura 2.1 - Tipo de adaptador maquina virtual 4
Figura 2.2 - Configuración de red del cliente FTP 4
Figura 2.3 - Configuración de red del servidor FTP 5
Figura 2.4 - Escenario de red 5
Figura 3.1 - Esquema modo activo 6
Figura 3.2 - Captura de wireshark modo activo 7
Figura 3.3 - Protocolo de tres vías modo activo 7
Figura 4.1 - Esquema modo pasivo 8
Figura 4.2 - Captura de wireshark modo pasivo 9
Figura 4.3 - Protocolo de tres vías modo pasivo 9
Figura 5.1 - Conexión desde la terminal al servidor 10
Figura 5.2 - Captura de wireshark modo predeterminado de la terminal 10
Figura 5.3 - Modo recomendado FileZilla Client 11
Figura 5.4 - Comprobación modo pasivo FileZilla 12
Figura 5.5 - Comprobación modo activo FileZilla 13

2
1.Introducción
En esta práctica vamos a comprobar las principales diferencias entre el modo activo
y pasivo del protocolo FTP, y para ello realizaremos pruebas con un servidor y un cliente
donde analizaremos las tramas de red que comparten entre ellos.

FTP es un protocolo de red que permite la transferencia de archivos a través de una


conexión TCP, basado en la arquitectura cliente-servidor. Su objetivo principal era crear un
protocolo de transferencia de archivos fiable y eficiente entre ordenadores y permitiendo el
uso adecuado de las características de almacenamiento remotas. Este protocolo usa la
capa de aplicación del modelo TCP/IP y utiliza de manera habitual los puertos 20/21. Más
adelante veremos que el servidor será el que use estos puertos mientras que los clientes
usarán puertos aleatorios.

El puerto TCP 21 es el que realmente se utiliza en este protocolo ya que como


veremos el 20 solo se usará para el envío de datos en el modo activo de transferencia. Sin
embargo el puerto 21 se utilizara en ambos modos y por él se enviaran todos los comandos
que usemos desde el cliente, el establecimiento de la conexión, en general se usa para
control.

Algo muy negativo de este protocolo es que no usa ningún tipo de cifrado ni en la
autenticación ni en el envío de datos, por lo que simplemente con estar conectados a la
misma red y lanzar un programa como Wireshark podemos obtener el usuario y contraseña
de la persona que accede a un servidor FTP. En la siguiente imagen podemos comprobar
cómo se vería un inicio de sesión a un servidor desde Wireshark. Observamos claramente
el campo USER y el campo PASS:

Figura 1.1 - Demostración de que FTP no usa cifrado

3
2.Escenario de red
Nuestro escenario de red está formado por un servidor FileZilla ejecutado desde mi
ordenador de casa con SO Windows 11, y un cliente con el que nos conectaremos al
servidor desde una terminal con SO Debian11.

Wireshark lo lanzamos desde el cliente, para que haya menos tramas en nuestra
captura, ya que el ordenador lo tengo conectado a Internet y saldrían tramas innecesarias.
La máquina Debian 11 que vamos a usar de cliente FTP tiene la siguiente configuración:

Figura 2.1 - Tipo de adaptador maquina virtual

Figura 2.2 - Configuración de red del cliente FTP

Y el ordenador con Windows 11, tiene la siguiente configuración:

4
Figura 2.3 - Configuración de red del servidor FTP

Este sería nuestro escenario de red para esta práctica:

Figura 2.4 - Escenario de red

5
3.Modo activo FTP
El modo de transferencia activo del protocolo FTP fue el primero en desarrollarse, en
este modo, el cliente crea el canal de datos a través del puerto 20(TCP) y elige un puerto
aleatorio del cliente a partir del 1024(TCP). El problema de este modo de transferencia es
que el cliente debe tener todos los puertos abiertos a partir del 1024, lo cual es muy
peligroso. Incluso si tenemos el cortafuegos activado es muy normal que rechace estos
intentos de conexión. El problema es que el servidor es el que le dice al cliente el puerto
que debe usar.

En la siguiente imagen podemos ver un ejemplo de conexión en modo activo entre


un cliente y un servidor FTP, en el vemos como el inicio de una transferencia de archivos se
hace a través del comando PORT el cual se envía desde el cliente al servidor y en él se le
indica el puerto de datos que se va a usar, el servidor confirma con un comando ACK y el
servidor acto seguido comienza la transferencia de datos desde el puerto de datos 20 donde
cada paquete enviado es contestado por un ACK del cliente:

Figura 3.1 - Esquema modo activo

En este modo de conexión el cliente se encarga de establecer la conexión del canal


de control, pero el servidor es el que se encarga de establecer la conexión de datos, esto es
lo que hace que pueda ser detectado por el firewall como una conexión externa no
autorizada.

A continuación vamos a ver cómo sería una conexión en modo activo con nuestro
servidor y cliente:

Aquí podemos observar lo que aparece en el esquema anterior, donde el primer


comando que se ejecuta es un PORT enviado desde el cliente en este caso con ip

6
192.68.0.36 hacia el servidor con ip 192.168.0.105. También podemos observar que
efectivamente el puerto destino es el 21 usando protocolo de transporte TCP, y en este caso
el puerto origen es el 60434. Como vemos cuando nosotros le solicitamos el archivo
“paco.txt” en la línea 71, el servidor nos responde con un ACK indicándonos el puerto al que
nos va a enviar los datos y directamente comienza la transferencia, vemos que la línea 72
es de respuesta indicando que comienza el envío de datos y la siguiente trama es ya parte
del envío, vemos que hay 3 tramas seguidas del servidor al cliente (línea 71,72 y 73):

Figura 3.2 - Captura de wireshark modo activo

El cliente usa el puerto 60434(control) y 42657(datos) y el servidor usa el 21(control)


y 56945(datos)

Vemos que aquí el que inicia la conexión es la 192.168.0.105 (servidor), y lo


sabemos por que es el que envía el paquete SYN en el protocolo tres vías de TCP

Figura 3.3 - Protocolo de tres vías modo activo

7
4.Modo pasivo FTP
En este modo al igual que el anterior se usa el puerto 21 para control, pero en este
caso el servidor no es el que inicia la conexión de datos sino que el cliente le envía un
comando PASV (passive) al servidor indicando el puerto en el que debe iniciar la conexión
de datos, y a continuación el cliente será el que inicie la conexión hacia el puerto indicado.

En la siguiente imagen vemos un esquema de un ejemplo de conexión en modo


pasivo, vemos que antes de transferir un archivo el cliente envía un comando PASV, el cual
debe ser contestado por el servidor con un puerto a partir del 1024 (que no esté incluido en
los bien conocidos), después de esto el cliente inicia la conexión hacia un puerto aleatorio
del servidor, no a uno que elige el servidor, en este caso el 2040, acto seguido el servidor
envía un comando ACK confirmando la conexión. Ya aquí podemos observar como el
cliente es el que se encarga de establecer las dos conexiones

Figura 4.1 - Esquema modo pasivo

Y ahora al igual que en el modo activo vamos a comprobar cómo sería un esquema
real en nuestro escenario de red:

Aquí como podemos observar, el primer comando que vemos es el envío del
comando PASV (passive) por parte del cliente al servidor, lo cual ya nos va dando indicios
de que modo estamos usando. Vemos la respuesta del servidor en la que le indica el puerto
pasivo que va a usar, esto sería el puerto aleatorio mayor que 1024.

Observamos que usan de puertos de control el 46030(cliente) y 21(servidor) y de


puerto de datos el 56961(servidor) y el 33120(cliente).

8
En este trama observamos como el servidor le indica el puerto donde puede
conectarse el cliente para la transferencia de datos, antes esto sucedía al contrario en el
comando PORT (modo activo) se envía el puerto que iba a usar el cliente sin embargo
ahora se envía el puerto que va a usar el servidor.

Después de esto el cliente responde con un ACK al servidor indicando que se ha


enterado de que ha activado el modo pasivo y el mismo es el que comienza la conexión con
el servidor mediante el envío de un paquete SYN también podemos ver como el servidor
responde con un paquete SYN-ACK y por último el cliente envía un ACK para concluir con
el establecimiento de la conexión, esto nos recuerda al protocolo de tres vías que vimos el
año pasado en clase, ya que FTP usa el protocolo TCP en la capa de transporte, de ahí que
veamos estas tres tramas.

Pero lo que nos interesa es que es el cliente el que comienza el proceso de


conexión, ya que es el primero que envía el paquete SYN, para comenzar la transferencia
de archivos.

Figura 4.2 - Captura de wireshark modo pasivo

Aquí vemos más de cerca que es el cliente el que inicia la conexión, ya que en la
trama 125 envía el paquete SYN, antes la IP origen del primer paquete era la
192.168.0.105(servidor) mientras que ahora aparece la 192.168.0.36 la cual es la de
nuestro cliente.

Figura 4.3 - Protocolo de tres vías modo pasivo

9
5.Conexión predeterminada
En este caso la conexión predeterminada de este cliente FTP lanzado desde nuestra
máquina Debian 11 es el modo activo, ya que como vemos si lanzamos una terminal nueva
y nos conectamos al servidor y descargamos algo, analizando el tráfico en wireshark
encontramos la trama con el comando PORT y encontramos que el establecimiento de
conexión del canal de datos lo inicia el servidor.

Figura 5.1 - Conexión desde la terminal al servidor

Figura 5.2 - Captura de wireshark modo predeterminado de la terminal

No solamente he hecho la prueba lanzando una nueva terminal sino que antes de
salirme del ftp lo he dejado en modo pasivo para comprobar que no se hubiera guardado el
último modo que se deja activado sino que efectivamente el modo predeterminado es el
activo.

Y a continuación usando un cliente FileZilla en local, pasamos a comprobar cual es


el modo predeterminado:

10
Figura 5.3 - Modo recomendado FileZilla Client

Comprobamos los dos modos del cliente de FileZilla, activo y pasivo y vemos que de
manera predeterminada viene activado el modo pasivo y nos lo marca como recomendado.
Podemos comprobar cómo sería una transferencia usando este modo y podemos observar
el proceso mirando en el Administrador del servidor FileZilla.

Observamos al igual que antes pero de manera un poco más sencilla como se envia
el comando PASV por parte del cliente (AZUL):

11
Figura 5.4 - Comprobación modo pasivo FileZilla

Y por último si cambiamos a modo activo en nuestro cliente, también podemos


comprobar cómo sería una transferencia en modo activo.

Y aquí podemos comprobar cómo el cliente envía el comando PORT(AZUL):

12
Figura 5.5 - Comprobación modo activo FileZilla

13
6.Bibliografía
https://es.wikipedia.org/wiki/Protocolo_de_transferencia_de_archivos
https://www.redeszone.net/tutoriales/servidores/ftps-ftpes-sftp-caracteristicas-diferencias/

14

También podría gustarte