Aus der Konserve

Netzadministratoren können ihre Augen nicht überall haben. Vorgänge im Netz lassen sich jedoch leicht protokollieren – und mit tcpreplay bei Bedarf sogar wiederholen.

vorlesen Druckansicht
Lesezeit: 4 Min.
Von
  • Michael Riepe
Inhaltsverzeichnis

Das Netz ist ein Dschungel, in dem allerlei unfreundliches Getier lauert. Zwar halten Zäune und Stacheldraht viele Angriffe ab. Sie sind jedoch nicht unüberwindlich. Außerdem ist völliges Abschotten nur selten praktikabel.

Wer etwa Dienste öffentlich anbietet, muss eine Tür für die Besucher offen lassen – und sie gut bewachen. Nicht allein, damit er auf gezielte Angriffe und Vandalismus schnell reagieren kann: Wer effektive Gegenmaßnahmen installieren will, muss die Taktik des Angreifers studieren, am besten anhand einer Aufzeichnung. Sie lässt sich später außerdem als Prüfwerkzeug für die verbesserten Sicherheitsvorkehrungen verwenden.

Aufzeichnungen lassen sich zum Beispiel mit tcpdump herstellen. Übergibt man dem Programm beim Start die Option –w <dateiname>, schreibt es die empfangenen Pakete in die angegebene Datei. Deren Inhalt lässt sich anschließend mit tcpdump –r <dateiname> auf der Konsole ausgeben.

Allerdings speichert tcpdump normalerweise nur den Anfang jedes Pakets – gewöhnlich die ersten 68 oder 96 Byte. Für die Analyse von Angriffen, die zum Beispiel auf Pufferüberläufen basieren, benötigt man jedoch in der Regel auch die übertragenen Nutzdaten. Es empfiehlt sich daher, mit der Option –s 65535 die Menge der zu speichernden Daten auf den Maximalwert zu setzen.

Wer eine Daueraufzeichnung anfertigen will, sollte bedenken, dass Plattenplatz nicht unendlich ist. tcpdump trägt dem mit der Option –C <mb> Rechnung: Hat die Aufzeichnungsdatei die angegebene Größe (in Millionen Byte) erreicht, legt das Programm eine neue an. Nicht mehr benötigte Dateien kann man löschen. Allerdings überschreibt tcpdump nach einem Neustart vorhandene Dateien gleichen Namens. Wer das vermeiden will, sollte Datum und Uhrzeit als Teil des Namens verwenden, etwa mit tcpdump –w tcpdump-`date +%Y%m%d-%H%M%S`.log.

Für Momentaufnahmen eignet sich das Programm pcapture. Es liest alle Pakete mit, gibt sie jedoch nicht aus. Bricht man es mit einem der Signale HUP, INT oder TERM ab – etwa durch Drücken der Tastenkombination Strg+C –, speichert es die letzten 500 in die mit –w angegebene Datei. Mit der Option –c <pakete> lässt sich ein größerer oder kleinerer Wert einstellen. Wie bei tcpdump kann man mit –i <name> eine Netzschnittstelle wählen oder einen Filterausdruck als Argument übergeben.

Wer mit der Kommandozeile auf dem Kriegsfuß steht, kann zum Aufnehmen auch wireshark (vormals ethereal) verwenden [1]. Allerdings eignen sich die textbasierten Werkzeuge besser zum Überwachen entfernter Rechner als der grafische „Kabelhai“.

Mit tcpdump, pcapture oder wireshark erzeugte Dateien lassen sich mit tcpslice nachbearbeiten. tcpslice <datei1> <datei2> hängt die Eingabedateien hintereinander und schreibt das Ergebnis auf die Standardausgabe oder in eine mit –w <datei> angegebene Datei. Ruft man tcpslice <von> <bis> <datei> auf, kopiert es ausschließlich Pakete, deren Zeitstempel zwischen den angegebenen Werten liegen. Zeitangaben dürfen absolut – in Sekunden seit dem 1. 1. 1970 – oder relativ zum Dateianfang beziehungsweise zur Startzeit sein: tcpslice +0 +60 <datei> etwa kopiert die erste Minute der angegebenen Datei.

Aufzeichnungen lassen sich mit tcpreplay wieder ins Netz einspeisen – in der Voreinstellung unverändert und mit derselben Geschwindigkeit wie bei der Aufnahme. Falls nötig, lassen sich jedoch eine Reihe von Parametern ändern, darunter die MAC- und IP-Adressen sowie die TCP- und UDP-Portnummern von Sender und Empfänger. Dabei korrigiert tcpreplay auch die Prüfsummen der IP-Pakete. Wer eine Datei nur bearbeiten, aber nicht senden will, kann dafür das Programm tcprewrite verwenden, das mit zum Paket gehört.

Das Sendetempo lässt sich mit –x <faktor> oder gegenüber der Aufnahme um einen bestimmten Faktor erhöhen oder senken. Man kann jedoch auch mit –p <pakete> oder –M <mbps> ein bestimmtes Tempo in Paketen oder MBit pro Sekunde vorgeben. Mit der Option –t sendet tcpreplay so schnell es die Hardware zulässt. So lassen sich zum Beispiel DoS-Angriffe simulieren oder Lasttests an Routern und Switches durchführen. Die Option –o hingegen schaltet das Programm auf Superzeitlupe: Drückt man eine Taste, sendet tcpreplay ein einzelnes Paket. Ähnlich wie mit einem Debugger kann der Admin den Ablauf der Ereignisse Schritt für Schritt verfolgen.

[1] Thomas Kaufmann; Netzwerk-Diagnose; Auf Päckchenfang; Paketanalyse mit Ethereal; iX 5/2005, S. 153

iX-Link (mr)