ACLs - Access Control Lists


ACLs sind Anweisungslisten für z.B. Routerschnittstellen, die squenziell abgearbeitet werden. Mit Hilfe solcher Liste wird festgelegt, welche Pakete zugelassen werden und welche verworfen werden müssen.

Der gesamte Datenverkehr, der über eine Schnittstelle läuft, wird auf bestimmte Spezifikationen der ACL überprüft.

ACLs könne für alle gerouteten Netzprotokolle erstellt werden. Solche gerouteten Netzprotokolle sind z.B. das Internet Protocol (ip) und Internetwork Packet Exchange (IPX).

Bei jedem Kommunikationsprozess kommen Datenpakete an einer Schnittstelle an, der Router überprüft, ob das Paket geroutet oder gebridget werden muss. Danach wird festgestellt, ob für die Eingangsschnittstelle eine ACL definiert wurde. Wenn eine ACL gefunden wird, wird das Paket mit den dortigen Einträgen abgeglichen. Erfüllt das Paket die Bedingungen der ACL, wird es zugelassen und mit den Einträgen in der Routing-Tabelle verglichen.

Wenn über die Routing-Tabelle die Zielschnittstelle ermittelt wurde, wird überprüft, ob für diese eine ACL vorliegt. Ist das der Fall, wird diese genauso mit dem Paket verglichen. Liegt keine ACL vor, wird das Paket direkt über die entsprechende Schnittstelle weitergeleitet.

ACL-Anweisungen unterliegen einer aufeinander folgenden, logischen Reihenfolge. Jenachdem, ob eine Bedingung erfüllt ist, wird ein Paket zugelassen oder abgewiesen. Sobald jedoch eine Bedingung zutrifft, wird der Vergleich abgebrochen und das Paket wird zugelassen. Die nachfolgenden Einträge werden also gar nicht erst abgearbeitet. Wenn keine der ACL-Anweisungen erfüllt ist, wird ein impliziertes "deny any" ausgeführt. Durch dieses "deny any" wird vermieden, das durch schlecht durchdachte ACLs Sicherheitslöcher im Netzwerk entstehen.

Beispiel für eine ACL:

interface ethernet 0
ip address 1.1.1.1 255.0.0.0
ip access-group 1 in
ip access-group 2 out

access-list 1 permit 5.6.0.0 0.0.255.255
access-list 1 deny 7.9.0.0 .0.0255.255


Access-List 2:

access-list 2 permit 1.2.3.4
access-list 2 deny .1.2.0.0 .0.0.255.255


Aufbau von ACLs
Eine Access-List erhält zunächst eine Nummer, diese kann beliebig zwischen 1 und 99 gewählt werden. Sie wird mit access-list 1 angegeben. Danach wird geregelt ob es sich um die Verweigerung (deny) oder die Erlaubnis (permit) von Datenverkehr handelt. Dann folgt entweder die Angabe eines Hosts oder eines Netzwerks bzw. Netzwerkbereichs. Netzwerkbereiche werden mit einer IP-Adresse und einer Wildcard-Maske angegeben. Die Wildcardmask funktioniert ähnlich wie eine Subnetzmaske:
Alle Bits, die beim Anding (logisch-Und Verknüpfung) von IP-Adresse und Wildcardmask gleich 1 sind, werden ignoriert.

Die folgenden Beispiele zeigen mögliche ACL Konfigurationen:

  • Router (config) # access-list 1 permit 172.16.4.13 0.0.255.255 prüfen / ignorieren
    Router (config) # int e0
    Router (config-if) # ip access-group 1 out

    Netzwerkverkehr nach ausssen für IP-Range172.16.0.0 - 172.16.255.255 ist erlaubt. (nach aussen = vom Router insLAN)
    Alle Datenpakete aus dem Netzwerk 172.16.0.0 werden weitergeleitet, alle anderen Datenpakete werden geblockt.

  • Router (config) # access-list 2 deny 172.16.4.13 0.0.0.0 /altern.: deny host 172.16.4.13
    Router (config) # access-list 2 permit 0.0.0.0 255.255.255.255 /altern.: any
    Router (config) # int e0
    Router (config-if) # ip access-group 2 out

    Datenpakte vom Host 172.16.4.13 werden geblockt, alle anderen werden weitergeleitet.

  • Router (config) # access-list 2 deny 193.16.10.10 0.0.0.255
    Router (config) # int e0
    Router (config-if) # ip access-group 3 out

    Der gesamte Datenverkehr wird geblockt.

  • Router (config) # access-list 4 permit 172.4.16.0 0.0.15.55
    Router (config) # int e0
    Router (config-if) # ip access-group 4 in

    Alle Datenpakete aus den Subnetzen 172.4.16.0 bis 172.4.31.0 werden weitergeleitet.
    Der übrige Datenverkehr wird geblockt.