Tcpdump

Tcpdump kann komplette Pakete des Ethernet-Protokolls oder jedes anderen Protokolls auf OSI-Layer 2 und darüber an der lokalen Netzwerkschnittstelle protokollieren. Gerade bei nicht-trivialen Netzwerkproblemen ist derartiges Packet Sniffing eine gute Alternative.

Tcpdump hilft beispielsweise, den Hintergründen einer schlechten Netzwerkperformance auf die Spur zu kommen. Absender, Empfänger, Ports und Protokolle des gesamten Netzwerkverkehrs werden erfasst. Aus diesem Profil ergibt sich fast zwangsläufig die Anwendung, die den möglicherweise fehlerhaften Traffic verursacht. Weil Tcpdump die Herkunft von unbekannten Paketen anzeigt, ist es auch bei Denial-Of-Service-Angriffen eine große Hilfe.

Das einfache Werkzeug arbeitet direkt auf der Ebene der Netzwerkschnittstelle und unterscheidet sich dadurch erheblich von Werkzeugen wie Ping, Telnet, MRTG oder Nagios, die den OSI-Layer 3 überwachen. Im Gegensatz zu diesen zeichnet Tcpdump allerdings keine langfristigen Trends auf, sondern liefert einen LiveMitschnitt des aktuellen Netzwerkzustandes, es eignet sich perfekt zum Netzwerk-Debuggen.

Das folgende Beispiel illustriert den Einsatz von Tcpdump zur Fehleranalyse: Ein lokaler Webserver antwortet nicht auf Clientanfragen. Der Administrator startet auf dem Clientrechner Tcpdump und startet dann eine Anfrage an den Webserver. Alle Schritte, die für den Aufruf der Webseite notwendig sind, werden in der Ausgabe von Tcpdump nachvollziehbar: DNS- und ARP-Auflösung, Anfragen und Antworten der HTTP-Kommunikation. Mit Tcpdump werden alle Schritte im Detail verfolgt, der Fehler wird schnell eingegrenzt.

Promiscuous Mode

Soll das Tool auf der lokalen Netzwerkschnittstelle Daten protokollieren, die nicht für das lokale Gerät bestimmt sind, muss das Netzwerkinterface mit Administratorrechten in den Promiscuous Mode geschalten werden. Alle Pakete der Collision-Domain werden jetzt auch durch die lokale Netzwerkkarte angenommen. Tcpdump bietet umfangreiche Filtermöglichkeien, die vor allem im Promiscuous Mode sehr gute Dienste leisten. Mit diversen Ausdrücken und Bool’schen Operatoren lässt sich der mitgeschnittene Netzwerkverkehr schnell auf die Pakete mit den gewünschten Eigenschaften einschränken.

Um auf der Netzwerkschnittstelle eth0 beispielsweise den Netzwerkverkehr von Host A auf Port 22 mitzulesen, dabei aber alle Pakete auszuschließen, die von oder zu Host B gehen, dient folgender Befehl:

tcpdump -i eth0 host A and not host B and port 22

Hinter Tcpdump steht unter anderem die Bibliothek Libpcap, auf die auch zahlreiche andere Programme aufsetzen und teilweise eine viel umfangreichere Funktionalität bereitstellen. Wireshark, Nachfolger von Ethereal, bringt eine grafische Oberfläche zur Analyse des Netzwerkverkehrs und eine große Anzahl bereits vorkonfigurierter Filter mit. Das Programmpaket Nfsen bietet sehr ausgereifte Möglichkeiten zur Protokollierung von Paketen auch in größeren Netzen.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2020