tcpdump

Aus Mikiwiki
Version vom 24. Januar 2009, 16:51 Uhr von Michi (Diskussion | Beiträge) (Die Seite wurde neu angelegt: Der Shell-Befehl <b>tcpdump</b> ist als Sniffer die bekannteste Software zur Überwachung und Auswertung von Datenverkehr in einem Rechnernetz. Das Programm...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
Die druckbare Version wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.

Der Shell-Befehl tcpdump ist als Sniffer die bekannteste Software zur Überwachung und Auswertung von Datenverkehr in einem Rechnernetz. Das Programm liest alle TCP-Pakete, die durchs lokale Netzwerk laufen - dabei gibt es allerdings bloss den Paket-Header aus, ohne Auskunft über den Inhalt zu liefern. Der Aufruf ist nur als Benutzer "root" über die Befehlszeile möglich.

Verwandte Programme sind die folgenden:

  • traceroute
  • ping
  • mtr (Matt's traceroute) kombiniert ping und traceroute.
  • iptraf zeigt an, was genau auf der Netzwerkkarte passiert, welche Protokolle genutzt werden und mit welchen anderen Rechnern der eigene in Verbindung steht.

Syntax

tcpdump [ -deflnNOpqStvx ] [ -c count ] [ -F file ] [ -i interface ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ expression ]

Optionen

Option Beschreibung
-i Einschränkung der Ausgabe auf die angegebene Netzwerkschnittstelle (z. B. "eth0").
-l Make stdout line buffered
-n Unterdrücken der Namensauflösung.
-r Read packets from file
-vv (slightly more) verbose output
-w Schreiben der Rohdaten in einer Datei.
-x Anzeige jedes Pakets.

Verwendung

Anzeige, ob auf dem lokalen Rechner Pakete von der IP-Adresse 10.0.5.4 ankommen.

# tcpdump -n host 10.0.5.4

Anzeige, ob Pakete auf port 22 des lokalen Rechners ankommen.

# tcpdump -n port 22

Anzeige aller an der Schnittstelle eth0 ankommenden Daten für Port 4080.

# tcpdump -i eth0 port 4080

Anzeige des Netzwerkverkehrs mit Rechner 10.0.5.4, wobei IP-Adressen nicht in Rechnernamen umgewandelt werden.

# tcpdump -n host 10.0.5.4

Anzeige des Netzwerkverkehrs mit Rechner 192.168.100.104 auf Port 3045, wobei eine Puffergrösse von 1024 Bytes eingestellt ist und die Ausgabe auch als Hex-Dump erfolgt ("-xX"). Die Dumpdatei wird in die Datei "/tmp/tcp.dmp" geschrieben.

# tcpdump -s 1024 -xX -n host 192.168.100.104 and port 3045 > /tmp/tcp.dmp

...

# tcpdump host 160.85.2.82 and host 10.120.110.179 and tcp port 3045

...

# tcpdump -n host 10.0.5.106 -vv -x -X -s 1024

...

# tcpdump -w /tmp/tcp.dump host 10.0.1.29 &
# ...
# tcpdump -n -vv -x -r /tmp/tcp.dump > /tmp/tcp.dump.asc

Beispiel: Verbindungstest

# tcpdump -n host IP-address > /tmp/tcp.dump &
[1] PID
# ping IP-address
request
reply
alive
# kill PID
# more /tmp/tcp.dump

Beispiel

# tcpdump -n host IP-address > /tmp/tcp.dump &<
[1] PID
# xpadd -de printername -dr /etc/hosts
# kill PID
# more /tmp/tcp.dump

Falls der port bekannt ist:

# tcpdump -n host IP-address and port port-number > /tmp/tcp.dump &
[1] PID

Die entstehende Datei zeigt dann:

  • Server schickt IP-Paket an PC
  • PC schickt IP-Paket an Server
  • acknowledge vom Server zum PC
  • Push (P) vom Server zum PC
  • Finish Push (FP) vom Server zum PC
  • acknowledge vom PC zum Server
  • Finish (F) vom PC zum Server (das dauerte z. B. bei der SB Aarau 19 Sekunden)
  • Leerzeile
  • acknowledge vom Server zum PC
# tcpdump -n net 10.10.11

Die Ausgabe zeigt dann:

  • die Herkunfts-IP (z. B. 10.10.11.1, die Cisco in Basel)
  • die Ziel-IP (z. B. 10.0.5.50, den Server in Lausanne)

Weblinks

Vorlage:dewi Vorlage:enwi