Ich möchte Protokolle aller Netzwerkkommunikationen zwischen meinen Heimgeräten (Laptops, Telefone usw.) und der Außenwelt in diesem Format sammeln:
Timestamp / Device MAC Address / Source IP:Port / Destination IP:Port / Protocol (Internet/Transport Layers) / Amount of data in bytes
Die Idee ist, eine physische Linux-Box („Logging Server“) nur für die Protokollierung einzurichten und tcpdump
auszuführen drauf:
Internet ⟺ Logging Server ⟺ Wi-Fi/Ethernet Switch ⟺ Devices
(Die Box wird zwei Ethernet-Schnittstellen haben – für die Internetverbindung und für den lokalen Switch).
Angenommen, ich kümmere mich um den Umgang mit den Protokolldateien (Rotation, Parsing, Zuführung zu Reporting-Tools), wie der tcpdump
wie sieht der Befehl aus?
Um es klar zu sagen, ich weiß, dass diese Frage höchstwahrscheinlich durch Ausgraben der Manpage beantwortet werden kann. Ich möchte nur von jemandes umfangreicher Erfahrung mit tcpdump
profitieren um Zeit zu sparen, häufige Fehler zu vermeiden usw.
P. S. Der Hauptzweck davon ist die Überwachung/Untersuchung potenziell vorhandener Backdoors oder anderer unerwünschter/unerwarteter Netzwerkaktivitäten.
Akzeptierte Antwort:
tcpdump -n -e -q -i any
Mit:
-n
:Adressen nicht in Namen umwandeln (dies verhindert insbesonderetcpdump
von Reverse-DNS-Lookups)-e
:Drucken Sie den Link-Level-Header auf jeder Dump-Zeile (insbesondere MAC-Adresse). Verwenden Sie dies zusammen mit-i any
, benötigen Sie diese, um die eingehende/ausgehende Netzwerkschnittstelle neu zu bestimmen.-q
:Weniger Protokollinformationen drucken, damit die Ausgabezeilen kürzer sind-i any
:derany
Schlüsselwort kann verwendet werden, um Pakete von allen Schnittstellen zu erfassen
Beachten Sie, dass die durch den obigen Befehl angegebene Länge die Nutzlastlänge ist. Wenn Sie auch die Paketlänge möchten, entfernen Sie die Option „-q“.