Práctica de laboratorio: Uso de Wireshark para examinar
capturas de FTP y TFTP
Topología: parte 1 (FTP)
En la parte 1, se resaltará una captura
de TCP de una sesión FTP. Esta topología consta de una PC con acceso a
Internet.
Topología: parte 2 (TFTP)
En la parte 2, se resaltará una captura de UDP de una sesión TFTP. La PC debe tener tanto una conexión Ethernet como una conexión de consola para el switch S1.
Tabla de direccionamiento (parte 2)
Dispositivo
|
Interfaz
|
Dirección IP
|
Máscara de subred
|
Gateway predeterminado
|
S1
|
VLAN 1
|
192.168.1.1
|
255.255.255.0
|
No aplicable
|
PC-A
|
NIC
|
192.168.1.3
|
255.255.255.0
|
192.168.1.1
|
Objetivos
Parte 1: Identificar campos de encabezado y operación TCP mediante
una captura de sesión FTP de Wireshark
Parte 2: Identificar campos de encabezado y operación UDP mediante
una captura de sesión TFTP de Wireshark
Información básica/Situación
Los dos
protocolos en la capa de transporte TCP/IP son TCP, definido en RFC 761, y UDP,
definido en RFC 768. Los dos protocolos admiten la comunicación de protocolos
de la capa superior. Por ejemplo, TCP se utiliza para proporcionar soporte de
la capa de transporte para los protocolos de transferencia de hipertexto (HTTP)
y FTP, entre otros. UDP proporciona soporte de la capa de transporte para el
Sistema de nombres de dominios (DNS) y TFTP, entre otros.
Nota: entender las partes
de los encabezados y de la operación TCP y UDP es una aptitud fundamental con
la que deben contar los ingenieros de red.
En la parte 1
de esta práctica de laboratorio, utilizará la herramienta de código abierto de
Wireshark para capturar y analizar campos de encabezado del protocolo TCP para
las transferencias de archivos FTP entre el equipo host y un servidor FTP
anónimo. Para conectarse a un servidor FTP anónimo y descargar un archivo, se
emplea la utilidad de línea de comandos de Windows. En la parte 2 de esta
práctica de laboratorio, utilizará Wireshark para capturar y analizar campos de
encabezado del protocolo UDP para las transferencias de archivos TFTP entre el
equipo host y el switch S1.
Nota: el switch que se
utiliza es Cisco Catalyst 2960s con Cisco IOS versión 15.0(2) (imagen de
lanbasek9). Pueden utilizarse otros switches y versiones de Cisco IOS. Según el
modelo y la versión de Cisco IOS, los comandos disponibles y los resultados
obtenidos pueden diferir de los que se muestran en las prácticas de
laboratorio.
Nota: asegúrese de que el switch se haya borrado y de que no tenga
configuraciones de inicio. Si no está seguro, consulte con el instructor.
Nota: en la parte 1, se supone que la PC tiene acceso a Internet, y no
se puede realizar utilizando Netlab. La
|
|
parte 2 es compatible con Netlab
|
.
|
Recursos
necesarios: parte 1 (FTP)
1 PC (Windows 7, Vista o XP con acceso al
símbolo del sistema, acceso a Internet y Wireshark instalado)
Recursos necesarios: parte 2 (TFTP)
•
1 switch (Cisco 2960 con Cisco
IOS, versión 15.0(2), imagen lanbasek9 o similar)
•
1 PC (Windows 7, Vista o XP con
Wireshark y un servidor TFTP, como tftpd32, instalados)
•
Cable de consola para
configurar los dispositivos Cisco IOS a través del puerto de consola
•
Cable Ethernet como se muestra
en la topología
Parte 1: Identificar campos de encabezado y operación TCP
mediante una captura de sesión FTP de Wireshark
En la parte 1, se utiliza Wireshark para
capturar una sesión FTP e inspeccionar los campos de encabezado TCP.
Paso 1: Inicie una captura
de Wireshark.
a. Cierre todo el tráfico de la red innecesario, como el explorador
Web, para limitar la cantidad de tráfico durante la captura de Wireshark.
b.
Inicie la captura de Wireshark.
Paso 2: Descargar el archivo Léame
a. En el símbolo del sistema, introduzca ftp ftp.cdc.gov.
b. Conéctese al sitio FTP de Centros para el Control y la Prevención de
Enfermedades (CDC) con el usuario anonymous
y sin contraseña.
c.
Ubique y descargue el archivo
Léame.
Paso 3: Detener la captura
de Wireshark
Paso 4: Ver la ventana principal de Wireshark
Wireshark capturó muchos paquetes durante
la sesión FTP a ftp.cdc.gov. Para limitar la cantidad de datos para analizar,
escriba tcp and ip.addr ==
198.246.112.54 en el área de entrada Filter:
(Filtrar:) y haga clic en Apply
(Aplicar). La dirección IP, 198.246.112.54, es la dirección para ftp.cdc.gov.
Paso 5: Analizar los campos TCP
Una vez aplicado el filtro TCP, las
primeras tres tramas en el panel de la lista de paquetes (sección superior)
muestran el protocolo de la capa de transporte TCP que crea una sesión
confiable. La secuencia de [SYN], [SYN, ACK] y [ACK] ilustra el protocolo de
enlace de tres vías.
El TCP se
utiliza en forma continua durante una sesión para controlar la entrega del
datagrama, verificar la llegada del datagrama y administrar el tamaño de la
ventana. Por cada intercambio de datos entre el cliente FTP y el servidor FTP,
se inicia una nueva sesión TCP. Al término de la transferencia de datos, se
cierra la sesión TCP. Por último, cuando la sesión FTP finaliza, TCP realiza un
cierre y terminación ordenados.
En Wireshark, se encuentra disponible
información detallada sobre TCP en el panel de detalles del paquete (sección
media). Resalte el primer datagrama TCP del equipo host y expanda el registro
TCP. El datagrama TCP expandido parece similar al panel de detalles del paquete
que se muestra a continuación.
La imagen
anterior es un diagrama del datagrama TCP. Se proporciona una explicación de
cada campo para referencia:
•
El número de puerto de origen TCP pertenece al host de la sesión TCP
que inició una conexión. Generalmente el valor es un valor aleatorio superior a
1,023.
•
El número de puerto de destino TCP se utiliza para identificar el
protocolo de capa superior o la aplicación en el sitio remoto. Los valores en
el intervalo de 0 a 1023 representan los “puertos bien conocidos” y están
asociados a servicios y aplicaciones populares (como se describe en la RFC
1700, por ejemplo, Telnet, FTP, HTTP, etc.). La combinación de dirección IP de
origen, puerto de origen, dirección IP de destino y puerto de destino
identifica de manera exclusiva la sesión tanto para el emisor como para el receptor.
Nota: en la captura de Wireshark que se muestra a continuación, el puerto
de destino es 21, que es FTP. Los servidores FTP escuchan las conexiones de
cliente FTP en el puerto 21.
•
El número de secuencia especifica el número del último octeto en un segmento.
•
El número de acuse de recibo especifica el próximo octeto que espera
el receptor.
•
Los bits de código tienen un significado especial en la administración
de sesión y en el tratamiento de los segmentos. Entre los valores interesentes
se encuentran:
-
ACK: acuse de recibo de un
segmento.
-
SYN: sincronizar; solo está
configurado cuando se negocia una sesión TCP nueva durante el protocolo de
enlace de tres vías.
-
FIN: finalizar; solicitud para
cerrar la sesión TCP.
•
Window size (Tamaño de la ventana) es el
valor de la ventana deslizante; determina cuántos octetos se pueden enviar
antes de esperar un acuse de recibo.
•
Urgent pointer (Indicador urgente) se
utiliza solo con un indicador urgente (URG) cuando el emisor necesita enviar
datos urgentes al receptor.
•
En Options (Opciones), hay una sola opción actualmente, y se define
como el tamaño máximo del segmento TCP (valor optativo).
Utilice la
captura de Wireshark del inicio de la primera sesión TCP (bit SYN establecido
en 1) para completar la información acerca del encabezado TCP:
De la PC al servidor CDC (solo el bit SYN
está establecido en 1):
Dirección IP de origen:
|
192.168.1.4
|
Dirección IP de destino:
|
198.264.112.54
|
Número de puerto de origen:
|
2330
|
Número de puerto de destino:
|
21
|
Número de secuencia:
|
0
(relativo)
|
Número de acuse de recibo:
|
0
|
Longitud del encabezado:
|
32 bytes
|
Tamaño de la ventana:
|
8192
|
En la segunda
captura filtrada de Wireshark, el servidor FTP de CDC acusa recibo de la
solicitud de la PC. Observe los valores de los bits SYN y ACK.
Complete la siguiente información con
respecto al mensaje SYN-ACK.
Dirección IP de origen:
|
198.246.112.54
|
Dirección IP de destino:
|
192.168.1.4
|
Número de puerto de origen:
|
21
|
Número de puerto de destino:
|
2330
|
Número de secuencia:
|
0 (relativo)
|
Número de acuse de recibo:
|
1 (relativo ack)
|
Longitud del encabezado:
|
23 bytes
|
Tamaño de la ventana:
|
8192
|
En la etapa
final de la negociación para establecer las comunicaciones, la PC envía un
mensaje de acuse de recibo al servidor. Observe que solo el bit ACK está
establecido en 1, y el número de secuencia se incrementó a 1.
Complete la siguiente información con
respecto al mensaje ACK.
Dirección IP de origen:
|
192.168.1.4
|
Dirección IP de destino:
|
198.246.112.54
|
Número de puerto de origen:
|
2330
|
Número de puerto de destino:
|
21
|
Número de secuencia:
|
1 (relativo)
|
Número de acuse de recibo:
|
1 (relativo ack)
|
Longitud del encabezado:
|
20 bytes
|
Tamaño de la ventana:
|
2048
|
¿Cuántos otros
datagramas TCP contenían un bit SYN? Un
datagrama, porque fue el primer paquete que envió el host al principio de una
sesión TCP.
Una vez
establecida una sesión TCP, puede haber tráfico FTP entre la PC y el servidor
FTP. El cliente y el servidor FTP se comunican entre sí sin saber que TCP tiene
el control y manejo de la sesión. Cuando el servidor FTP envía una Response:
220 (Respuesta: 220) al cliente FTP, la sesión TCP en el cliente FTP envía un
acuse de recibo a la sesión TCP en el servidor. Esta secuencia se puede ver en
la captura de Wireshark, a continuación.
Cuando la sesión FTP terminó, el cliente
FTP envía un comando para “salir”. El servidor FTP acusa recibo de la
terminación FTP con una Response: 221 Goodbye (Respuesta: 221. Adiós). En este
momento, la sesión TCP del servidor FTP envía un datagrama TCP al cliente FTP,
en el que se anuncia la terminación de la sesión TCP. La sesión TCP del cliente
FTP acusa recibo de la recepción del datagrama de terminación y luego envía su
propia terminación de sesión TCP. Cuando quien originó la terminación TCP
(servidor FTP) recibe una terminación duplicada, se envía un datagrama ACK para
acusar recibo de la terminación y se cierra la sesión TCP. Esta secuencia se
puede ver en el diagrama y la captura que se muestran a continuación.
Si se aplica un
filtro ftp, puede examinarse la
secuencia completa del tráfico FTP en Wireshark. Observe la secuencia de
eventos durante esta sesión FTP. Para recuperar el archivo Léame, se utilizó el
nombre de usuario anónimo. Una vez que se completó la transferencia de
archivos, el usuario finalizó la sesión FTP.
Vuelva a
aplicar el filtro TCP en Wireshark para examinar la terminación de la sesión
TCP. Se transmiten cuatro paquetes para la terminación de la sesión TCP. Dado
que la conexión TCP es full-duplex, cada dirección debe terminar
independientemente. Examine las direcciones de origen y destino.
En este
ejemplo, el servidor FTP no tiene más datos para enviar en el stream; envía un
segmento con el conjunto de indicadores FIN en la trama 63. La PC envía un ACK
para acusar recibo del FIN para terminar la sesión del servidor al cliente en la
trama 64.
En la trama 65, la PC envía un FIN al
servidor FTP para terminar la sesión TCP. El servidor FTP responde con un ACK
para acusar recibo del FIN de la PC en la trama 67. Ahora, la sesión TCP
terminó entre el servidor FTP y la PC.
Parte 2: Identificar campos de encabezado y operación UDP
mediante una captura de sesión TFTP de Wireshark
En la parte 2, se utiliza Wireshark para
capturar una sesión TFTP e inspeccionar los campos de encabezado UDP.
Paso 1: Configurar esta topología física y prepararse para la captura de TFTP
a. Establezca una consola y una conexión Ethernet entre la PC-A y el
switch S1.
b. Si aún no lo hizo, configure manualmente la dirección IP de la PC en
192.168.1.3. No se requiere configurar el gateway predeterminado.
c. Configure el switch. Asigne la dirección IP 192.168.1.1 a VLAN 1.
Verifique la conectividad con la PC haciendo ping a 192.168.1.3. Resuelva
cualquier problema que se presente.
Switch> enable
Switch# conf t
Enter
configuration commands, one per line.
End with CNTL/Z. Switch(config)# host
S1
S1(config)# interface vlan 1
S1(config-if)# ip address 192.168.1.1 255.255.255.0
S1(config-if)# no shut
*Mar 1 00:37:50.166: %LINK-3-UPDOWN: Interface
Vlan1, changed state to up
*Mar 1 00:37:50.175: %LINEPROTO-5-UPDOWN: Line
protocol on Interface Vlan1, changed state to up S1(config-if)# end
S1# ping
192.168.1.3
Type escape sequence to
abort.
Sending 5, 100-byte ICMP
Echos to 192.168.1.3, timeout is 2 seconds:
!!!!!
Success rate is 100
percent (5/5), round-trip min/avg/max = 1/203/1007 ms
Paso 2: Preparar el servidor TFTP en la PC
a. Si aún no existe, cree una carpeta en el escritorio de la PC con el
nombre TFTP. Los archivos del switch
se copiarán a esta ubicación.
b. Inicie tftpd32 en la PC.
c. Haga clic en Browse
(Buscar), cambie el directorio actual por C:\Usuarios\usuario1\Escritorio\TFTP
y reemplace usuario1 con su nombre de usuario.
El servidor TFTP debería verse así:
Observe que, en
Current Directory (Directorio actual), se indica la interfaz de usuario y
servidor (PC-A) como la dirección IP 192.168.1.3.
d. Pruebe la capacidad de copiar un archivo del switch a la PC con
TFTP. Resuelva cualquier problema que se presente.
S1# copy
start tftp
Address
or name of remote host []? 192.168.1.3
Destination filename [s1-confg]?
!!
1638 bytes copied in 0.026
secs (63000 bytes/sec)
Si ve que el archivo se copió (como en el
resultado de arriba), entonces está listo para avanzar al siguiente paso. De lo
contrario, resuelva el problema. Si recibe el mensaje de error %Error
opening tftp (Permission denied) (Error al abrir tftp
[permiso denegado]), primero asegúrese de que el firewall no esté bloqueando el
TFTP y de que esté copiando a una ubicación donde su nombre de usuario tiene el
permiso adecuado, como el escritorio.
Paso 3: Capturar una sesión TFTP en Wireshark
a. Abra Wireshark. En el menú Edit
(Editar), seleccione Preferences
(Preferencias) y haga clic en el signo más (+)
para expandir Protocols (Protocolos).
Desplácese hacia abajo y seleccione UDP.
Haga clic en la casilla de verificación Validate
the UDP checksum if possible (Validar checksum UDP si es posible) y luego
en Apply (Aplicar). A continuación,
haga clic en OK (Aceptar).
b. Inicie una captura de Wireshark.
c.
Ejecute el comando copy start tftp en el switch.
d.
Detener la captura de Wireshark
e. Defina el filtro en tftp.
El resultado debe ser similar al que se muestra más arriba. Esta transferencia
TFTP se utiliza para analizar el funcionamiento de la capa de transporte UDP.
En Wireshark, se encuentra disponible
información detallada sobre UDP en el panel de detalles del paquete. Resalte el
primer datagrama UDP del equipo host y mueva el puntero del mouse hacia el
panel de detalles del paquete. Puede ser necesario ajustar el panel de detalles
del paquete y expandir el registro UDP con un clic en la casilla de expansión de
protocolo. El datagrama UDP expandido debe ser similar al diagrama siguiente.
En la siguiente
ilustración, se muestra un diagrama de datagrama UDP. La información del
encabezado está dispersa comparada con la del datagrama TCP. Al igual que TCP,
cada datagrama UDP está identificado con el puerto de origen UDP y el puerto de
destino UDP.
Utilice la captura Wireshark del primer
datagrama UDP para completar la información acerca del encabezado UDP. El valor
de la checksum es un valor hexadecimal (base 16) indicado por el código
anterior 0x:
Dirección IP de origen:
|
192.168.1.1
|
Dirección IP de destino:
|
192.168.1.3
|
Número de puerto de origen:
|
62513
|
Número de puerto de destino:
|
69
|
Longitud de mensaje UDP:
|
25 bytes
|
Checksum de UDP:
|
0x428c [correct]
|
¿Cómo verifica
UDP la integridad del datagrama? Al
enviar un valor de checksum en el datagrama UDP, al recibirlo se vuelve a
calcular el nuevo valor de checksum. Si ambos valores, tanto el enviado como el
nuevo resultado, es decir, el recibido son iguales, el datagrama UDP estará
completo.
Examine la primera trama que devuelve el
servidor tftpd. Complete la información sobre el encabezado UDP:
Dirección IP de origen:
|
192.168.1.3
|
Dirección IP de destino:
|
192.168.1.1
|
Número de puerto de origen:
|
58565
|
Número de puerto de destino:
|
62513
|
Longitud de mensaje UDP:
|
12 bytes
|
Checksum de UDP:
|
Observe que el
datagrama UDP devuelto tiene un puerto de origen UDP diferente, pero este
puerto de origen es utilizado para el resto de la transferencia TFTP. Dado que
no hay una conexión confiable, para mantener la transferencia TFTP, se utiliza
solo el puerto de origen que se empleó para iniciar la sesión TFTP.
También observe
que el valor de checksum UDP es incorrecto. Lo más probable es que se deba a la
descarga de checksum UDP. Para obtener más información acerca del motivo por el
cual sucede esto, realice una búsqueda de “UDP checksum offload”.
Reflexión
Esta práctica
de laboratorio brindó a los estudiantes la oportunidad de analizar las
operaciones de los protocolos UDP y TCP de las sesiones TFTP y FTP capturadas.
¿De qué manera TCP administra la comunicación distinto de como lo hace UDP?
_______________________________________________________________________________________
_______________________________________________________________________________________
_______________________________________________________________________________________
_______________________________________________________________________________________
Desafío
Debido a que ni FTP ni TFTP son
protocolos seguros, todos los datos transferidos se envían en texto no cifrado.
Esto incluye cualquier ID de usuario, contraseñas o contenido de archivo en
texto no cifrado. Si analiza la sesión FTP de capa superior, identificará
rápidamente la ID de usuario, la contraseña y las contraseñas de archivos de
configuración. El examen de datos TFTP de capa superior es un poco más complicado,
pero se puede examinar el campo de datos y extraer información sobre la ID de
usuario de configuración y la contraseña.
Limpieza
Salvo que el
instructor indique lo contrario:
1)
Elimine los archivos que se
copiaron a su PC.
2)
Borre las configuraciones del
switch S1.
3)
Elimine la dirección IP manual
de la PC y restaure la conectividad a Internet.
Thanks
ResponderEliminar