Zum Inhalt springen

AB 07 — Netzwerksicherheit — Lab-Anleitungen

Mein Fortschritt0/5 (0 %)

Alle Labs sind so aufgebaut, dass sie eigenständig in Cisco Packet Tracer (Version 8.x oder neuer) bearbeitet werden können. Die Topologien sind so gewählt, dass sie auch ohne fertige PT-Datei in 5–10 Minuten nachgebaut werden können – die nötigen IP-Pläne sind angegeben.

Konventionen in den Anleitungen

  • Befehle in Konsolen-Schrift sind exakt so einzugeben (Großschreibung beachten).

  • Platzhalter wie <NAME> müssen durch eigene Werte ersetzt werden.

  • ’#’ kennzeichnet den Privileged-Exec-Modus, ‘(config)#’ den globalen Konfigurationsmodus.

  • Alle Konfigurationen am Ende mit ‘copy running-config startup-config’ (oder ‘wr’) sichern.

  • Packet Tracer öffnen und vorbereitete .pkt-Datei laden (oder Topologie nachbauen).

  • Geräte mit Default-Konfiguration starten lassen, bis alle LEDs grün sind.

  • Aufgabenstellung lesen, Ziele klären.

  • Lösung systematisch in der Reihenfolge der Schritte umsetzen.

  • Nach jedem Schritt verifizieren (mit ‘show’-Befehlen).

  • Abschließend dokumentieren, was getan wurde und welcher Effekt eingetreten ist.

  • Port Security auf einem Cisco-Switch korrekt aktivieren

  • Verschiedene Violation-Modi unterscheiden und ihre Wirkung kennen

  • Sticky-MAC-Learning anwenden

  • Eine Port-Violation erkennen, analysieren und beheben

Drei PCs sind über einen 2960-Switch verbunden. Zusätzlich existiert ein ‘Angreifer-PC’, der später eingesteckt wird, um die Schutzmaßnahmen zu testen.

GerätInterfaceIP-AdresseSubnetzmaske
PC1Switch Fa0/1192.168.10.10255.255.255.0
PC2Switch Fa0/2192.168.10.11255.255.255.0
PC3Switch Fa0/3192.168.10.12255.255.255.0
Angreifer-PCzunächst nicht angeschlossen192.168.10.99255.255.255.0
  • Schließe alle PCs (außer Angreifer) an und prüfe die Konnektivität mit Ping.

  • Konfiguriere Fa0/1, Fa0/2 und Fa0/3 als Access-Ports.

  • Aktiviere Port Security mit maximal einer erlaubten MAC-Adresse pro Port.

  • Verwende ‘sticky learning’, damit die jeweils erste gelernte MAC dauerhaft gespeichert wird.

  • Setze die Violation-Action auf ‘shutdown’.

  • Teste den Schutz: Ziehe das Kabel von PC1 ab und stecke stattdessen den Angreifer-PC an Fa0/1 an. Beobachte die Reaktion.

  • Reaktiviere den Port nach der Violation manuell.

Auf PC1 in der Eingabeaufforderung:

ping 192.168.10.11

ping 192.168.10.12

Beide Pings müssen erfolgreich sein.

Switch> enable

Switch# configure terminal

Switch(config)# hostname SW1

SW1(config)#

Mit Range-Befehl mehrere Ports gleichzeitig konfigurieren:

SW1(config)# interface range fa0/1 - 3

SW1(config-if-range)# switchport mode access

SW1(config-if-range)# switchport access vlan 10

Hinweis: VLAN 10 muss vorab existieren oder wird automatisch angelegt.

SW1(config-if-range)# switchport port-security

SW1(config-if-range)# switchport port-security maximum 1

SW1(config-if-range)# switchport port-security mac-address sticky

SW1(config-if-range)# switchport port-security violation shutdown

SW1(config-if-range)# exit

SW1# show port-security

SW1# show port-security interface fa0/1

SW1# show running-config | begin interface FastEthernet0/1

Die Ausgabe von ‘show port-security interface fa0/1’ sollte zeigen:

Port Security : Enabled

Port Status : Secure-up

Violation Mode : Shutdown

Maximum MAC Addresses : 1

Sticky MAC Addresses : 1

Last Source Address:Vlan : 0001.AAAA.BBBB:10

Auf PC1 einmal pingen, damit die MAC gelernt wird. Anschließend in Packet Tracer das Kabel von PC1 entfernen und den Angreifer-PC an denselben Port (Fa0/1) anschließen. Vom Angreifer-PC aus pingen.

Das erste Paket des Angreifers verletzt die Port-Security-Regel. Der Switch deaktiviert den Port (err-disabled). Verifizieren mit:

SW1# show port-security interface fa0/1

Erwartete Ausgabe:

Port Status : Secure-shutdown

Violation Mode : Shutdown

Last Source Address:Vlan : 0001.CCCC.DDDD:10

Security Violation Count : 1

Erst den korrekten PC wieder anschließen. Dann manuell zurücksetzen:

SW1(config)# interface fa0/1

SW1(config-if)# shutdown

SW1(config-if)# no shutdown

SW1(config-if)# exit

Tipp: Auf produktiven Switches kann mit ‘errdisable recovery cause psecure-violation’ und ‘errdisable recovery interval 300’ eine automatische Reaktivierung nach 5 Minuten konfiguriert werden.

  • Was wäre der Vorteil und was der Nachteil des Violation-Modus ‘restrict’ gegenüber ‘shutdown’?
‘restrict’ verwirft die Pakete der unbekannten MAC und sendet einen SNMP-Trap, lässt aber den Port aktiv – legitime Nutzer werden nicht gestört. Nachteil: Der Angreifer bleibt verbunden und kann weiter scannen oder reconnecten. ‘shutdown’ ist sicherer, erzeugt aber Aufwand bei legitimen Wechseln.
  • Warum ist ‘sticky’ praxistauglicher als ‘static’?
Bei ‘static’ müsste die MAC manuell hinterlegt werden. ‘Sticky’ lernt sie automatisch beim ersten Frame und speichert sie in der running-config (mit ‘wr’ auch persistent). Das ist deutlich pflegeärmer.
  • Welcher Angriff aus Block 1 wird durch Port Security konkret erschwert?
Vor allem MAC-Flooding (Ausfüllen der MAC-Adress-Tabelle des Switches, um ihn zum Hub zu degradieren) und das Anstecken nicht autorisierter Geräte. Indirekt erschwert es auch ARP- und DHCP-Spoofing-Vorbereitungen.
  • Unterschied zwischen Standard- und Extended-ACLs verstehen

  • ACLs korrekt erstellen und an die richtige Stelle / Richtung binden

  • Wirkung mit gezielten Tests überprüfen

  • Implizites ‘deny any’ am Ende jeder ACL berücksichtigen

Drei Subnetze sind über einen Router (R1, z. B. 2911) miteinander verbunden. Jedes Subnetz repräsentiert einen Bereich des Unternehmens.

SubnetzNetzadresseRouter-InterfaceVLANBeispiel-PC
Mitarbeiter192.168.10.0/24G0/0 = .110PC-MA: .10
Gäste192.168.20.0/24G0/1 = .120PC-Gast: .10
Server192.168.30.0/24G0/2 = .130Server: .10
Admin (optional)192.168.99.0/24G0/3 = .199PC-Admin: .10

Auf dem Server läuft ein Webserver (HTTP, Port 80) und SSH (Port 22) ist auf dem Router aktiv.

Aufgabe A – Standard-ACL

Gäste (192.168.20.0/24) dürfen NICHT auf das Server-Netz (192.168.30.0/24) zugreifen, alle anderen Verbindungen aus dem Gäste-Netz sind erlaubt.

Aufgabe B – Extended-ACL für Telnet

Telnet (TCP 23) soll vom Server-Netz aus überallhin geblockt werden, auch innerhalb des Unternehmens. Andere Protokolle vom Server-Netz aus bleiben erlaubt.

Aufgabe C – Extended-ACL für Management

SSH zum Router-Interface darf ausschließlich aus dem Admin-Netz (192.168.99.0/24) erfolgen. Alle anderen SSH-Versuche werden blockiert.

Schritt-für-Schritt-Lösung

Aufgabe A – Standard-ACL gegen Gäste-Zugriff aufs Server-Netz

Abschnitt betitelt „Aufgabe A – Standard-ACL gegen Gäste-Zugriff aufs Server-Netz“

Standard-ACLs filtern nur nach Quell-IP. Sie sollten möglichst nahe am Ziel platziert werden, damit der Datenverkehr nicht unnötig im Netz umherläuft – ABER bei Standard-ACLs gilt die Empfehlung: nahe am ZIEL platzieren, weil sie sonst zu viel blocken könnten.

Konfiguration auf R1:

R1(config)# access-list 10 deny 192.168.20.0 0.0.0.255

R1(config)# access-list 10 permit any

R1(config)# interface g0/2

R1(config-if)# ip access-group 10 out

R1(config-if)# exit

Erläuterung: Die Wildcard-Maske 0.0.0.255 bedeutet ‘alle Hosts in diesem /24’. ‘permit any’ ist nötig, weil eine ACL implizit mit ‘deny any’ endet. Die ACL wird OUTBOUND auf G0/2 angewendet, also auf dem Weg vom Router ins Server-Netz.

Test (vom PC-Gast):

ping 192.168.30.10 ! sollte fehlschlagen

ping 192.168.10.10 ! sollte funktionieren

Aufgabe B – Extended-ACL: Telnet aus Server-Netz blocken

Abschnitt betitelt „Aufgabe B – Extended-ACL: Telnet aus Server-Netz blocken“

Extended-ACLs filtern nach Quell-/Ziel-IP, Protokoll und Port. Empfehlung: nahe an der QUELLE platzieren, um unnötigen Verkehr früh abzufangen.

R1(config)# access-list 110 deny tcp 192.168.30.0 0.0.0.255 any eq 23

R1(config)# access-list 110 permit ip any any

R1(config)# interface g0/2

R1(config-if)# ip access-group 110 in

R1(config-if)# exit

Hinweis: Auf G0/2 sind jetzt zwei ACLs aktiv: ACL 10 outbound (aus Aufgabe A), ACL 110 inbound (Aufgabe B). Pro Interface und Richtung darf nur EINE ACL aktiv sein – das hier ist erlaubt, weil unterschiedliche Richtungen.

Test: Vom Server aus einem Telnet auf einen Mitarbeiter-PC versuchen → muss scheitern. Ein Ping vom Server zum Mitarbeiter-PC funktioniert weiterhin.

Hier nutzen wir eine Named-ACL für bessere Lesbarkeit. SSH zum Router-Interface darf nur vom Admin-Netz kommen.

R1(config)# ip access-list extended SSH-MGMT

R1(config-ext-nacl)# permit tcp 192.168.99.0 0.0.0.255 any eq 22

R1(config-ext-nacl)# deny tcp any any eq 22

R1(config-ext-nacl)# permit ip any any

R1(config-ext-nacl)# exit

Diese ACL muss auf JEDEM eingehenden Interface außer G0/3 aktiviert werden – sonst könnten User aus anderen Netzen den Router immer noch direkt per SSH erreichen. Alternativ und sauberer: Die ACL nur auf den vty-Lines anwenden:

R1(config)# line vty 0 4

R1(config-line)# access-class SSH-MGMT in

R1(config-line)# transport input ssh

R1(config-line)# exit

Wichtig: Bei Named-ACLs auf vty-Lines wird ‘access-class’ verwendet, nicht ‘ip access-group’.

R1# show access-lists

R1# show ip interface g0/2

R1# show ip access-lists 110

Die Trefferzähler (‘matches’) zeigen, wie oft jede Zeile ausgelöst wurde. Bei der Fehlersuche sind diese Zähler Gold wert.

  • Warum endet eine ACL implizit mit ‘deny any’?
Der implizite ‘deny any’ ist ein bewusstes Sicherheitsdesign: Was nicht ausdrücklich erlaubt ist, ist verboten (Whitelist-Prinzip). Vergisst man die explizite ‘permit’-Regel, ist erstmal alles dicht – das ist sicherer als umgekehrt.
  • Warum platziert man Standard-ACLs eher nahe am Ziel und Extended-ACLs nahe an der Quelle?
Standard-ACLs filtern nur nach Quell-IP – würde man sie nahe der Quelle platzieren, könnte man unbeabsichtigt erwünschten Verkehr zu anderen Zielen blockieren. Extended-ACLs sind präzise (Quelle, Ziel, Port) und können daher früh und gezielt filtern, ohne unbeabsichtigte Nebenwirkungen.
  • Welcher Angriff aus Block 1 wird durch Aufgabe C konkret erschwert?
Reconnaissance / unbefugter SSH-Zugriff auf das Netzwerkequipment. Auch ein Angreifer im Mitarbeiter-Netz, der versucht, das Router-Passwort per Brute Force zu knacken, scheitert bereits an der ACL.
  • Verstehen der zwei Phasen von IPsec (ISAKMP/IKE und IPsec)

  • Konfiguration eines symmetrischen IPsec-Tunnels zwischen zwei Routern

  • Test und Verifikation eines aufgebauten VPN-Tunnels

  • Erkennen, welcher Verkehr durch das VPN geschützt wird (‘interessanter Verkehr’)

Site-to-Site VPN funktioniert in Cisco Packet Tracer nur mit ISR-Routern, die das Security-Lizenzpaket simulieren – z. B. Cisco 1941 oder 2911. Vor der Konfiguration muss die Sicherheitslizenz aktiviert werden:

R1(config)# license boot module c2900 technology-package securityk9

R1(config)# end

R1# write

R1# reload

Nach dem Neustart steht der ‘crypto’-Befehl zur Verfügung. Achte darauf, dass auf BEIDEN Routern die Lizenz aktiviert ist.

Zwei Standorte (Site A und Site B) sind über einen ‘Internet’-Router verbunden, der den ISP simuliert. Auf den Standortroutern soll ein VPN-Tunnel den internen Datenverkehr verschlüsselt übertragen.

GerätLAN-InterfaceWAN-InterfaceHinweis
R1 (Site A)G0/0: 192.168.1.1/24G0/1: 200.0.0.1/30LAN-Subnetz: 192.168.1.0/24
ISPG0/0: 200.0.0.2/30 / G0/1: 200.0.0.5/30statisches Routing genügt
R2 (Site B)G0/0: 192.168.2.1/24G0/1: 200.0.0.6/30LAN-Subnetz: 192.168.2.0/24
PC-A192.168.1.10/24, GW .1Test-Client
PC-B192.168.2.10/24, GW .1Test-Client

Stelle sicher, dass alle Interfaces aktiviert sind und ein statisches Routing zwischen R1, ISP und R2 funktioniert. Vor der VPN-Konfiguration muss ein Ping von R1 zu R2 (über die WAN-IPs) erfolgreich sein.

R1(config)# ip route 0.0.0.0 0.0.0.0 200.0.0.2

R2(config)# ip route 0.0.0.0 0.0.0.0 200.0.0.5

ISP(config)# ip route 192.168.1.0 255.255.255.0 200.0.0.1

ISP(config)# ip route 192.168.2.0 255.255.255.0 200.0.0.6

Hinweis: Das Routing für die LAN-Subnetze über den ISP dient hier nur als Test, dass die WAN-Verbindung steht. Im echten Internet würden private IPs nicht geroutet – das VPN ersetzt diese Routen später.

Phase 1 baut den sicheren Kanal für den eigentlichen Schlüsselaustausch auf.

R1(config)# crypto isakmp policy 10

R1(config-isakmp)# encryption aes 256

R1(config-isakmp)# hash sha

R1(config-isakmp)# authentication pre-share

R1(config-isakmp)# group 5

R1(config-isakmp)# lifetime 3600

R1(config-isakmp)# exit

R1(config)# crypto isakmp key VPN_GeheimerSchluessel_2026 address 200.0.0.6

Der Schlüssel muss auf BEIDEN Seiten identisch sein. Die Adresse zeigt jeweils auf die WAN-IP des Gegenüber.

Definiert, wie die eigentlichen Nutzdaten verschlüsselt und integritätsgesichert werden.

R1(config)# crypto ipsec transform-set TS_VPN esp-aes 256 esp-sha-hmac

R1(cfg-crypto-trans)# exit

Schritt 4: Crypto-ACL für ‘interessanten Verkehr’

Abschnitt betitelt „Schritt 4: Crypto-ACL für ‘interessanten Verkehr’“

Diese ACL definiert, welcher Datenverkehr verschlüsselt durch den Tunnel laufen soll – nicht, welcher blockiert wird.

R1(config)# access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

R1(config)# crypto map MAP_VPN 10 ipsec-isakmp

R1(config-crypto-map)# set peer 200.0.0.6

R1(config-crypto-map)# set transform-set TS_VPN

R1(config-crypto-map)# match address 101

R1(config-crypto-map)# exit

Hinweis: Beim Anlegen einer Crypto-Map kann die Warnung ‘NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured’ erscheinen. Das ist normal.

R1(config)# interface g0/1

R1(config-if)# crypto map MAP_VPN

R1(config-if)# exit

Eine Bestätigung ‘ISAKMP is ON’ erscheint.

Spiegelbildlich auf R2 dieselben Schritte ausführen, mit angepassten Adressen:

R2(config)# crypto isakmp policy 10

R2(config-isakmp)# encryption aes 256

R2(config-isakmp)# hash sha

R2(config-isakmp)# authentication pre-share

R2(config-isakmp)# group 5

R2(config-isakmp)# lifetime 3600

R2(config-isakmp)# exit

R2(config)# crypto isakmp key VPN_GeheimerSchluessel_2026 address 200.0.0.5

R2(config)# crypto ipsec transform-set TS_VPN esp-aes 256 esp-sha-hmac

R2(cfg-crypto-trans)# exit

R2(config)# access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255

R2(config)# crypto map MAP_VPN 10 ipsec-isakmp

R2(config-crypto-map)# set peer 200.0.0.5

R2(config-crypto-map)# set transform-set TS_VPN

R2(config-crypto-map)# match address 101

R2(config-crypto-map)# exit

R2(config)# interface g0/1

R2(config-if)# crypto map MAP_VPN

Vom PC-A einen Ping zu PC-B absetzen:

ping 192.168.2.10

Der erste Ping kann noch ausfallen (Timeout), während der Tunnel ausgehandelt wird. Ab dem zweiten Ping sollten alle Pakete erfolgreich sein.

R1# show crypto isakmp sa

R1# show crypto ipsec sa

R1# show crypto map

‘show crypto isakmp sa’ sollte unter ‘state’ den Wert ‘QM_IDLE’ anzeigen → Phase 1 erfolgreich.

‘show crypto ipsec sa’ zeigt die Anzahl gesendeter und empfangener Pakete unter ‘#pkts encaps’ und ‘#pkts decaps’. Diese müssen sich beim Pingen erhöhen.

Wechsel in Packet Tracer in den Simulation Mode. Filter auf ICMP und IPsec. Beim Ping von PC-A zu PC-B erkennt man:

  • Auf dem LAN-Segment Site A: ein normales ICMP-Paket

  • Auf der WAN-Strecke: das Paket ist in einen ESP-Header (IP-Protokoll 50) verpackt – die ursprüngliche Quell- und Ziel-IP sind nicht mehr lesbar

  • Auf dem LAN-Segment Site B: wieder ein normales ICMP-Paket

  • Was passiert, wenn die Pre-Shared Keys auf beiden Seiten nicht identisch sind? Wo sieht man den Fehler?
Phase 1 schlägt fehl. In ‘show crypto isakmp sa’ bleibt der Status auf ‘MM_NO_STATE’ oder die Sitzung wird nach Timeout entfernt. Mit ‘debug crypto isakmp’ sieht man Meldungen wie ‘Pre-shared key authentication failed’.
  • Warum müssen die Crypto-ACLs auf beiden Seiten spiegelbildlich sein?
Die Crypto-ACL definiert symmetrisch, welcher Verkehr verschlüsselt werden soll. Wenn R1 192.168.1.0 → 192.168.2.0 verschlüsselt, R2 aber 192.168.2.0 → 192.168.99.0 erwartet, finden die Routers keine passenden Security Associations. Folge: Tunnel wird nicht aufgebaut oder Pakete werden verworfen.
  • Welcher Angriff aus Block 1 wird durch ein Site-to-Site-VPN konkret unmöglich gemacht?
Mitlesen oder Manipulieren von Daten auf der Strecke zwischen den beiden Standorten (klassisches MITM auf dem WAN-Pfad). Auch bei einem kompromittierten ISP wäre der Inhalt geschützt. Nicht geschützt sind dagegen Endgeräte selbst – wenn ein Mitarbeiter-PC kompromittiert ist, hilft das beste VPN nichts.

switchport mode access

switchport port-security

switchport port-security maximum <n>

switchport port-security mac-address sticky

switchport port-security violation {protect | restrict | shutdown}

show port-security

show port-security interface <if>

access-list <num> {permit|deny} … ! numerierte ACL (1-99 std, 100-199 ext)

ip access-list {standard|extended} <name> ! Named ACL

permit/deny …

ip access-group <num|name> {in|out} ! ACL ans Interface binden

access-class <num|name> in ! ACL an vty-Line binden

show access-lists

show ip interface <if>

crypto isakmp policy <prio>

encryption aes 256

hash sha

authentication pre-share

group {2|5|14}

crypto isakmp key <KEY> address <peer-ip>

crypto ipsec transform-set <name> esp-aes 256 esp-sha-hmac

access-list <num> permit ip <local-net> <wcm> <remote-net> <wcm>

crypto map <name> <prio> ipsec-isakmp

set peer <peer-ip>

set transform-set <ts-name>

match address <acl-num>

interface <wan-if>

crypto map <name>

show crypto isakmp sa

show crypto ipsec sa

Abbildung

Abbildung

Was ist der Sinn von Port Security auf einem Switch?