Netzwerkanalyse mit Wireshark

© © Reinhard Eisele

Hai-teres Paketeraten

Ein Administrator gewinnt nur dann nützliche Erkenntnisse aus der Netzwerkanalyse, wenn er die grundlegenden Verfahren und Protokolle vesteht. Der Netzwerk-Analyzer Wireshark hilft ihm dabei.
Egal, um welchen Dienst es sich dreht, den Benutzern geht es immer zu langsam. Der Schwerpunkt des ADMIN-Magazins 05/2011 verrät, mit welchen Tools man ... (mehr)

Dass Linux eine Reihe brauchbarer Tools zur Netzwerkanalyse mitbringt, ist kein Geheimnis. Viele davon liefern hervorragende Ergebnisse, die durchaus mit denen kommerzieller Werkzeuge mithalten können. Trotzdem schrecken Windows-Administratoren gelegentlich vor dem Einsatz von Open-Source-Werkzeugen zurück, falls diese etwa keine grafische Benutzeroberfläche bieten. Im Wesentlichen tut eine Netzwerkanalyse-Software nichts anderes, als den gesamten Datenverkehr auf dem angegebenen Netzwerkinterface aufzuzeichnen, wozu die Software sämtliche Datenpakete kontinuierlich abfängt und auf der Festplatte speichert.

In einem zweiten Schritt dekodiert die Software die Daten und zeigt sie am Bildschirm an. Im Unix-Umfeld ist beispielsweise das freie Tcpdump ein Klassiker und dessen Einsatz unter Fachleuten weitverbreitet. Allerdings besitzt es nur eine Kommando-Schnittstelle. Tcpdump gibt es für nahezu alle Unix-Derivate wie AIX, BSD, Solaris und ist beispielsweise bei Linux fast immer in den Standardpaketquellen enthalten und oft auch per Default installiert. Für Windows gibt es übrigens die Portierung Windump, die auf Winpcap basiert. Tcpdump braucht direkten Zugriff auf die Hardware und läuft daher in der Regel mit Root-Rechten, lediglich bei Mac OS X und Solaris benötigt der Benutzer nur die für die Gerätedatei der Netzwerkkarte erforderlichen Rechte.

Tcpdump liest per Default alle Daten, die das spezifizierte Netzwerkinterface über das Netzwerk erreichen, und stellt sie wahlweise an der Standardausgabe dar oder speichert sie in Dateien, die der Admin zum Auswerten heranziehen kann. Tcpdump gefällt vor allem wegen seines gut bestückten Filter-Sortiments. Diese Capture-Filter basieren auf der Libpcap, einer C/C++-Bibliothek, die den Zugriff auf die Link-Layer-Ebene von Netzwerkinterfaces erlaubt. Der Admin steuert das Verhalten von Tcpdump vollständig von der Kommandozeile aus durch das Übergeben von Parametern, dazu gehört auch das Übergeben der zu verwendenden Filter.

Etheral und Wireshark

Da die CLI-Steuerung nicht jedem behagt, gibt es schon relativ lange auch grafische Lösungen, die ebenfalls auf der Libpcap-Bibliothek aufsetzen, wie etwa das seit dem Jahr 2006 verfügbare Wireshark, das früher Ethereal hieß und unter diesem Namen vielen Admins bekannt sein dürfte. Die Umbenennung mit Veröffentlichung der Wireshark-Version 0.99.1 wurde notwendig, weil der Ethereal-Entwickler Gerald Combs seinen Arbeitgeber Ethereal Software verließ. Beim neuen Arbeitgeber CACE Technologies startete er ein Nachfolge-Projekt unter dem Namen Wireshark, mit dessen Erfolg Ethereal Software die Weiterentwicklung des Vorgängers einstellte.

Heute wird Wireshark maßgeblich von der Wireshark-Community entwickelt. Ethereal und Wireshark sind echte Open-Source-Projekte, wenngleich sich Ethereal an Netzwerk-Analyse-Produkten kommerzieller Hersteller orientiert. Meilensteine der Wireshark-Entwicklung sind die seit März 2008 verfügbare Version 1.0 sowie die von einigen Bugs befreite Version 1.4 vom Sommer 2008, die neben experimenteller Unterstützung von Python-Skripten unter anderem auch die Möglichkeit eröffnet, in der Paketliste mit einem Rechtsklick auf die Paketdetails Protokollfelder hinzuzufügen.

Außerdem lassen sich seit Libpcap 1.0.0 die Puffergrößen für die Aufzeichnungen einstellen und Jpeg-Dateien direkt in Wireshark öffnen. Anlass dieses Beitrages ist die im Juli 2011 veröffentlichte Version 1.6, die unter anderem bessere Unterstützung für große Dateien von mehr als 2 GByte implementiert und ähnlich wie Text2pcap auch Textdumps importieren kann. Außerdem haben die Entwickler die GUI anwenderfreundlicher gestaltet, sodass man Spalten ausblenden wie auch maßgeschneiderte Spalten für die gewünschten Felder anlegen kann.

Hauptmerkmal der neuen Version ist aber, dass diese über 30 neue Protokolle unterstützt, darunter auch Json, Wi-Fi P2P (Wi-Fi Direct) und Fibre Channel over InfiniBand. Außerdem kann Wireshark 1.6.0 SSL-Schlüssel und SMB-Objekte exportieren. Eine weitere Neuerung in Wireshark 1.6 ist, dass die Software VLAN-Tags (IEEE 802.1q) direkt im Ethernet-II-Protokoll-Baum anzeigt.

Wireshark ist unter der GPLv2 lizenziert und lässt sich bei nahezu allen Linux-Distributionen über das Paketmanagement installieren. Allerdings bringt selbst ein leidlich aktuelles Ubuntu Natty nur die Wireshark-Version 1.4.6 mit.

Auf der Download-Seite unter [1] finden sich Quellpakete der aktuellen Version für Unix-Systeme und Binärpakete für Windows und aktuell (ab 1.6) auch für Mac OS X. Das Installieren der 32-Bit-Windows-Version ist selbsterklärend. Hier genügt das Herunterladen und anschließende Doppelklicken der Installer-Datei »wireshark-win32-1.6.1.exe« . Der Wireshark-Installationsassistent startet übrigens einen Helfer für die Installation von WinPcap.

Datenmassen

Einer Netzwerkanalyse mit Wireshark sollte stets eine vernünftige Planung vorangehen. Das gilt zwar prinzipiell für den Einsatz jedes Systemwerkzeugs, bei der Netzwerkanalyse ist aber in Zeiten von Gigabit-Ethernet unbedingt darauf zu achten, dass genügend Systemressourcen zur Verfügung stehen. Daher sollte sich der Admin ungefähr über das zu erwartende Datenvolumen im Klaren sein. Das hängt wiederum davon an, welchen Datenverkehr mit welchem Ziel er abhören möchte, wonach er die zu verwendenden Filter auswählt. Dabei ist möglicherweise auch zu berücksichtigen, dass der verwendete Sniffer selbst nicht die Messung beeinflusst, weil er etwa Pakete automatisch verwirft.

Für das Messen von Netzwerkdaten, die nicht an den Host gerichtet sind, in dem das Netzwerkinterface steckt, gibt es im Wireshare-Konfigurations-Dialog die Option, das Netzwerkgerät wahlweise im Promiscuous-Mode oder im Non-Promiscuous-Mode zu betreiben. Im Non-Promiscuous-Mode analysiert Wireshark dann nur solche Pakete, die an den eigenen Host gesendet oder von diesem versandt werden. Alle anderen Datenpakete (mit fremder Empfängeradresse) verwirft Wireshark.

Im Promiscuous-Mode dagegen kann Wireshark sämtliche Datenpakete von allen im Netz existierenden Rechnern analysieren, weil dieser Modus auch Datenpakete mit fremden Empfängeradressen akzeptiert. Sind im Netz sämtliche Ressourcen ausschließlich über Hubs verbunden, stellt das Verwenden des Promiscuous-Mode zum Lesen aller Datenpakete auch kein Problem dar, weil Hubs sämtliche Datenpakete an alle Ports versenden.

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 /2023