No processo de depuração de um python irc bot que parece não conseguir se conectar, pensei: "Eu sei, vou apenas despejá-lo e ver o que ele está fazendo". Então, eu executei o tcpdump como normalmente faço e ele diz que é pacotes capturados, mas na verdade não grava o arquivo 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
fonte
fonte
eth0
? Se estiver usando o loopback ou outra interface, não haverá tráfego para despejar no arquivo.17 packets received by filter
isso não significa que capturou algum tráfego?Respostas:
Você pode querer verificar o comportamento do tcpdump com strace, para ver se ele está fazendo algo estranho como chrooting, se está no gentoo ou em outra distribuição que pode ajudar os binários.
fonte
/var/lib/tcpdump
. E eis que estão todos os meus arquivos cap.Ok, eu resolvi o mistério. Siga-me enquanto desvendamos o TCPDump do Funtoo e o Mistério do arquivo pcap ausente .
Usei o strace para ver o que está acontecendo e as linhas relevantes são:
Assim...
Ei, olha! Todos os arquivos cap que tentei criar!
Depois de dar uma olhada nas bandeiras de uso com as quais o tcpdump é construído, por padrão, vejo o seguinte:
Então, por que fazer dessa maneira? Minha teoria é mais ou menos assim:
/var/lib/tcpdump
aprisiona e depois remove privilégios de root e inicia a captura.Como resultado, quando eu especifiquei
./blah
oublah
funcionou bem. Mas/tmp/blah
não porque/var/lib/tcpdump/tmp
não existe.Um recurso interessante de tudo isso é: ao usar o sinalizador suid para instalar o tcpdump SetUID, você pode conceder aos usuários acesso ao
tcpdump
grupo sem fornecer a eles sudo ou acesso root. Os usos possíveis incluem uma caixa de captura para seus engenheiros ou pesquisadores de rede.Eu só gostaria que o Gentoo / Funtoo tivesse uma mensagem na instalação dizendo tudo isso.
tl; dr: O Gentoo / Funtoo coloca seus arquivos pcap no
/var/lib/tcpdump
.fonte
A sintaxe está correta: eu apenas tentei (ainda que na porta 80) e gerou um arquivo pcap no diretório de trabalho atual, considerando as mesmas opções que você está usando.
Poderia ter algo a ver com o seu diretório pessoal, que você está tentando gravar como root (por causa do sudo)? É possível que você esteja usando diretórios pessoais montados em NFS com esmagamento de raiz?
sudo touch ~akraut/pcaps/foo
?Você pode tentar escrever o pcap para / tmp / ou algo assim?
fonte
sudo tcpdump -w /tmp/blah -s 0 "port 6667"
isso, parece que está funcionando, mas se eu fizersudo su -
primeiro, em seguida, executetcpdump -w /tmp/blah -s 0 "port 6667"
como root e diz "Não existe esse arquivo ou diretório". Os aprofunda mistério ...