Pregunta ¿Se puede indicar a tcpdump que no informe los paquetes a una fuente específica?


Me gustaría monitorear paquetes usando TCPdump. Tristemente, debo hacerlo de forma remota; en este caso, estoy usando un escritorio remoto de VNC, pero en el mejor de los casos puedo hacerlo a través de SSH.

Lo que quiero decir con "en el mejor de los casos" es: estoy viendo una gran cantidad de paquetes que están dirigidos a mi propia máquina. Estoy intentando monitorear el servidor, no mi máquina local, así que preferiría ignorar cualquier paquete que vaya a mi propia máquina.

¿Hay alguna manera de hacer que tcpdump informe todo, EXCEPTO los paquetes que van a un determinado IP?

Mi solución hacky es: sleep 5;tcpdump [options] y matar la conexión VNC mientras estoy esperando.


1


origen




Respuestas:


Sí, puedes agregar un filtro en tus opciones de tcpdump. Suponiendo que su IP es 1.2.3.4, esto se vería así:

tcpdump -f "not host 1.2.3.4" ...other options...

1





Puedes hacerlo mediante el siguiente comando:

  tcpdump -i eth0 ! host Your.own.Ip.Address. 

Sin embargo, esto es un exceso exagerado: en ocasiones puede estar interesado en los paquetes dirigidos a su máquina, pero no a los que pertenecen a la comunicación en sí. Puedes usar

  tcpdump -i eth0 ! port 22

(si está conectado a través de ssh) que eliminará todos los paquetes que van a / desde la máquina remota en el puerto 22; sin embargo, esto también soltará todos los paquetes ssh hacia / desde la máquina remota desde / hacia otras máquinas.

Si desea estar realmente completo, excluyendo solo el tráfico entre sus máquinas locales y remotas a través de ssh, debe emitir:

  tcpdump -i etho ! '((host remote.machine.ip.address and port 22) and local.machine.ip.address)'

Recuerda los ápices, son importantes.


1



Debería ! escaparse en bash? - Basilevs
@Basilevs No, no hay necesidad de escapar! - MariusMatutiae