Access Control Lists in Cisco-Router-Netzwerken

Beitragsbaum

 

 

Access Control List

Um Verbindungen und Zugriffe auf Netzwerke und deren Daten besser kontrollieren zu können greift man auf die Technik von Access Control Lists, kurz ACL, zurück. Dadurch bietet sich die Möglichkeit zu bestimmen, welche eingehenden und ausgehenden Verbindungen erlaubt oder geblockt werden. Um diese Regeln definieren zu können, benötigt man die Angabe von Source und Destination Address, als auch gegebenenfalls der Ports oder der Services der zu erlaubenden oder zu blockenden Verbindung. Die meisten Router, zumindest die Cisco Router, können mit ACL’s umgehen und auch für die einzelnen Interface oder auch für MPLS-Strecken konfiguriert werden. Es ist keine extra hardware- oder softwaretechnische Firewall vonnöten, um Access Control Lists definieren.

Folgende Skizze soll eine bildliche Darstellung der Schnittstellen und der Netzwerkumgebung veranschaulichen.

 

 

 

 

Konfigurationsbeispiel

Auf dem Router existiert das Interface VLAN 100 an dem ein /26 Subnetz angebunden ist für ein Forschungsgebiet. Da es sich hier um ein Netzsegment mit sensiblen Forschungsdaten handelt, soll der Zugriff eingehend wie auch ausgehend aus dem Netz strikt geregelt werden. Auf den Server und auf die Rechner darf nur von bestimmten IP-Adressen und Ports zugegriffen werden. Daher sollen alle nicht definierten eingehenden Verbindungen geblockt werden. Des Weiteren sollen ausgehende Verbindungen zu unseriösen IP-Adressräumen gesperrt werden, um eine Infektionsgefahr durch unseriöse Zugriffe oder Malware zu verringern. Das Firewallsymbol auf der Skizze dient lediglich der Veranschaulichung einer „Security/Firewall Funktion“.

 

Konfiguration des Interface VLAN

Das Forschungsnetz besteht aus folgendem /26 Subnetz mit folgender IPv4 Konfiguration:

Netzadresse: 192.168.100.64
Erster Host: 192.168.100.65
Letzter Host: 192.168.100.126
Gateway: 192.168.100.126
Netzmaske: 255.255.255.192

In meinem Beispiel entspricht das Gateway für das Forschungsnetz, welches auch auf dem Router Interface konfiguriert wird, der letzten freien IP-Adresse in dem Subnetz. Natürlich kann hier auch jede andere freie IP-Adresse in dem Range als Gateway verwendet werden, dass ist jedem selbst überlassen.

(config)#   interface Vlan100
(config-if)#   description Forschungsnetz
(config-if)#   ip address 192.168.100.126 255.255.255.192
(config-if)#   ip ospf authentication message-digest
(config-if)#   ip ospf message-digest-key 100 md5 7 12231C18210E400E220B5E
(config-if)#   ip ospf cost 18

 

Erlaubte und unerlaubte Verbindungen

Als Nächstes sollte in Erfahrung gebracht werden, welche Verbindungen überhaupt erlaubt oder geblockt werden sollen. Sobald man die Informationen erhalten hat, kann man die einzelnen Regeln den richtigen ACLs zuweisen. Unterschieden wird hier in inside und outside.

 

Inside – Ausgehende Verbindungen

Es handelt sich hier um die Kommunikation von innen nach außen und so sind auch die Regeln aufgebaut. Folgende Angaben gibt es seitens Betreiber des Forschungsgebietes zur Zugriffsberechtigung:

 

Unerlaubte Verbindungen:

Source Destination Service
Inside, any 112.111.43.0/26
Inside, 192.168.100.100 120.68.30.25
Inside, any 44.89.23.64/27 HTTP, HTTPS

 

Erlaubte Verbindungen:

Außer den zu sperrenden obigen Verbindungen, soll es sonst keine Einschränkungen geben.

Source Destination Service
Inside, any Outside, any

 

 

Outside – Eingehende Verbindungen

Es handelt sich hier um die Kommunikation von außen nach innen und so sind auch die Regeln aufgebaut. Folgende Angaben gibt es seitens Betreiber des Forschungsgebietes zur Zugriffsberechtigung:

 

Unerlaubte Verbindungen:

Es sollen alle eingehenden Verbindungen geblockt werden, die nicht extra unten aufgelistet werden.

Source Destination Service
Outside, any Inside, any

 

Erlaubte Verbindungen:

Source Destination Service
145.156.30.0/28 Inside, any
130.180.25.100 Inside, any
100.100.130.128/25 Inside, 192.168.100.100 SSH, TFTP

 

Erstellung der ACL

Nun ist die Prämisse dieses Interface durch ACL’s vor unzulässigen Zugriffen und Verbindungen zu schützen. Dafür verlässt man gegebenenfalls die Interface Konfiguration und wechselt zur globalen Konfigurationsebene. Durch den Befehl ip access-list (extended) und dazugehörigem Namens-Tag, kann man quasi diese Access List anlegen und darin Regeln definieren.

Da die Anforderung war, eingehende als auch ausgehende Verbindungen und Zugriffe zu filtern, muss einmal eine out(side) und eine in(side) Access List konfiguriert werden.

(config)#   ip access-list extended In-Forschung
(config-ext-nacl)#   exit
(config)#   ip access-list extended Out-Forschung
(config-ext-nacl)#   exit

 

Ein großer Unterschied bei der Konfiguration von ACL’s zwischen Router und Firewall liegt darin, dass der Router nicht mit Netzmasken sondern mit Wildcards arbeitet. Somit wird quasi die Range der betroffenen IP-Adressen von Subnetzen immer mit dem Wildcard angegeben und nicht mit der Netzmaske. Ich werde nicht auf jede einzelne Variable und Option zur Bildung der Regeln eingehen, dies würde den Rahmen grundlegend sprengen. Ein kleines Beispiel soll zeigen, wie der Aufbau einer Regel aussieht.

 

Blocke   |   sämtlichen IP-Verkehr   |   von jeder Adresse im inside   |   in das Subnetz

deny                          ip                                               any                                  112.111.43.0 0.0.0.255

 

oder

 

Erlaube   |   TCP-Verbindungen   |   vom Subnetz / Wildcard   |   zur IP-Adresse   |   über Port

permit                  tcp                          100.100.130.128 0.0.0.127     192.168.100.100         eq 22

 

Die fertige Access List für In-Forschung sieht dann folgendermaßen aus:

(config)#   ip access-list extended In-Forschung
(config-ext-nacl)#   deny ip any 112.111.43.0 0.0.0.255
(config-ext-nacl)#   deny ip host 192.168.100.100 host 120.68.30.25
(config-ext-nacl)#   deny tcp any 44.89.23.64 0.0.0.31 eq 80
(config-ext-nacl)#   deny tcp any 44.89.23.64 0.0.0.31 eq 443

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

 

und die fertige Access List für Out-Forschung dann so:

(config)#   ip access-list extended Out-Forschung
(config-ext-nacl)#   permit ip 145.156.30.0 any 0.0.0.15
(config-ext-nacl)#   permit ip host 130.180.25.100 any
(config-ext-nacl)#   permit tcp 100.100.130.128 0.0.0.127 192.168.100.100 eq 22
(config-ext-nacl)#   permit udp 100.100.130.128 0.0.0.127 192.168.100.100 eq 69
(config-ext-nacl)#   deny ip any any

 

Ganz wichtig ist das die Reihenfolge der Regeln beachtet werden, denn eine Regel an falscher Position kann fatale Folgen mit sich bringen. Daher bildet sich für die Konfiguration von Access Lists jeglicher Art eine allgemeine Faustregel: Das Mischen von deny und permit Regeln sollte vermieden werden.

Der Grund dafür ist relativ simpel und kurz erklärt. In der Access List In-Forschung sollen alle Verbindungen ausgehend erlaubt (permit) werden bis auf die definierten Ausnahmen (deny). Wenn ich nun allerdings die permit ip any any zwischen eine der deny Regeln positioniere, dann würde ich alle nachfolgenden deny Regeln annullieren.

(config)#   ip access-list extended In-Forschung
(config-ext-nacl)#   deny ip any 112.111.43.0 0.0.0.255
(config-ext-nacl)#   deny ip host 192.168.100.100 host 120.68.30.25
(config-ext-nacl)#   permit ip any any
(config-ext-nacl)#   deny tcp any 44.89.23.64 0.0.0.31 eq 80
(config-ext-nacl)#   deny tcp any 44.89.23.64 0.0.0.31 eq 443

 

Denn die permit ip any any sagt aus, dass ab jetzt alle weiteren Verbindungen erlaubt werden, egal was nachfolgend an deny noch definiert wurde. Daher sollten die permit ip any any oder deny ip any any immer am Ende einer ACL gesetzt werden.

 

Verknüpfung der ACL mit dem Interface

Zum Schluss fehlt nur noch die Verknüpfung der Access List mit dem Interface auf dem diese angewendet werden soll. Dafür ist ein einziger Befehl notwendig, welcher diese Verknüpfung anhand des Namens-Tag herstellt.

(config)#   interface Vlan100
(config-if)#   description Forschungsnetz
(config-if)#   access-group In-Forschung in
(config-if)#   access-group Out-Forschung out

(config-if)#   ip address 192.168.100.126 255.255.255.192
(config-if)#   ip ospf authentication message-digest
(config-if)#   ip ospf message-digest-key 100 md5 7 12231C18210E400E220B5E
(config-if)#   ip ospf cost 18

 

Das in und out nach dem Namens-Tag sagt dem Router quasi, dass sich diese ACL auf inside und outside bezieht soll und es sich hier um ausgehende Verbindungen handelt. Die Angabe im Namens-Tag ist für den Router nicht ausreichend und dient nur zu schnellen Erkennung für den Administrator.

 

Damit wäre die Konfiguration abgeschlossen und die ACLs scharf geschaltet.

 

over & out,

jonsch

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.