Updated on August 30, 2016
Cisco IOS Netzwerkverkehr mitschneiden
Bei meinem ersten Eintrag in der Kategorie Cisco IOS soll es sich um das Thema Traffic Capture / Netzwerkverkehr mitschneiden auf Cisco IOS Routern drehen. Bei den Routern ist das Ganze leider nicht so intuitiv wie auf ASA Firewalls, jedoch durchaus machbar. Ich versuche hier genau zu erklären, was die einzelnen Kommandos machen. Weiter unten findet ihr die gesamten Kommandos gebündelt.
Inhaltsverzeichnis
Interessanter Traffic
zunächst wird eine Access-Liste erstellt, die den aufzuzeichnenden Traffic beschreibt. Wichtig ist, dass der Hin- und Rückweg beschrieben wird. In meinem Beispiel will ich sämtlichen Traffic aufzeichnen, der vom oder zum Host mit der IP 192.168.10.22 geht.
Die Nummer der Access-Liste sollte natürlich in eurer Konfiguration noch unbenutzt sein.
conf t access-list 144 permit ip host 192.168.10.22 any access-list 144 permit ip any host 192.168.10.22 exit
Erstellen eines Capture Buffer
Nun wird ein Capture Buffer erstellt, der unsere mitgeschnittenen Pakete speichern wird. Im Beispiel heißt er C-BUFFER. Der Name spielt jedoch keine Rolle. Anschließend wird er mit der oben erstellten Access-Liste verknüpft. Im Beispiel werden maximal 2 MB Daten im Buffer gehalten. Aktuelle Router können bis zu 10MB speichern. Mittels dem Kommando max-size wird die Paketgröße festgelegt. Das linear steht für einen linearen Buffer. Mittels circular könnte man den Buffer auch überschreiben, wenn er voll läuft.
monitor capture buffer C-BUFFER size 2048 max-size 1518 linear monitor capture buffer C-BUFFER filter access-list 144
Erstellen eines Capture Point
Nun muss noch ein Capture Point erstellt und mit dem oben erstellten Buffer verknüpft werden. Wir wollen den Traffic in beiden Richtungen mitschneiden, deswegen das Keyword both. Hier gibt es noch einen kleinen Fallstrick: Beim Erstellen des Capture Points muss zwischen cef (Cisco Express Forwarding) und process-switched Paketen unterschieden werden. Jedes Paket, das den Router durchläuft und nicht fragmentiert wird, wird heutzutage normalerweise mittels cef geroutet. Dazu solltet ihr bereits das Kommando “ip cef” in eurer Konfiguration haben. Process-switched sind nur noch die Pakete, die direkt an den Router gesendet werden. Im Zweifel einfach ausprobieren, das Kommando für process-switched habe ich auskommentiert drin.
monitor capture point ip cef C-POINT all both !monitor capture point ip process-switched C-POINT both monitor capture point associate C-POINT C-BUFFER
Starten des Captures
mittels nachfolgendem Kommando wird der Traffic Capture gestartet. Anschließend kann der aufzunehmende Traffic produziert werden.
monitor capture point start C-POINT
Stoppen des Captures
Wenn der Traffic “im Kasten” ist, muss der Capture wieder gestoppt werden. Anschließend werden die Daten im pcap Format via tftp exportiert, sodass sie zur Analyse mit z.B. Wireshark geöffnet werden können.
monitor capture point stop C-POINT monitor capture buffer C-BUFFER export tftp://1.2.3.4/filename.pcap
Aufräumen
Der Traffic ist im Kasten und exportiert. Zeit, die Konfiguration wieder aufzuräumen:
!no monitor capture point ip process-switched C-POINT both no monitor capture point ip cef C-POINT all both no monitor capture buffer C-BUFFER conf t no access-list 144 exit
Die gesamte Konfiguration
Für alle, die das Prinzip schon kennen und nur “schnell” die Kommandos brauchen:
conf t access-list 144 permit ip host 192.168.10.22 any access-list 144 permit ip any host 192.168.10.22 exit monitor capture buffer C-BUFFER size 2048 max-size 1518 linear monitor capture buffer C-BUFFER filter access-list 144 monitor capture point ip cef C-POINT all both !monitor capture point ip process-switched C-POINT both monitor capture point associate C-POINT C-BUFFER monitor capture point start C-POINT !--- ! Traffic produzieren !--- monitor capture point stop C-POINT monitor capture buffer C-BUFFER export tftp://1.2.3.4/filename.pcap !---- !no monitor capture point ip process-switched C-POINT both no monitor capture point ip cef C-POINT all both no monitor capture buffer C-BUFFER conf t no access-list 144 exit