Emulatoren

By Helge

Cisco Emulator


Router und PIX Emulatoren

Im August wurde das Projekt Router Emulator auf der Seite Cisco 7200 Simulator gestartet. Seit dem Start hat sich in diesem Projekt viel getan, so ist es nicht nur bei einer CLI geblieben und einem 7200 Router.

Wer immer auf dem aktuellen Stand sein möchte sollte zwischen durch mal den Blog “Blog - Dynamips” besuchen.

Damit man das ganze besser händeln ist, wurden zwei weitere Projekt gestartet.

Bei diesen Projekten habe ich nur das Gefühl, das dort nicht weiter entwickelt wird. Trotzdem sollten diese nicht unerwähnt bleiben:

Das aktuellste Projekt was z.Z. auf dem Markt ist, ist GNS3. Dieses Projekt basiert im aktuellen Release auf der aktuellsten Dynamips Version.

Der Vorteil ist, das alles über eine grafische Oberfläche einzurichten gilt.

Das ganze läuft sowohl unter Linux, Windows als auch unter MAC. Das was man noch benötigt sind die jeweiligen IOS Releases für die Router und ein wenig CPU und Speicher auf dem Rechner. Ich habe zur Zeit bis zu 5 Router (2651XM) mit VPN Lösungen auf einem Dell D610 mit 1,6Ghz CPU und 1GB RAM laufen. Dann war die CPU so bei 100% und da noch einiges andere läuft war es das gewesen.Aber für ein kleines Labor reicht es alle mal aus.

Wer will kann auch noch die gute alte PIX im GNS3 ins Spiel bringen. Dieser Emulator basiert auf einer ursprünglichen “QEMU und einem aktuellen Release für die PIX” Lösung. Habe mir selber den damals auf der CLI zusammen gebastelt und nu ist dieses ebenfalls über die GUI möglich.

Was man des weiteren braucht ist eine Serien Nummer und den dazu gehörigen Activation Key von einer vorhanden PIX.

Hier noch mal eine Liste welche Hardware im GNS3 im aktuellen Relase v0.5 unterstützt werden:

  • Router
  • c1700 Serie
  • c2600 Serie
  • c2691 Serie
  • c3600 Serie
  • c3700 Serie
  • c7200 Serie
  • PIX Family

Was noch sehr schön ist, das man im GNS3 auch Daten zwischen den Routern aufzeichnen kann und sich diese dann im Ethereal/Wireshark genauer betrachten kann.


Anleitung zum betreiben eines ASA Emulators unter Linux (Fedora 10)

Hier nun die überarbeitete Version des ASA Emulators. Ich habe diesen nun auf einem Linux Fedora 10 laufen, sollte aber auch auf anderen Linux Distributionen laufen. Um das ganze zum laufen zu bekommen, habe ich mich verschiedenen Foren bedient. Am Anfang hatte ich immer die Probleme das beim starten, die ASA mit einem Exception Error gestorben ist. Zwischendurch hat war es dann der Kernel, der nicht starten wollte usw. Das einzige Problem was nun noch existiert ist, das zwar ein FLASH habe. Diese aber wird mit einer grösse von 0 Byte nach dem Start der ASA angezeigt. Ich hoffe ich finde das Problem auch noch, dann werde ich diese Anleitung wieder ergänzen.

Was für den Emulator benötigt wird

RPM Pakete: qemu, bridge-utils, tunctl
ASA Image: asa802-k8.bin

Installation der ASA

  • 1. Einen Hexdump von dem original Image der ASA erzeugen.
    hexdump -C asa802-k8.bin > asa802-k8.hd
  • 2. Such nach dem Anfang dem folgenden String, wofür dieser steht konnte ich nicht in Erfahrung bringen.
    grep “1f 8b 08 00 1d” asa802-k8.hd
    Diese Information passt bei der Version 8.0(2). Bei der Version 8.0(3) passt dieser schon nicht mehr. Hoffe das ich da auch noch eine Quelle finde….
    Ausgabe: 001228b0 1f 8b 08 00 1d 3d 73 46 00 03 ec 3a 6d 54 14 57 |…..=sF…:mT.W|
  • 3. Verifizieren der Größe vom Original File!!! Diese Info wird für den nächsten Schritt benötigt, da wir nun die Ausgabe ab dem in Schritt 2 gefunden Offset bis Ende vorbereiten.
    ls -la asa802-k8.bin
    Ausgabe: -rwxr-xr-x 1 root root 14524416 2008-08-06 00:42 asa802-k8.bin
  • 4. Durch den nachfolgenden Befehl, wird ermittelt wieviel Byte aus dem Original Image in die neue Datei ausgelesen werden müssen. perl -e ‘$x=14524416-0x1228b0;print “$xn”’
    Ausgabe: 13334352
  • 5. Auslesen von 13,334,352 Bytes aus dem Original Image “asa802-k8.bin”. Diese Daten in eine neue komprimierte Datei schreiben z.B. “asa802-k8.gz”.
    tail -c 13334352 asa802-k8.bin > asa802-k8.gz
  • 6. Nun das neu erzeugte ZIP-File entpacken, dadurch erhält man ein weiteres BIN-File. Diese wird dann endgültig im Schritt 7 entpackt.
    gzip -d asa802-k8
  • 7. Entpacken des BIN Files, sodas man die komplette Verzeichnis Struktur und alle Dateien hat. Wichtig: Der Parameter —no-absolute-filenames sollte auf alle Fälle gesetzt sein. Ansonsten wird das File im Original Linux Verzeichnis entpackt. Habe ich leidvoll erfahren dürfen, zum Glück werden dabei keine Datei überschrieben, da die aus dem Image Älter sind, als die installierten. Hat aber trotzdem Zeit gekostet die ganzen Datei die zusätzlich aus dem Image kommen, wieder aus meinem Linux System zu löschen.
    cpio -i —make-directories —no-absolute-filenames
    Ausgabe: cpio: Removing leading `/’ from member names 61039 blocks
  • 8. Nun noch ein Flash erzeugen, was später als Flash im Emulator dienen soll. Hier lieht noch mein Problem, das er dieses bei starten der ASA zwar erkennt, aber mir eine Größe von 0 Byte zurück liefert. Auch wenn ich das Flash in anderen Grössen erzeuge, wird es nicht sauber erkannt. Wer hier eine Lösung findet, kann mir gerne ein paar Tipps senden 🙂
    qemu-img create FLASH 256M

Als nächstes muss nochmals der Startprozess der ASA geändert werden, da noch das Flash eingerichtet werden muss. Des weiteren müssen noch die Interface aktiviert werden. Damit man auch mit dem Emulator andere Devices erreichen kann z.B. Router im GNS3 oder auch das CANAC System.

  • 9. Erstmal ein Backup des Original rcS Files anlegen. Dieses werden wir dann im nächsten Schritt ein wenig erweitern.
    mv etc/init.d/rcS etc/init.d/rcS.bak
  • 10. Auslesen der Original Datei und dann die Zeile “lina_monitor” aus dem Startprozess entfernen. Mit dieser Binary wird normalerweise der Prozess der ASA gestartet.
    sed -e ‘s/# l//bin/sh # l/’ etc/init.d/rcS.bak > etc/init.d/rcS
  • 11. Nun nochmal die rcS öffnen, um die Interface der ASA bekannt zumachen. vi etc/init.d/rcS Nun noch die folgenden Zeilen am Ende der Datei einfügen.
    modprobe e100
    ifconfig eth0 up
    ifconfig eth1 up
    ifconfig eth2 up
    ifconfig eth3 up
  • 12. Nun nochmals die Berechtigung der Datei mit dem folgenden Befehl setzen.
    chmod 755 etc/init.d/rcS
  • 13. Bevor das überarbeitet Image zu erzeugen ist, folgenden Dateien löschen.
    asa-k8.bin
    asa-k8.hd
    asa-k8

    Falls dieses vergessen wird, wird der Emulator mit einer Kernel Fehlermeldung abstürzen.
  • 14. Um nun das neue Image zu erzeugen muss folgende Zeile eingegeben werden, danach lässt es sich wie im Schritt 15 beschrieben starten.
    find . | cpio -o -H newc | gzip -9 > asa802.gz
  • 15. Mit dem folgenden Befehl lässt sich nun der Emulator starten, erstmal noch ohne Interface. Da noch einige Anpassungen zu machen sind.
    qemu -hda FLASH -kernel vmlinuz -hdachs 980,16,32 -initrd asa802.gz -m 512 —no-kqemu -nographic -append “console=ttyS0,9600n8 hda=980,16,32 bigphysarea=16384 auto nousb ide1=noprobe”
  • 16. Nun erstmal das Flash für die ASA endgültig einrichten (wie schon geschrieben, dann sollte es gehen). Durch das ändern der rcS, startet die ASA nur noch bis zur Shell, so hat man den vollen Zugriff auf das Betriebssystem.

    • 1. fdisk /dev/hda
    • 2. n
    • 3. p
    • 3. 1
    • 4. Start Cylinder: 5
    • 5. End Cylinder: 979
    • 6. t
    • 7. 4
    • 8. w
    • 9. mkdosfs -F 16 /dev/hda1
    • 10. 10. mount -o umask=0000,noatime,check=s,shortname=mixed /dev/hda1 /mnt/disk0


    Wenn dieses soweit funktioniert, dann den Prozess durch CTRL-a x oder kill -9 “Process-ID” beenden und nochmals die rcS anpassen.

  • 17. Nun die rcS so ändern, das die ASA komplett starten kann. Öffnen der rcS erneut z.B. mit dem vi und dann folgenden Zeile am Ende der Datei einfügen.
    /asa/bin/lina_monitor
  • 18. Nun noch ein paar Interface auf dem Linux System einrichten, über die man später dann auf die ASA zugreifen kann.
    tunctl -t tap1 -u “user” oder tunctl
    Durch den zweiten Befehl werden dann die Interface mit dem Nummern 0,1,2…. usw. angelegt, abhängig davon wie oft man diesen Befehl absetzt. Diese Interface werden dann aber mit dem Owner/Group “root” angelegt.
  • 19. Jetzt kann man den Emulator mit dem folgenden Aufruf starten….
    qemu -hda FLASH -kernel vmlinuz -hdachs 980,16,32 -initrd asa802.gz -m 512 —no-kqemu -nographic -append “console=ttyS0,9600n8 hda=980,16,32 bigphysarea=16384 auto nousb ide1=noprobe” -net nic,model=i82559er,macaddr=00:aa:00:00:03:01,vlan=0 -net tap,vlan=0,ifname=tap1,script=no -net nic,model=i82559er,macaddr=00:aa:00:00:04:01,vlan=1 -net tap,vlan=1,ifname=tap2,script=no -net nic,model=i82559er,macaddr=00:aa:00:00:05:01,vlan=2 -net tap,vlan=2,ifname=tap3,script=no -net nic,model=i82559er,macaddr=00:aa:00:00:06:01,vlan=3 -net tap,vlan=3,ifname=tap4,script=no

Somit ist der Emulator nu fertig. Jetzt geht dann mal an das einrichten der ASA. Werde als nächstes mich damit beschäftigen, wie ich nu die Router aus dem GNS3 mit dem ASA Emulator oder mit einer VMWare verbinden kann. Diese Lösung werde ich dann hier ebenfalls für alle anderen begeisterten Bastlern veröffentlichen. Falls jemand Verbesserungen oder noch weitere Informationen hat, kann er mir diese gerne senden. Werde diese gerne aufnehmen…

Referenzen

NetEmu - ASA Emulator
Hacki Forum - ASA Emulator
ASA Project


CANAC Appliance Emulator

Wer sich mehr mit den NAC Lösung von Cisco beschäftigen möchte, kann sich dieses jetzt mit relative wenig Aufwand in einer VMWare implementieren.
Was man dazu benötigt ist eine VMWare Software (Server oder Workstation) und die NAC Software für die Appliance. Des weiteren dann die richtigen Lizenzen, was das Hauptproblem dieser Lösung vielleicht sein kann.
Trotzdem wollte ich hier mal die Anleitung für die Installation aufzeigen:

Installation:

1. Von der Cisco Homepage das File: cca-4.1_2_1-K9.iso ziehen. Geht nur mit einem gültigen CCO Account.

2. In der VMWare lassen sich sowohl CAS und CAM einrichten. Der Unterschied in der Installation liegt am Anfang, wo man im Menü festlegt um welche Appliance es sich handelt.
Als erstes sollte man erst den Manager CAM installieren und dann den Server die CAS.

3. Unter VMWare folgende Umgebung für CAM und CAS anlegen

  • Linux: Red Hat Linux
  • Ein Prozessor, wenn man hat gehen auch zwei
  • min. 384 RAM oder höher
  • 20GB IDE HD (IDE0:0)
  • CDROM auf IDE0:1 legen
  • Für eine HA Lösung, vor der Installation noch eine zweite Netzwerkkarte in der Umgebung
    einbringen

4. Zwei Möglichkeiten das ISO File zu starten.

  • 3.1 Das ISO File auf CD brennen und im CDROM einlegen und die VMWare starten und von CD booten
  • 3.2 Das ISO File als File in das CDROM Device unter VMWare einbinden und dann von CD starten
  • 5. Nach der Installation die Lizense einbinden. Diese muss man sich über Cisco beziehen. Das Problem ist das die Lizenze auf die MAC Adresse gebunden wird.

    6. Falls man für die Lizense die MAC Adresse anpassen müsste. Kann man dieses direkt in dem Linux System der NAC Appliance händeln. Dafür startet man die NAC Appliance in der VMWARE und meldet sich auf der Console der Appliance an. Anschließend dann in das Verzeichnis “/etc/sysconfig/network-scripts”.

    Nun die Datei “ifup-eth0” mit dem “vi” öffnen und die Zeile “HWADDR = xx:xx:xx:xx:xx:xx” hinzufügen. Danach erneut die Appliance neu starten und dann mit dem nächsten Punkt weiter machen.

    vi ifcfg-eth0

    i

    HWADDR = ……

    <ESC>

    :wq

    7. Wenn man alles hat, dann die Appliance starten und dann per Browser das Web Interface aufrufen. Zur Anmeldung dann admin:cisco123 verwenden.
    Hier lässt sich dann das Lizense File in der Appliance aktivieren.

    Quelle:Cisco NAC Appliance in VMWARE