Good to Know Database

Netzwerk-Kommunikation mit tcpdump mitschneiden


Mit dem Kommandozeilen-Programm tcpdump kann der gesamte Netzwerkverkehr mitgeschnitten werden. Da dazu ein direkter Zugriff auf die Netzwerk-Schnittstellen benötigt wird, kann tcpdump nur vom Benutzer root und von Benutzern mit entsprechenden Berechtigungen genutzt werden.

Wenn Sie tcpdump ohne Parameter aufrufen, werden die Pakete von der ersten aktiven Schnittstelle angezeigt. Ausgenommen ist hierbei das Loopback-Device lo.

[root@centos5 ~]# tcpdump

Durch -i können Sie eine Schnittstelle angeben, auf welcher tcpdump lauschen soll.

[root@centos5 ~]# tcpdump -i eth0

Mit der Option -c kann man die Anzahl der Pakete angeben, welche tcpdump mitschneiden soll. Danach beendet sich tcpdump selbstständig. Mit der Tastenkombination Strg+C kann tcpdump jederzeit beendet werden.

[root@centos5 ~]# tcpdump -i eth0 -c 1000

Damit die IP-Adressen nicht in die Rechnernamen aufgelöst werden, können Sie die Namensauflösung mit der Option -n deaktivieren.

[root@centos5 ~]# tcpdump -i eth0 -n

Durch die Angabe der Option -q werden weniger Protokoll-Informationen ausgegeben.

[root@centos5 ~]# tcpdump -i eth0 -q

Damit nur die Pakete mitgeschnitten werden, welche an einen bestimmten Port adressiert sind, kann mit dem Ausdruck port nach einem Port gefiltert werden. Der folgende Befehl schneidet somit nur die Pakete mit, welche an den Port 53 (DNS) gerichtet sind beziehungsweise von diesem gesendet werden.

[root@centos5 ~]# tcpdump -i eth0 port 53

Um den Filter umzukehren, setzt man entweder ein Ausrufezeichen oder ein not vor den jeweiligen Ausdruck. Somit liefert der folgende Befehl alle ankommenden und abgehenden Pakete der Schnittstelle eth0 außer die Pakete, welche an den Port 22 adressiert sind beziehungsweise von diesem Port abgehen.

[root@centos5 ~]# tcpdump -i eth0 ! port 22

Will man die Kommunikation zwischen dem eigenen Rechner und einem anderen Rechner (hier mit der IP-Adresse 192.168.10.33) mitschneiden, verwendet man den Ausdruck host und gibt die jeweilige IP-Adresse an.

[root@centos5 ~]# tcpdump -i eth0 host 192.168.10.33

Mehrere IP-Adressen können wie folgt angegeben werden. Dabei werden alle Pakete mitgeschnitten welche entweder die IP-Adresse 192.168.10.33 oder 192.168.10.34 enthalten.

[root@centos5 ~]# tcpdump -i eth0 host \( 192.168.10.33 or 192.168.10.34 \)

Der folgende Befehl liefert nur die Pakete, welche vom beziehungsweise zum Rechner mit der IP-Adresse 192.168.10.33 gesendet werden und an den Port 53 adressiert sind beziehungsweise vom Port 53 gesendet wurden.

[root@centos5 ~]# tcpdump -i eth0 host 192.168.10.33 and port 53

Um die komplette Kommunikation, mit Ausnahme der SSH-Verbindung (Port 22), zwischen dem eigenen Rechner und dem Rechner mit der IP-Adresse 192.168.10.33 zu belauschen können Sie den folgenden Filter verwenden.

[root@centos5 ~]# tcpdump -i eth0 host 192.168.10.33 and not port 22

Mit der Option -s können Sie festlegen wie viele Bytes der mitgeschnittenen Pakete ausgegeben beziehungsweise gespeichert werden sollen. Standardmäßig werden die Pakete nach 65535 Bytes abgeschnitten. Will man die vollständigen Pakete mitschneiden, gibt man -s0 an. Durch die Option -w können die Pakete in eine Datei gespeichert werden. Die Ausgabedatei kann dann zum Beispiel mit Wireshark analysiert werden.

[root@centos5 ~]# tcpdump -i eth0 -s0 -w capture.pcap host 192.168.10.33

Um die Ausgabedatei (hier capture.pcap) beim Erreichen einer bestimmten Größe automatisch zu splitten, können Sie mit der Option -C die maximale Dateigröße in MB angeben.

[root@centos5 ~]# tcpdump -i eth0 -s0 -C 100 -w capture.pcap host 192.168.10.33


Dieser Eintrag wurde am 02.07.2011 erstellt.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_7_1331.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer