Introducción
En este lab, presentaremos "tcpdump" y algunas de sus funciones. "tcpdump" es la herramienta de análisis de red más importante para los profesionales de redes y seguridad de la información. Como especialista en asistencia de TI, es fundamental que conozca bien esta aplicación si desea entender TCP/IP. "tcpdump" lo ayudará a mostrar el tráfico de red de una manera más fácil para analizar y solucionar problemas.
Tendrá 60 minutos para completar este lab.
Actividades
-
Aspectos básicos del comando: Aprenderá cómo usar "tcpdump" y qué función tienen algunas de sus marcas, además de cómo interpretar el resultado.
-
Capturas de paquete: Practicará cómo guardar capturas de paquetes en archivos y volver a leerlas.
Algunas partes de este lab requerirán que más de una terminal esté abierta al mismo tiempo. Por lo tanto, asegúrese de tener una terminal con otra terminal de conexión abierta. De esta manera, puede usar SSH en una VM más de una vez.
Cómo configurar el lab
Renuncia de responsabilidad: Para obtener un rendimiento y una compatibilidad óptimos, se recomienda que uses los navegadores Google Chrome o Mozilla Firefox para acceder a los labs.
Comienza el lab
Para acceder a los materiales del SO de la máquina virtual, primero debes comenzar el lab. Para ello, haz clic en el botón "Comenzar lab" en la parte superior de la pantalla.
Nota: Para este lab, tendrás que acceder a la VM de Linux a través del cliente SSH local y no utilizar la consola de Google (el botón Open GCP Console no está disponible en este lab).

Después de hacer clic en el botón “Comenzar lab”, verás los detalles de la conexión SSH en la parte izquierda de la pantalla. Deberías ver una pantalla parecida a la siguiente:

Accede a la máquina virtual
Elige la opción adecuada para tu sistema operativo de las tres que se presentan a continuación.
Nota: Es posible que tu trabajo con Qwiklabs sea similar al que realizaría un especialista en asistencia de TI. Estarás interactuando con tecnología de vanguardia que requiere numerosos pasos para acceder y, tal vez, una gran dosis de paciencia y perseverancia. También usarás SSH para ingresar a los labs. Esta es una habilidad fundamental para la Asistencia de TI que podrás practicar en los labs.
Opción 1: Usuarios de Windows. Cómo conectarte a tu VM
En esta sección, usarás el cliente Secure Shell (SSH) de PuTTY y la dirección IP externa de tu VM para conectarte.
Descarga el archivo de claves PPK
Puedes descargar el archivo de clave privada de la VM en formato PPK compatible con PuTTY en la página de inicio del lab de Qwiklabs. Haz clic en Descargar PPK.

Conéctate a tu VM a través de SSH y PuTTY
-
Haz clic aquí para descargar PuTTY.
-
En el cuadro Host name (o IP address), ingresa nombredeusuario@direcciónIPexterna.
Nota: Reemplaza nombredeusuario y direcciónIPexterna con los valores que se proporcionan en el lab.

-
En la lista Connection, expande SSH.
-
Luego, haz clic en el ícono + para expandir Auth.
-
A continuación, selecciona Credentials de la lista Auth.
-
En el cuadro Private key file for authentication, busca el archivo PPK que descargaste y haz doble clic en él.
-
Haz clic en el botón Open.
Nota: El archivo PPK se importa en la herramienta PuTTY con la opción de exploración disponible en ella. No debe abrirse directamente; solo debe utilizarse en PuTTY.

- Cuando se te pida permitir una primera conexión al servidor SSH remoto, haz clic en Yes. Como utilizas un par de claves para la autenticación, no se te pedirá una contraseña.
Problemas habituales
Si PuTTY no puede conectarse a tu VM de Linux, comprueba que hiciste lo siguiente:
- Ingresaste <nombredeusuario>@<dirección_ip_externa> en PuTTY.
- Descargaste de Qwiklabs el archivo PPK nuevo para este lab.
- Usaste el archivo PPK descargado en PuTTY.
Opción 2: Usuarios de OSX y Linux. Cómo conectarte a tu VM a través de SSH
Descarga el archivo de clave privada de tu VM
Puedes descargarlo en formato PEM en la página de inicio del lab de Qwiklabs. Haz clic en Descargar PEM.

Conéctate a la VM con la aplicación de la terminal local
Una terminal es un programa que proporciona una interfaz de texto para escribir comandos. En esta ocasión, usarás tu terminal como cliente SSH para conectarte a la VM de Linux que se proporciona en el lab.
-
Abre la aplicación de la terminal.
-
Para abrir la terminal en Linux, usa la combinación de teclas Ctrl + Alt + t.
-
Para abrir la terminal en Mac (OSX), ingresa cmd + espacio y busca terminal.
-
Ingresa los siguientes comandos.
Nota: Reemplaza path/filename con el archivo PEM que descargaste, el nombre de usuario y la dirección IP externa.
Es probable que el archivo PEM se encuentre en Descargas. Si no cambiaste la configuración de descargas de tu sistema, la ruta de acceso de la clave PEM será ~/Downloads/qwikLABS-XXXXX.pem.
chmod 600 ~/Downloads/qwikLABS-XXXXX.pem
ssh -i ~/Downloads/qwikLABS-XXXXX.pem nombredeusuario@direcciónIPexterna

Opción 3: Usuarios de ChromeOS. Cómo conectarte a tu VM a través de SSH
Nota: Asegúrate de no estar en modo Incógnito o privado al momento de iniciar la aplicación.
Descarga el archivo de clave privada de tu VM
Puedes descargarlo en formato PEM en la página de inicio del lab de Qwiklabs. Haz clic en Descargar PEM.

Conéctate a tu VM
-
Haz clic aquí para agregar Secure Shell a tu navegador Chrome.
-
Abre la app de Secure Shell y haz clic en [New Connection].

-
En la sección username, ingresa el nombre de usuario que se muestra en el panel de detalles de la conexión del lab. En la sección hostname, ingresa la IP externa de tu instancia de VM que se muestra en el panel de detalles de la conexión del lab.

-
En la sección Identity, importa la clave PEM descargada. Para ello, haz clic en el botón Import… que se encuentra junto al campo correspondiente. Elige tu clave PEM y haz clic en el botón OPEN.

Nota: Si luego de importarla, la clave no está disponible, actualiza la aplicación y selecciona la clave en el menú desplegable de la opción Identity.
-
Luego de cargar la clave, haz clic en el botón [ENTER] Connect de más abajo.

-
Para las prompts, escribe yes para continuar.
-
Estableciste correctamente la conexión con tu VM de Linux.
Ya tienes todo listo para continuar con el lab.
Cómo usar "tcpdump"
Ahora, usará "tcpdump" para realizar algunas tareas. Comenzaremos con el uso básico y continuaremos con temas un poco más avanzados.
Uso básico
Para comenzar, ingresaremos "tcpdump" y lo ejecutaremos sin ninguna opción. Tenga en cuenta que, como tcpdump requiere privilegios de administrador para capturar el tráfico, todos los comandos deben comenzar con sudo. Como mínimo, debe especificar una interfaz en la que buscar con la marca -i. Recomendamos usar ip link para verificar el nombre de la interfaz de red principal. En este caso, usaremos la interfaz ens4 para todos los ejemplos, aunque no es necesariamente la que usaría en su propia máquina.
Si desea usar tcpdump para comenzar a buscar los paquetes en la interfaz, ingrese el siguiente comando.
Aviso: Este comando llenará su terminal con un flujo de texto constante a medida que se leen los paquetes nuevos. No se detendrá hasta que presione Ctrl + C.
sudo tcpdump -i ens4
Como resultado, se mostrará información básica sobre los paquetes que ve directamente en la salida estándar. El proceso continuará hasta que se le indique que se detenga. Presione Ctrl + C para detener el flujo en cualquier momento.
Puede ver que, una vez que tcpdump termina, se muestra un resumen de la captura realizada, incluida la cantidad de paquetes capturados, filtrados o quitados:

De manera predeterminada, "tcpdump" realizará un análisis de protocolo básico. Para habilitar un análisis más completo, use la marca -v a fin de activar el resultado detallado. De manera predeterminada, "tcpdump" también intentará realizar búsquedas de DNS inversas a fin de resolver las direcciones IP en nombres de host, además de reemplazar los números de puerto con nombres de servicios comúnmente asociados. Puede usar la marca -n para inhabilitar este comportamiento. Recomendamos usar esta marca para evitar generar tráfico adicional a partir de las búsquedas de DNS y a fin de acelerar el análisis. Ingrese el siguiente comando para probarlo:
Aviso: Este comando llenará su terminal con un flujo constante de texto a medida que se leen los paquetes nuevos. No se detendrá hasta que presione Ctrl + C.
sudo tcpdump -i ens4 -vn
Puede ver que ahora el resultado proporciona más detalles sobre cada paquete:

Sin la marca de resultado detallado, "tcpdump" solo proporciona lo siguiente:
- el protocolo de Layer-3, las direcciones y los puertos de origen y destino
- detalles de TCP, como marcas, secuencia y números de ack, el tamaño de la ventana y las opciones
Si activa la marca de resultado detallado, también obtendrá toda la información sobre el encabezado de IP, como el tiempo de vida, el número de ID de IP, las opciones de IP y las marcas de IP.
Filtrado
A continuación, analizaremos brevemente el lenguaje de filtrado de tcpdump, junto con el análisis de protocolo. tcpdump admite un lenguaje potente para el filtrado de paquetes que le permite capturar solo el tráfico que le interesa o que desea analizar. Las reglas de filtrado van al final del comando, después de especificar el resto de las marcas. Solo usaremos el filtrado para capturar tráfico de DNS a un servidor DNS específico. A continuación, generaremos tráfico de DNS a fin de demostrar la capacidad de "tcpdump" de interpretar consultas y respuestas de DNS.
Ingrese el comando ahora. Al igual que el comando anterior, este se ejecutará hasta que lo detenga con Ctrl + C, pero todavía no debería ver ningún resultado.
sudo tcpdump -i ens4 -vn host 8.8.8.8 and port 53
Analicemos cómo está formado este filtro y qué hace exactamente. Host 8.8.8.8 especifica que solo queremos paquetes cuya dirección IP de origen o destino coincida con lo que indicamos (en este caso, 8.8.8.8). Si solo queremos tráfico en una dirección, también podríamos agregar un calificador de dirección, como dst o src (para las direcciones IP de destino y origen respectivamente). Sin embargo, si no incluye el calificador, se captará el tráfico en cualquier dirección.
La parte port 53 indica que solo queremos ver paquetes cuyo puerto de origen o destino coincida con lo que especificamos (en este caso, DNS). Estos dos filtros se unen mediante el operador lógico "and", lo que significa que ambas partes deben ser verdaderas para que nuestro filtro capture un paquete.
A continuación, siga las instrucciones en la sección Acceda a la máquina virtual para conectar la segunda terminal. Haga clic en Acceda a la máquina virtual en el panel de navegación a la derecha y, allí, ejecute este comando:
dig @8.8.8.8 A example.com
Debería ver el siguiente resultado en la pantalla:

Este comando usa la herramienta dig para consultar un servidor DNS específico (en este caso, 8.8.8.8) y le pide el A record del dominio especificado (en este caso, "example.com").
En la terminal original, debería ver dos paquetes capturados, ya que nuestras reglas de filtrado deberían filtrar cualquier otro tipo de tráfico:

El primero es la consulta de DNS, que es nuestra pregunta (de la segunda terminal) que va al servidor. Tenga en cuenta que, en este caso, el tráfico es UDP. El análisis que tcpdump hace de la consulta de DNS comienza inmediatamente después del campo checksum de UDP. Empieza con el número de ID de DNS, seguido por algunas opciones de UDP y, por último, el tipo de consulta (en este caso, A?, que indica que pedimos un A record). A continuación, sigue el nombre de dominio que nos interesa (example.com).

El segundo paquete es la respuesta del servidor, que incluye el mismo ID de DNS de la consulta original, seguido de la consulta original. A continuación, se encuentra la respuesta a la consulta, que contiene la dirección IP asociada con el nombre de dominio.

Para detener la sesión de "tcpdump" en la terminal original, presione Ctrl + C. Asegúrese de dejar abierta la ventana de la segunda terminal, ya que la necesitará pronto.
A continuación, aprenderemos sobre la capacidad de tcpdump de guardar capturas de paquetes en un archivo y, luego, volver leerlas.
Cómo guardar paquetes capturados
En una de sus terminales, ejecute el siguiente comando:
sudo tcpdump -i ens4 port 80 -w http.pcap
Especifique el puerto "80" para comenzar una captura en nuestra interfaz "ens4" que solo filtre el tráfico de HTTP. La marca -w indica que queremos guardar los paquetes capturados en un archivo llamado http.pcap. Al igual que las otras capturas, se ejecutará hasta que fuerce la detención con Ctrl + C.
Una vez que se esté ejecutando, vuelva a la segunda terminal, en la que generará algo de tráfico http que se capturará en la terminal original. Todavía no detenga la captura que comenzó con el comando anterior (si ya lo hizo, puede reiniciar ahora).
En la ventana de la segunda terminal, ejecute el siguiente comando para generar algo de tráfico:
curl example.com
Este comando obtiene el HTML de example.com y lo muestra en la pantalla. Debería verse de la siguiente manera (tenga en cuenta que aquí solo se muestra la primera parte del resultado).

Una vez que haya terminado, cierre la ventana de la segunda terminal y vuelva a la terminal original donde se está ejecutando la captura. Detenga la captura con Ctrl + C. Debería mostrarse un resumen del número de paquetes capturados:

También se habrá creado un archivo binario, llamado http.pcap, que contiene los paquetes que acabamos de capturar. No intente mostrar el contenido de este archivo en la pantalla. Como es un archivo binario, se mostrará como texto confuso que no podrá leer.

En algún lugar del archivo, hay información sobre los paquetes creados cuando extrajo el HTML de example.com. Ahora podemos usar el siguiente comando para leer el texto de este archivo con tcpdump:
tcpdump -r http.pcap -nv

Tenga en cuenta que no necesitamos usar sudo para leer paquetes de un archivo. Recuerde, además, que "tcpdump" guarda paquetes completos en el archivo, no solo el análisis basado en texto que se muestra en la pantalla cuando está funcionando normalmente. Por ejemplo, en algún lugar del resultado debería ver el HTML que se mostró como cuerpo de la búsqueda original en la otra terminal:

Haga clic en "Revisar mi progreso" para verificar el objetivo.
Guarde paquetes en un archivo
Conclusión
¡Felicitaciones! Usó "tcpdump" correctamente para realizar tareas básicas de supervisión de red, incluido el filtrado de tráfico específico. También aprendió a interpretar la información que "tcpdump" muestra sobre un paquete, además de guardar y cargar resúmenes de los paquetes que se capturaron durante una sesión.
Finaliza tu lab
Cuando hayas completado tu lab, haz clic en Finalizar lab. Qwiklabs quitará los recursos que usaste y limpiará la cuenta.
Tendrás la oportunidad de calificar tu experiencia en el lab. Selecciona la cantidad de estrellas que corresponda, ingresa un comentario y haz clic en Enviar.
La cantidad de estrellas indica lo siguiente:
- 1 estrella = Muy insatisfecho
- 2 estrellas = Insatisfecho
- 3 estrellas = Neutral
- 4 estrellas = Satisfecho
- 5 estrellas = Muy satisfecho
Puedes cerrar el cuadro de diálogo si no deseas proporcionar comentarios.
Para enviar comentarios, sugerencias o correcciones, usa la pestaña Asistencia.