Cisco ACLs – Grundlagen und Beispiele

Standard- und Extended-ACLs

Cisco IOS arbeitet ACL-Einträge sequenziell von oben nach unten ab. Der erste passende Eintrag entscheidet. Trifft kein Eintrag zu, greift am Ende das implizite deny.

  • Standard ACL: prüft im Wesentlichen die Quell-IP-Adresse.
  • Extended ACL: kann zusätzlich Protokoll, Zieladresse und bei TCP/UDP auch Ports berücksichtigen.

Für neue Konfigurationen sind benannte ACLs beziehungsweise der ACL-Konfigurationsmodus mit Sequenznummern übersichtlicher als ausschließlich die alte nummerierte Kurzsyntax.

Beispiel: zwei /24-Netze erlauben

access-list 1 permit 192.168.10.0 0.0.0.255
access-list 1 permit 192.168.20.0 0.0.0.255

Bestehende ACL erweitern

Ein neuer Befehl mit derselben ACL-Nummer überschreibt die vorhandenen Einträge nicht pauschal. Cisco IOS fügt einen neuen ACE hinzu. Beispiel:

access-list 1 permit 192.168.40.0 0.0.0.255

Übersichtlicher ist der ACL-Konfigurationsmodus. Dort kannst du mit Sequenznummern gezielt festlegen, an welcher Stelle ein Eintrag stehen soll:

ip access-list standard 1
 10 permit 192.168.10.0 0.0.0.255
 20 permit 192.168.20.0 0.0.0.255
 30 permit 192.168.40.0 0.0.0.255

Mit show ip access-lists beziehungsweise show access-lists kontrollierst du Reihenfolge und Trefferzähler.

Jetzt binden wir die ACL im Config Mode an ein Interface

interface ethernet0/0
 ip access-group 1 out
 exit

out = vom Switch weg = egress

Wildcards

0.0.255.255 : Prüfe die ersten 16 Bit
1.1.1.1 0.0.0.0 : erlaube Host /32

Standard ACLs

sind so zu verstehen :

Die IP/ Netz in der ACL ist in der Regel immer als Paket Sounrce zu verstehen.

access-list 1 permit 1.2.3.4 0.0.0.0

Ausgehend vom Interface ins Kabel:

ip access-group 1 out

Wird so interpretiert : Erlaube alle Paket mit der Source 1.2.3.4 ausgehend (ins Kabel)

Eingehend vom Kabel ins Interface:

ip access-group 1 in

Wird so interpretiert : Erlaube alle Paket mit der Source 1.2.3.4 eingehend (ins Interface)

Extended ACLs

access-list 101 permit tcp 10.10.9.0 0.0.0.255 host 10.10.4.85 eq 443

Quelle ist : 10.10.9.0
Ziel ist : host 10.10.4.85 eq 443

Namen einer Extended ACL geben :

ip access-list extended test   # die ACL hat dann keine Nummen sondern einen Namen

Typen :

IP : egal welcher IP Typ (TCP, UDP, ICMP ..)
TCP
UDP
ICMP

Implizites deny am Ende

Jede IP-ACL besitzt am Ende ein implizites deny. Du musst deny ip any any deshalb nicht zwingend selbst eintragen. Ein explizites Deny kann aber sinnvoll sein, wenn du es beispielsweise mit Logging bewusst sichtbar machen möchtest.

ACL an ein Interface binden

Eingehend:

interface Ethernet0/0
 ip access-group 101 in

Ausgehend:

interface Ethernet0/0
 ip access-group 101 out

in bewertet Pakete beim Eintritt in das Interface; out beim Verlassen des Interfaces.

ACL und Trefferzähler anzeigen

show ip access-lists

Die Ausgabe zeigt die ACL-Einträge und – je nach Plattform und IOS-Version – auch Match-Zähler. Nach Änderungen solltest du Reihenfolge, Richtung und das tatsächlich gebundene Interface immer kontrollieren.