En el proceso de depuración de un robot irc de Python que parece que no puede conectarse, pensé "Lo sé, simplemente lo ejecutaré y veré qué está haciendo". Así que ejecuté tcpdump como lo hago habitualmente y dice que es paquetes capturados, pero en realidad no escribe el archivo cap.
akraut@lance ~/pcaps $ sudo tcpdump -w pyhole -s 0 "port 6667"
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C17 packets captured
17 packets received by filter
0 packets dropped by kernel
4294966881 packets dropped by interface
akraut@lance ~/pcaps $ ls -la
total 8
drwxr-xr-x 2 akraut akraut 4096 Feb 6 11:50 .
drwxr-xr-x 8 akraut akraut 4096 Feb 6 11:50 ..
akraut@lance ~/pcaps $
networking
filesystems
tcpdump
akraut
fuente
fuente
eth0
? Si usa el loopback u otra interfaz, no habría tráfico para volcar al archivo.17 packets received by filter
¿no significa que capturó algo de tráfico?Respuestas:
Es posible que desee verificar el comportamiento de tcpdump con strace, para ver si está haciendo algo extraño como chrooting, si está en gentoo u otra distribución que pueda sumar los binarios.
fuente
/var/lib/tcpdump
. Y he aquí, yacen todos mis archivos cap.Ok, he resuelto el misterio. Síganme mientras desentrañamos TCPDump de Funtoo y el archivo pcap Mystery of the Missing .
Solía strace para ver qué está pasando y las líneas relevantes son:
Entonces...
¡Hey Mira! ¡Todos los archivos cap que intenté crear!
Después de echar un vistazo a las banderas de uso con las que se crea tcpdump de forma predeterminada, veo esto:
Entonces, ¿por qué hacerlo de esta manera? Mi teoría es algo como esto:
/var/lib/tcpdump
, luego suelta los privilegios de root y comienza la captura.Como resultado, cuando especifiqué
./blah
oblah
funcionó bien. Pero/tmp/blah
no lo hizo porque/var/lib/tcpdump/tmp
no existe.Una característica clara de todo esto es: cuando se usa el indicador suid para instalar tcpdump SetUID, puede otorgar a los usuarios acceso con el
tcpdump
grupo sin darles acceso a sudo o root. Los posibles usos incluyen un cuadro de captura para los ingenieros o investigadores de su red.Solo desearía que Gentoo / Funtoo hubiera tenido un mensaje en la instalación que dijera todo esto.
tl; dr: Gentoo / Funtoo puso sus archivos pcap
/var/lib/tcpdump
.fuente
La sintaxis es correcta: acabo de probarlo (aunque en el puerto 80) y generó un archivo pcap en el directorio de trabajo actual, dadas las mismas opciones que está utilizando.
¿Podría tener algo que ver con su directorio de inicio, que está tratando de escribir como root (debido al sudo)? ¿Es posible que esté utilizando directorios de inicio montados en NFS con aplastamiento de raíz?
sudo touch ~akraut/pcaps/foo
?¿Puedes intentar escribir el pcap en / tmp / o algo así?
fuente
sudo tcpdump -w /tmp/blah -s 0 "port 6667"
todo apunta a que de trabajo, pero si yosudo su -
primero y luego ejecutartcpdump -w /tmp/blah -s 0 "port 6667"
como root dice "No existe el fichero o directorio". Las profundiza misterio ...