Puntos de control
Writing packets to a file
/ 100
Introducción a tcpdump
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
Comience el lab
Para poder acceder al material del SO de la máquina virtual, tendrá que comenzar el lab. Para ello, haga clic en el botón "Comenzar lab" en la parte superior de la pantalla.
Después de hacer clic en el botón "Comenzar lab", verá los detalles de la conexión SSH en la parte izquierda de la pantalla. Debería ver una pantalla parecida a la siguiente:
Acceda a la máquina virtual
Busque una de las siguientes funciones según el sistema operativo de su dispositivo.
Opción 1: Usuarios de Windows: Conéctese a su VM
En esta sección, usará el cliente Secure Shell (SSH) de PuTTY y la dirección IP externa de su VM para conectarse.
Descargue su archivo de clave PPK
Puede descargar el archivo de clave privada de la VM en formato PPK compatible con PuTTY de la página de inicio del lab de Qwiklabs. Haga clic en Descargar PPK.
Conéctese a su VM mediante SSH y PuTTY
-
Haga clic aquí para descargar Putty.
-
En el campo Host Name (or IP address), ingrese username@external_ip_address.
-
En la lista Category, expanda SSH.
-
Haga clic en Auth (sin expandir).
-
En el cuadro Private key file for authentication, busque el archivo PPK que descargó y haga clic en él.
-
Haga clic en el botón Open.
- Cuando se le solicite permitir una primera conexión al servidor remoto de SSH, haga clic en Yes. Como utiliza un par de claves para la autenticación, no se le pedirá una contraseña.
Problemas comunes
Si PuTTY no puede conectarse a su VM de Linux, compruebe lo siguiente:
-
Ingresó <username>@<external ip address> en PuTTY.
-
Descargó el nuevo archivo PPK para este lab de Qwiklabs.
-
Usa el archivo PPK descargado en PuTTY.
Opción 2: Usuarios de OSX y Linux: Conéctese a su VM mediante SSH
Descargue el archivo de clave privada de su VM
Puede descargarlo en formato PEM de la página de inicio del lab de Qwiklabs. Haga clic en Descargar PEM.
Conéctese a la VM mediante la aplicación local de la terminal
Un terminal es un programa que proporciona una interfaz de texto para escribir comandos. Aquí usará su terminal como cliente SSH para conectarse con VM de Linux proporcionada en el lab.
-
Abra la aplicación del terminal.
-
Para abrir el terminal en Linux, use la combinación de teclas Ctrl + Alt + t.
-
Para abrir el terminal en Mac (OSX), ingrese cmd + space y busque terminal.
-
-
Ingrese los siguientes comandos.
Es probable que encuentre el archivo PEM en Downloads. Si no cambió la configuración de descargas de su sistema, la ruta de la clave PEM será ~/Downloads/qwikLABS-XXXXX.pem.
chmod 600 ~/Downloads/qwikLABS-XXXXX.pem
ssh -i ~/Downloads/qwikLABS-XXXXX.pem username@external_ip_address
Opcion 3: Usuarios de Chrome OS: Conectando su VM via SSH
Descargue el archivo de clave privada de su VM
Puede descargar su archivo de clave privada en formato PEM desde la página de inicio de Qwiklabs. Haga clic en Download PEM.
Conectese a su VM
-
Agregue Secure Shell desde aquí a su navegador Chrome.
-
Abra la aplicación Secure Shell y haga clic en [New Connection].
-
En la sección username, ingrese el nombre de usuario dado en el panel de detalles de conexión del laboratorio. Y para la sección hostname, ingrese la IP externa de su instancia VM que también se encuentra en el panel de detalles de conexión del laboratorio.
-
En la sección Identity, importe la clave PEM que descargo haciendo clic en el botón Import... que se encuentra al lado. Seleccione su clave PEM y haga clic en el botón OPEN.
-
Una vez que la clave está cargada, haga clic en el botón [ENTER] Connect de abajo.
-
Si se le pregunta algo, escriba yes para continuar.
-
Ahora está conectado exitosamente a su Linux VM.
¡Está listo para continuar con su laboratorio!
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.
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.