29 Beiträge

Fehlersuche im Netzwerk mit freier Software

Was auf den Leitungen des lokalen Netzwerks passiert, interessiert die meisten Anwender wenig - Hauptsache es funktioniert. Dabei zeigt die Analyse des Datenverkehrs viele Probleme auf.


(Erschienen im CHIP-Sonderheft "Linux" 3/2006)



Heutige LAN-Verbindungen schaufeln die Daten in rasender Geschwindigkeit von einem Rechner zu seinen Kollegen. Dadurch bekommt man kaum etwas davon mit, wenn eine falsche Konfiguration die sie ein wenig ausgebremst oder ein Spionageprogramm wie eine Keylogger Daten "nach Hause" überträgt. Darum sollten Sie nicht nur im Fehlerfall nachprüfen, womit Ihr Netzwerk beschäftigt ist.



Das Tool Etherreal, das fertig installiert in Knoppix enthalten ist, macht die tatsächlichen Vorgänge im LAN sichtbar. Um den meisten Fehlern auf die Schliche zu kommen, muss man die Netzwerktechnik nicht bis ins letzte Bit verstehen. Denn Ethereal bereitet die Daten sehr anschaulich auf.



Der Ethereal-Desktop im Detail



Ethereal



Das Tool besteht aus zwei Modulen. Das eine klinkt sich in die Kommunikation der Netzwerkkarte ein und protokolliert alle Datenpakete mit. Ist dabei der "promiscous mode" aktiv, zeichnet Ethereal nicht nur die an den Rechner direkt gerichteten Daten auf, sondern protokolliert alle Pakete mit, die an der Netzwerkkarte auflaufen - also auch die für andere Statiomnen. Nach der Aufzeichnung wird der andere Teil aktiv. Er analysiert die aufgezeichneten Datenpakete und visualisiert die zugrunde liegende Kommunikation.



Der Vorteil der Verwendung von Knoppix ist, dass Sie nach dem Booten der CD fast sofort startklar sind. Wollen Sie etwa im Firmennetzwerk auf die Fehlersuche gehen, schnappen Sie sich einen Laptop, fahren Knoppix hoch und können so bei Bedarf völlig mobil den Problemen nachgehen. Dank Live-System ist diese Methode ohne Gefahr für die auf dem Laptop installierte Software.



So starten Sie Ethereal


Sie finden Ethereal im KDE-Menü unter dem Oberbegriff "Internet". Beim Start erscheint zuerst das Fenster von KDE-su und verlangt von Ihnen die Eingabe des root-Kennworts. Das ist allerdings direkt nach dem Start gesperrt. Sie müssen erst über das Knoppix-Menü (das mit dem Pinguin-Symbol) eine "Root Shell" starten und dort über den Befehl "passwd" das root-Kennwort neu setzen. Das geben Sie dann auch im Fenster ein, das beim Start von Ethereal erschienen ist. Solange Knoppix läuft, bleibt dieses Supervisor-Kennwort gesetzt. Beim nächsten Hochfahren von CD-ROM müssen Sie allerdings die Prozedur nochmal durchlaufen.



Der erste Einsatz


Nach dem Start zeigt Ethereal. einen ziemlich leeren Screen. Lassen Sie sich über das Menü "Capture - Interfaces" alle verfügbaren Netzwerkschnittstellen anzeigen. In der Regel wird Ihre Netzwerkkarte die Bezeichnung "eth0" tragen. Stecken im Computer mehrere Schnittstellen erkenn Sie über die angezeigte Anzahl übertragener Datenpakete, welche Schnittstelle wirklich in Gebrauch ist.



Klicken Sie in der betreffenden Zeile auf den Knopf "Prepare". Damit wird der Dialog, der sonst über "Capture - Options" erreichbar ist, angezeigt. Hier ist dann gleich das gewünschte Interface ausgewählt.



Klicken Sie auf den Start-Button rechts unten, beginnt die Aufzeichnung des LAN-Verkehrs. Das während des Mitschnitts angezeigte Fenster informiert Sie, wie viele Pakete aus den verschiedenen Protokollvarianten bislang aufgefangen wurden.



Analyse starten


Sobald Sie auf den Stopp-Knopf drücken, liest Ethereal den Mitschnitt ein, ackert ihn durch und zeigt Ihnen die Ergebnisse der Analyse an. Dabei ist der Bildschirm in drei Unterfenster aufgeteilt. Das größte, obere Fenster, zeigt jedes Datenpaket in einer eigenen Zeile an und versucht mit farbiger Markierung und Hinweistexten den Inhalt der jeweiligen Kommunikation zu erläutern.



Das mittlere Fenster liefert für jedes oben markierte Paket die technischen Details, wie etwa das verwendete Ethernet-Protokoll, den Aufbau des Headers oder die Belegung einzelner Datenfelder. Um noch mehr Informationen zu erhalten, lassen sich die meisten Bereiche aufklappen und bringen die Daten dann noch weiter aufgeschlüsselt.


Im untersten Bereich wird es dann ganz technisch. Denn er zeigt die binären Rohdaten, die versandt wurden. Werden im mittleren Fenster Teile angewählte, dann zeigt das untere Fenster die zugehörigen Daten durch optische Hervorhebung an.



Pakete verstehen


Auch wenn ein PC keinen offensichtlichen Grund hat, mit anderen Stationen im LAN zu kommunizieren, fliegen doch viele Datenpakete hin und her:


ARP: Auf dem Ethernet kommunizieren die Teilnehmer über Ihre feste Hardware-Adresse (MAC). Erst das Betriebssystem ordnet jeder Netzwerkkarte eine IP-Adresse zu, entweder eine fest eingestellte oder eine, die es sich von einem DHCP-Server im LAN holt. Das Adress Resolution Protocol dient nun dazu, dass eine Station nachfragen kann, welche MAC-Adresse hinter einer IP-Adresse steckt. In Ethereal sieht man eine solche Anfrage als hellblau unterlegte Zeile, etwa mit dem Text "Who has 192.168.0.20? Tell 192.168.0.3". Weil der anfragende Computer dies als Rundruf im Netz sendet, steht unter "Destination Address" der Wert "Broadcast".


In den meisten Fällen wird direkt kurz darauf die Antwort der betreffenden Station auftauchen, etwa: "192.168.0.20 is at 00:4a:c3:04:e0:4f" Dabei ist die sechs Byte lange Hex-Zahl die MAC-Adresse, mit der der angesprochene Computer antwortet.


ARP-Anfragen kommen zwar recht häufig vor, belasten das Netzwerk aber nur wenig, weil die übertragegen Datenmengen gering sind.


NBNS: Gelb markierte Zeilen deuten auf die Verwendung von NETBIOS hin, also dem Protokoll, mit dem Windows-Freigaben oder Drucker verwendet werden und über das sich die Windows-PCs untereinander über ihre Rechnernamen informieren. Darum kommt es auch dann zu Übertragungen, wenn gar keine Freigaben genutzt werden. Auf eine Netbios-Namensabfrage hin, antwortet entweder das gesuchte System selbst oder die Station, die den anderen als Auskunftsstelle (Browser) dient.


ICMP: Bestimmte Nachrichten, wie Netzwerk-Warnungen oder Diagnoseinformationen müssen besonders schnell zwischen Netzwerkstationen ausgetauscht werden. Dazu dienen ICMP-Pakete. Wenn Sie beispielsweise eine Gegenstelle anpingen, werden Sie in Ethereal diesen Funktionstest als ICMP-Pakete angezeigt bekommen.


UDP:Dieser Pakettyp ist so etwas wie eine SMS Im LAN. Es handelt sich dabei um Kurznachrichten, bei denen der Absender keine Bestätigung über den Erfolg der Zustellung erhält. Anwendungen, die UDP verwenden, ist die Schnelligkeit wichtiger, als die Zuverlässigkeit. UDP kommt beispielsweise bei DNS-Abfragen oder IP-Telefonie zum Einsatz.


TCP:Für die üblichen Kommunikationsarten, wo zwei Seiten einen Dialog führen und nicht bloß telegrammartige Kurzmitteilungen versenden, ist TCP zuständig. TCP ist also der Lastesel in der Kommunikation. Ethereal färbt Pakete dieses Typs fliederfarben ein, verwendet bei der Benennung allerdings ein schlecht nachvollziehbares Schema. Manche Pakete tragen den Service, wie "IMAP" oder "HTTP" in der Spalte "Protocol", andere Pakete des selben Typs heissen schlicht "TCP". In der Infospalte ist aber jeweils der Ziel-Port nachzulesen. Fragt ein Computer beispielsweise einen E-Mail-Server ab, könnte das Infofeld mit "1234 > pop3" beginnen. Die erste Zahl ist dabei der vom absendenden System verwendete Quell-Port, der keinen Zusammenhang mit dem zugrunde liegenden Dienst hat.



Filter gegen Chaos


Hört Ethereal eine belebte Leitung ab, kann schon ein 30-sekündiger Mitschnitt eine so große Zahl von Paketen hervorbringen, dass man keinen Durchblick mehr hat. Hier hilft das zweistufige Filtersystem des Programms. Die eine Variante sind die "Capture Filter": Sie lassen Pakete in den Mitschnitt, die eine bestimmte Bedingung erfüllen, halten also die Grundmenge an Daten klein.



Die "Display Filter" schränken dagegen ein, was Sie im Hauptbildschirm zu sehen bekommen. Damit ändern Sie also Ihre Sicht auf den Mittschnitt.


Klicken Sie in den "Capture Options" auf den Knopf "Capture Filter", erhalten Sie eine Liste vordefinierter häufig gebrauchter Optionen. Klicken Sie einen davon an, erscheint im Feld "Filter String" die Regel in Textform. Damit erschließt sich recht schnell das Prinzip. Möchten Sie beispielsweise nur den Datenverkehr zwischen Browser und Webserver erhalten, der über den Port 80 abläuft, lautet die Regel einfach "port 80".



Der "Display Filter" wird über den Filter-Knopf in der Hauptansicht des Programms gesteuert. Das Konzept der vordefinierten Filter ist hier gleich, lediglich werden die Regeln in leicht abweichender Syntax definiert. Nach der Auswahl eines Filters müssen Sie den Knopf "Anwenden" anklicken und bekommen den Mitschnitt entsprechend eingeschränkt zu sehen. Mit dem Button "Leeren" erscheint dann wieder der gesamte Bestand an Paketen.



Unterhaltungen verfolgen


Eine komplette Kommunikation per TCP, etwa zwischen einem Mail-Client und dem Server kann in ihrer Gesamtheit nur schwer nachvollzogen werden. Denn die paketweise vorliegenden Fragmente dieser Kommunikation werden ja auch von anderen Paketen abgewechselt, die damit nichts zu tun haben. So entsteht ein scheinbar unzusammenhängender Wirrwar aus Fragmenten verschiedener Unterhaltungen.



Da ist die Funktion "Follow TCP Stream" sehr praktisch, die man durch einen Rechtsklick auf eine Zeile im oberen Fensterteil auswählen kann. Die definiert einen Anzeigefilter, der die Darstellung auf die Pakete des jeweiligen Datenaustausches beschränkt. Mit allen Protokollen, die Ethereal beherrscht, geht sogar zusätzlich noch ein neues Fenster auf, das die Kommunikation im Klartext zeigt, also etwa Anfragen des Mail-Client und die jeweiligen Antworten des Servers. Auch hier wieder zeigt farbige Unterlegung an, von wem die Nachrichten stammen



Typische Diagnosen


Wenn von einer bestimmten Arbeitsstation aus der Seitenaufbau zu einer Website immer zu Beginn stockt, schneiden Sie mit Ethereal nicht nur die Browser-Kommunikation via Port 80, sondern den gesamten Datenverkehr mit. Denn sie könnten dabei vielleicht feststellen, dass dieser PC zuerst eine DNS-Abfrage an eine IP macht, die es in Ihrem Netzwerk gar nicht mehr gibt. Erst nach einem Timeout von ein paar Sekunden fragt er den zweiten eingetragenen DNS-Server ab, der sich meldet. Weil die Namensabfrage immer nur beim ersten Besuch einer Website passiert, kommt es beim weiteren Browsen zu keinen Verzögerungen mehr.



Wenn die gesamte Kommunikation innerhalb des Netzwerks sehr zäh abläuft, kann Ethereal vielleicht eine Arbeitsstation dingfest machen, deren defekte Netzwerkkarte x-mal in der Sekunde sinnlose Rundrufe ins Hausnetz ballert und so die Leitungen dichtmacht.



Läuft eine bestimmte Kommunikation zwischen zwei Stationen im Netz sehr langsam ab, wie etwa der Dateizugriff, dann macht es Sinn, zuerst nachzusehen, was nach der Dienstanfrage der einen Station passiert. Vielleicht spricht Sie mit der falschen Gegenstelle oder probiert zuerst eine Variante aus, auf die der Server nicht antworten kann. Liegt ein solches Problem nicht vor, legen Sie die Filterbedingung so fest, dass nur Datenpakete des gewünshcten Dienstes angezeigt werden. Dann verfolgen Sie anhand des Zeitstempels, den Ethereal liefert, wo die Zeit verlorenen geht.



Markieren Sie dazu das erste Datenpaket, klicken rechts und wählen "Time Reference" aus. Nun enthält die Spalte "Time" der anderen Pakete jeweils die zeitliche Differenz zum ersten Paket. Das hilft Ihnen bei der Untersuchung, ob der Server so lange benötigt , um zu antworten oder das Problem eher in der Verarbeitung der Daten auf dem Client liegt.n



Gefährliche Kommunikation


Vorsicht ist immer dann geboten, wenn Sie in Ethereal eine Kommunikation verfolgen, die unbekannte Ports verwendet. Denn das könnte bedeuten, dass Sie gerade den Datenverkehr von Malware, wie einem Keylogger oder einer Backdoor betrachten.



Ein Hinweis auf die Gefährlichkeit dieser Aktivität kann die Identität der Gegenstelle sein. Um die zu überprüfen, gehen Sie zum Beispiel zum "Domain Dossier" von Centralops.net , geben dort die IP-Adresse ein und lassen sich die den "network whois record" mit ausgeben. Dabei wird angezeigt, wer die IP-Adresse für sich registriert hat. Im harmlosen Fall kommt dabei eine bekannte Firma heraus und man kann die Kommunikation mit einer installierten Software in Verbindung bringen.


Stammt die Adresse dagegen aus einer obskuren Quelle im fernen Ausland, haben Sie wahrscheinlich irgendwo einen blinden Passsagier auf dem betroffenen PC.



Allerdings kann auch Peer-to-Peer-Software wie Filesharing oder sogar Skype für solche Effekte verantwortlich sein. Denn diese Programme bilden wegen ihrem Funktionsprinzip spontane Netwerke mit scheinbar zufälligen Gegenstellen auf. Deaktivieren Sie also auf dem jeweiligen System solche Software und führen den Test nochmals durch.








Bedingungen für die Kommentareingabe
Hinweis

Ihr Kommentar:


Name: E-Mail:
Name und E-Mail in einem Cookie auf Ihrer Festplatte speichern

Copyright © schraudolph.de 1999-2010   | powered by Tippscout 4.0
Zurück Home