7.1 Funktionsweise einer Access Liste
Access Listen sind Zugriffslisten, die auf Layer 3 und Layer 4 den Zugriff auf Resourcen steuern. Accesslisten werden direkt am Router konfiguriert und können sowohl beim eingehenden Datenverkehr als auch beim ausgehenden Datenverkehr für die Weiterleitung herangezogen werden.
Access Listen sind also eine vereinfachte Form von Firewalls.
Eine ACL wird von oben nach unten abgearbeitet. Beim ersten „Treffer“ wird die ACL verlassen und die entsprechende Aktion durchgeführt. Wurden alle Tests durchgeführt und kein Treffer gefunden, wird das Paket entweder verworfen (implicit deny) oder durchgelassen (implicit allow).
Es gibt ausserdem Access Listen für eingehenden und ausgehenden Verkehr. Es existieren 2 Arten von Access Listen:
Bei Standard ACLs wird die Quelladresse überprüft und auf den gesamten IP Protokollbereich angewandt.
Bei Extended ACLs werden Quell- und Zieladresse überprüft. Ausserdem ist eine Unterschiedung zwischen verschiedenen Protokollen (TCP, …) und Ports möglich.
Die Genauigkeit von ACLs kann bitweise geregelt werden. Dabei bedeutet 0, das das Bit überprüft werden soll und 1 dass es ignoriert werden soll.
Beispiel:
access-list 1 permit 172.16.0.0 0.0.255.255
Der erste Wert gibt die Netzadresse an, der zweite die Genauigkeit. Hier werden also die ersten 2 Byte der Adresse überprüft, der Rest wird ignoriert. In diesem Beispiel werden alle Pakete aus dem Netz 172.16.0.0 weitergeleitet.
Konfigurationsrichtlinien für ACLs:
Erstellen:
Router(conf)# Access-list <Nummer> <permit/deny> <source> [wildcardmaske]
Die Nummer darf von 1 bis 99 gehen.
Die Wildcardmaske ist optional, default ist 0.0.0.0
Zuweisen:
Router(conf-if)# ip access-group <Nummer> <in/out>
Löschen der Konfiguration:
Router(conf)# no access-list <Nummer>
Überprüfung von Quelle und Ziel
Bereich: 100 – 199
Erstellen:
Router(conf)# access-list <Nummer> <permit/deny> <protocol> <source> <source-wildcard> [operator port] <destination> <destination-wildcard> [operator port] [established] [log]
Zuweisen:
Router(conf-if)# ip access-group <Nummer> <in/out>
Beispiel:
Wir haben einen Router mit 3 direkt angeschlossenen Netzen (10.1.0.0, 10.2.0.0, 10.3.0.0 an e0/0).
Wir möchten den Router wie folgt konfigurieren:
Möglichkeit 1: Wir verwenden Standard ACLs, da da sie hier ausreichen und schneller sind als Extended ACLs.
Wir erlauben nur 10.2.0.0 auf 10.3.0.0 zuzugreifen. Befehl:
R(config)# access-list 1 permit 10.1.0.0 0.0.255.255
R(config)# in e0/0
R(conf-if)# ip access-group 1 out
Standardaccesslisten werden immer nahe dem Ziel konfiguriert – eine Extended nahe der Quelle. Bei StandardACLs muss das Paket also komplett durch den Router wandern und wird erst dann geprüft.
Möglichkeit 2: Wir verwenden Extended ACLs:
Wir erlauben nur Paketen, die von e0/2 empfangen werden, dass sie an 10.3.0.0 weitergesandt werden.
R(config)# access-list 101 permit ip 10.2.0.0 0.0.255.255 10.1.0.0 0.0.255.255
R(config)# in e0/1
R(conf-if)# ip access-group 101 in
Ab IOS 11.2 gibt es Named IP ACLs. Damit lassen sich Accesslisten benennen – mit einem eindeutigen Namen. Dies erleichtert die Verwaltung von vielen ACLs. Ausserdem lassen sich bei Named IP ACLs einzelne Zeilen aus den ACLs listen.
Erstellen einer Named IP ACL:
Router(config)# ip access-list
<standard/extended> <name>
Router(config<std-/ext->nacl)# <permit/deny> TEST
<Konditionen>
Löschen einer Zeile:
Router(config<std-/ext->nacl)# no <permit/deny> TEST <Konditionen>
PRRU Skriptum – Kapitel 7
Dies ist ein Teil des PRRU Skriptums von Markus Wilthaner und anderen Autoren. Bitte die Hinweise zum Copyright unter http://school.wilth.net/prru/ beachten.
E-Mail: contact@wilth.net