Beim Debuggen eines Python-IRC-Bots, der scheinbar keine Verbindung herstellen kann, dachte ich: "Ich weiß, ich werde es einfach tcpdumpen und sehen, was es tut." Also habe ich tcpdump wie gewohnt ausgeführt und es heißt, es sind erfasste Pakete, aber die Cap-Datei wird nicht geschrieben.
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
quelle
quelle
eth0
? Wenn der Loopback oder eine andere Schnittstelle verwendet wird, muss kein Datenverkehr in die Datei ausgegeben werden.17 packets received by filter
heißt das nicht, dass es etwas Verkehr erfasst hat?Antworten:
Vielleicht möchten Sie das Verhalten von tcpdump mit strace überprüfen, um festzustellen, ob es etwas Seltsames wie Chrooting tut, ob es sich um eine Gentoo-Distribution oder eine andere Distribution handelt, die die Binärdateien in Frage stellt.
quelle
/var/lib/tcpdump
. Und siehe da, da liegen alle meine Cap-Dateien.Ok, ich habe das Rätsel gelöst. Folgen Sie mir, während wir Funtoos TCPDump und das Geheimnis der fehlenden PCAP-Datei enträtseln .
Ich habe Strace verwendet, um zu sehen, was los ist und die relevanten Zeilen sind:
Damit...
Guck mal! Alle Cap-Dateien, die ich erstellt habe!
Nachdem ich mir die Use Flags angesehen habe, mit denen tcpdump standardmäßig erstellt wurde, sehe ich Folgendes:
Warum also so? Meine Theorie geht ungefähr so:
/var/lib/tcpdump
dann Root-Berechtigungen und beginnt mit der Erfassung.Als Ergebnis, wenn ich angegeben habe
./blah
oderblah
es gut funktioniert hat. Aber/tmp/blah
nicht, weil/var/lib/tcpdump/tmp
es nicht existiert.Eine nette Nebenfunktion von all dem ist: Wenn Sie das suid-Flag verwenden, um tcpdump SetUID zu installieren, können Sie Benutzern Zugriff auf die
tcpdump
Gruppe gewähren , ohne ihnen Sudo- oder Root-Zugriff zu gewähren. Mögliche Verwendungszwecke sind eine Erfassungsbox für Ihre Netzwerktechniker oder -forscher.Ich wünschte nur, Gentoo / Funtoo hätte bei der Installation eine Nachricht erhalten, die all dies besagt.
tl; dr: Gentoo / Funtoo legen Ihre PCAP-Dateien ab
/var/lib/tcpdump
.quelle
Die Syntax ist korrekt: Ich habe es gerade versucht (allerdings an Port 80) und es wurde eine PCAP-Datei im aktuellen Arbeitsverzeichnis generiert, mit den gleichen Optionen, die Sie verwenden.
Könnte es etwas mit Ihrem Home-Verzeichnis zu tun haben, in das Sie als Root schreiben möchten (wegen des Sudo)? Ist es möglich, dass Sie NFS-gemountete Home-Verzeichnisse mit Root-Squashing verwenden?
sudo touch ~akraut/pcaps/foo
?Können Sie versuchen, die PCAP in / tmp / oder so etwas zu schreiben?
quelle
sudo tcpdump -w /tmp/blah -s 0 "port 6667"
sieht es aus, es funktioniert wie, aber wenn ichsudo su -
dann läuft zuersttcpdump -w /tmp/blah -s 0 "port 6667"
als root heißt es „Keine solche Datei oder das Verzeichnis“. Das Geheimnis vertieft sich ...