tcpdump/pcap: Nur von bestimmten Benutzer

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
me
Beiträge: 868
Registriert: 30.10.2005 00:14:23
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Paderborn
Kontaktdaten:

tcpdump/pcap: Nur von bestimmten Benutzer

Beitrag von me » 03.08.2015 10:35:08

Hallo,

fällt wem ad-hoc ein, wie man am besten auf einem System nur den Netzwerk Traffic mitschneidet und abspeichert (pcap Format), der von Prozessen eines bestimmten Benutzers verursacht wird?

Danke :)
Anytime if we think we were right,
we were maybe wrong.

pferdefreund
Beiträge: 3792
Registriert: 26.02.2009 14:35:56

Re: tcpdump/pcap: Nur von bestimmten Benutzer

Beitrag von pferdefreund » 03.08.2015 13:28:58

Eine freundliche Mail an den NSA hilft da bestimmt weiter.
(Sollte ein Scherz sein).

Benutzeravatar
me
Beiträge: 868
Registriert: 30.10.2005 00:14:23
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Paderborn
Kontaktdaten:

Re: tcpdump/pcap: Nur von bestimmten Benutzer

Beitrag von me » 03.08.2015 13:39:30

pferdefreund hat geschrieben:Eine freundliche Mail an den NSA hilft da bestimmt weiter.
(Sollte ein Scherz sein).
Hilft hier super weiter...
Gemeint ist natürlich der Traffic auf einem System der von User ID zB 1001 verursacht wird.
Anytime if we think we were right,
we were maybe wrong.

pferdefreund
Beiträge: 3792
Registriert: 26.02.2009 14:35:56

Re: tcpdump/pcap: Nur von bestimmten Benutzer

Beitrag von pferdefreund » 03.08.2015 19:20:29

also mit netstat bekommt man zumindest port und ip sowie prozessnummer.
Dann aus /proc prozessnummer suchen und ggf userid dazu. Ob man das vernünftig scripten kann - keine Ahnung - ich würd mir da was in c basteln. Ach ja zusätzlich noch Zeitstempel und man könnte zumindest mit großer Genauigkeit den Verkehr einem User zuordnen. Im Pcap-Format liegt ja sicherlich auch IP und port vor.
Irgendwas mit netstat -np, ps aux usw und dann zusammenfrickeln.
Eventuell gleichzeitig laufen lassen und Ergebnisse in eine DB schaufeln oder so.
Dann pcap-daten per select über die 2 Tabellen (die aus ps und die aus netstat ziehen) - nur mal so grob als Denkanstoß - ohne NSA.
also mit netstat wer hat verkehr (hier Netz gemeint - grins) (programm, PID,IP,Port),
mit ps wer war es PID USERID,Programm
Beide über Zeit und PID verknüpfen.
Dann IP-Verkehr drüberziehen.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: tcpdump/pcap: Nur von bestimmten Benutzer

Beitrag von Cae » 03.08.2015 21:00:59

Du koenntest mit iptables und --uid-owner die Pakete des Benutzers matchen und beispielsweise ueber eine Bridge schicken, die auch am physikalischen Interface haengt. Mit tcpdump -i bridge sollte sich abgesehen von eventuellen Broadcasts nur ausgehender Traffic vom betreffenden Benutzer im Dump finden. Fuer eingehende Pakete ist das vermutlich nicht so leicht.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
me
Beiträge: 868
Registriert: 30.10.2005 00:14:23
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Paderborn
Kontaktdaten:

Re: tcpdump/pcap: Nur von bestimmten Benutzer

Beitrag von me » 04.08.2015 09:45:19

Hallo,

die Prozess ID(s) helfen leider nicht weiter, da ständig neue gespawned werden.

Zum iptables Vorschlag:
Ich habe mittlerweile folgendes gefunden:

Code: Alles auswählen

iptables -I OUTPUT -m owner --uid-owner 1234 -j MARK --set-mark 1337
Die Regel matcht auch und mit tcpdump schneide ich dann den gesamten Traffic mit. Nun sollte ich eigentlich(?) diese Markierungen via Wireshark finden. frame.marked scheint es nicht zu sein, da es weder auf == 1 oder == 1337 matches findet, bzw. finde ich derzeit nur die Möglichkeit im Wireshark mit WS selbst markierte Pakete anzuzeigen.

Vielleicht kann hier wer den Faden weiter spinnen? Die Lösung würde ich auf alle Fälle bloggen :)
Anytime if we think we were right,
we were maybe wrong.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: tcpdump/pcap: Nur von bestimmten Benutzer

Beitrag von Cae » 05.08.2015 23:37:35

IMHO sind MARKs nur Kernel-interne Eigenschaften des betreffenden Paketes, welches sich wiederum beispielsweise auf Kernel-internes Routing auswirken kann, jedoch nicht im Paket selbst oder sonst im Userspace sichtbar wird. D.h. tcpdump sieht die Aenderung gar nicht. frame.marked klingt fuer mich eher nach der "Rechtsklick/Mark Packet"-Einstellung, welche Wireshark-intern ist.

Auf [1] habe ich allerdings gerade das hochinteressante Target NFLOG (siehe iptables-extensions(8)) gefunden, welches vielversprechend aussieht:

Code: Alles auswählen

# iptables -A OUTPUT -m owner --uid-owner {user} -j CONNMARK --set-mark 1
# iptabels -A OUTPUT -m connmark --mark 1 -j NFLOG
# iptables -A INPUT  -m connmark --mark 1 -j NFLOG
# tcpdump -i nflog:0
Hier scheint das zu funktionieren.

Gruss Cae

[1] https://wiki.wireshark.org/CaptureSetup/NFLOG
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten