7 Seguridad activa: control de redes Caso práctico 2 Uso de tcpdump Duración: 10 minutos Dificultad: - Fácil Objetivo. Capturar el tráfico que atraviesa un router Linux. Material. Tres ordenadores, uno de ellos con Linux Ubuntu. 1. Vamos a aprovechar la red desplegada para el caso práctico 1. Reutilizamos el router Linux y los dos ordenadores de trabajo Linux (aunque para estos también se pueden utilizar otras máquinas, mientras conserven la misma configuración IP). El tráfico lo producirá un simple ping entre nuestros equipos. 2. Nos situamos en el router Linux y abrimos un terminal. Incrementamos privilegios con sudo –i y ejecutamos el comando: El resto de la línea depende de la naturaleza del paquete capturado. Se puede añadir más información utilizando los parámetros -v y -vv. 5. Hemos capturado un paquete que venía destinado a nosotros. Ahora vamos a capturar un paquete que atraviesa el router camino de su destino: será un ping desde Ubuntu Desktop hasta Ubuntu Server. Como atravesará dos interfaces, necesitamos una segunda ventana donde capturaremos el tráfico en la interfaz ethl. 6. La captura en eth0 se muestra en la Figura 7.17. Aparece el primer paquete con origen Ubuntu Desktop y destino Ubuntu Server, preguntándole si está disponible. El segundo paquete es la respuesta de Ubuntu Server. # tcpdump –i eth0 –l –n | grep ICMP El parámetro -i indica la interfaz donde queremos escuchar. El parámetro –l consigue que las líneas aparezcan en pantalla con fluidez. El parámetro –n nos evita intentar traducir las direcciones IP que capturaremos (puede ralentizar la salida, y en nuestro caso no tiene sentido porque son direcciones de prueba). Finalmente, filtramos la salida del comando porque solo nos interesan los paquetes ICMP. Para finalizar la captura hay que interrumpir la ejecución (Control+C). 3. Ahora vamos al Ubuntu Desktop y hacemos un ping al router Linux. En la ventana del terminal del router Linux aparecen inmediatamente los paquetes capturados (Fig. 7.16). Fig. 7.17. Captura en primer tramo de ping remoto. 7. La captura en ethl se muestra en la Figura 7.18. Aparecen los mismos paquetes que en la primera interfaz (el router no necesita introducir cambios: se limita a pasarlos de una interfaz a otra). Si nos fijamos en la fecha de cada paquete, podemos confirmar que el primero es el echo request en el eth0; luego, el mismo echo request en el ethl. Después, el echo reply en el ethl y, finalmente, el echo reply en eth0. Fig. 7.18. Captura en segundo tramo de ping remoto. 8. Finalmente indicamos cómo se consigue que la captura de paquetes se almacene en un fichero (Fig. 7.19). Usaremos el parámetro –w junto al nombre del fichero: Fig. 7.16. Captura de ping directo. 4. El comando muestra una línea por cada paquete. La primera columna es el instante de la captura. Utiliza mucha precisión porque las interfaces son muy rápidas y muchas veces necesitaremos relacionar capturas simultáneas en varias interfaces de la misma máquina (si son otras máquinas habrá que añadir el desfase de sus relojes). Después viene el tipo de protocolo (IP) y la dirección de origen y de destino. Comprobamos que el ping consiste en dos paquetes: uno del origen al destino preguntando si está conectado (echo request), y otro del destino al origen confirmándolo (echo reply). 176 # tcpdump –i eth0 –w e0 Fig. 7.19. Volcado de captura a fichero. Si la captura va a ser larga, conviene asegurarse de que hay suficiente espacio libre en el disco. El fichero puede ser procesado por el propio tcpdump con el parámetro –r: # tcpdump -l –n –r e0 www.FreeLibros.me