Articles

Konfigurieren häufig verwendeter IP-ACLs

Einführung

Dieses Dokument enthält Beispielkonfigurationen für häufig verwendete IP-Zugriffskontrolllisten (ACLs), die IP-Pakete auf der Grundlage von Kriterien filtern:

  • Quelladresse
  • Zieladresse
  • Typ des Pakets
  • beliebige Kombination dieser Elemente

Um den Netzwerkverkehr zu filtern, steuern ACLs, ob geroutete Pakete an der Router-Schnittstelle weitergeleitet oder blockiert werden. Ihr Router untersucht jedes Paket, um zu entscheiden, ob das Paket weitergeleitet oder verworfen werden soll, basierend auf den Kriterien, die Sie in der ACL angeben. Zu den ACL-Kriterien gehören:

  • Quelladresse des Datenverkehrs
  • Zieladresse des Datenverkehrs
  • Protokoll der oberen Schicht

Führen Sie diese Schritte aus, um eine ACL zu erstellen, wie die Beispiele in diesem Dokument zeigen:

  1. Erstellen Sie eine ACL.
  2. Wenden Sie die ACL auf eine Schnittstelle an.

Die IP-ACL ist eine sequentielle Sammlung von Erlaubnis- und Ablehnungsbedingungen, die für ein IP-Paket gelten. Der Router testet Pakete nacheinander gegen die Bedingungen in der ACL.

Die erste Übereinstimmung bestimmt, ob die Cisco IOS® Software das Paket akzeptiert oder ablehnt. Da die Cisco IOS-Software die Prüfung der Bedingungen nach der ersten Übereinstimmung beendet, ist die Reihenfolge der Bedingungen entscheidend. Wenn keine Bedingungen übereinstimmen, weist der Router das Paket aufgrund einer impliziten Deny-All-Klausel zurück.

Dies sind Beispiele für IP ACLs, die in der Cisco IOS Software konfiguriert werden können:

  • Standard-ACLs
  • Erweiterte ACLs
  • Dynamische (Lock and Key) ACLs
  • IP-benannte ACLs
  • Reflexive ACLs
  • Zeitbasierte ACLs, die Zeitbereiche verwenden
  • Kommentierte IP ACL-Einträge
  • Kontext-basierte ACLs
  • Authentifizierungs-Proxy
  • Turbo-ACLs
  • Verteilte zeitbasierte ACLs

In diesem Dokument werden einige häufig verwendete Standard- und erweiterte ACLs behandelt. Weitere Informationen zu den verschiedenen Arten von ACLs, die in der Cisco IOS Software unterstützt werden, und zur Konfiguration und Bearbeitung von ACLs finden Sie unter Konfigurieren von IP-Zugriffslisten.

Das Format der Befehlssyntax einer Standard-ACL lautet access-list access-list-number {permit|deny} {host|source source-wildcard|any}.

Standard-ACLs vergleichen die Quelladresse der IP-Pakete mit den in der ACL konfigurierten Adressen, um den Verkehr zu kontrollieren.

Erweiterte ACLs vergleichen die Quell- und Zieladressen der IP-Pakete mit den in der ACL konfigurierten Adressen, um den Verkehr zu kontrollieren. Sie können erweiterte ACLs auch granularer gestalten und so konfigurieren, dass der Verkehr nach Kriterien wie folgenden gefiltert wird:

  • Protokoll
  • Port-Nummern
  • Differentiated Services Code Point (DSCP)-Wert
  • Präferenzwert
  • Zustand des SYN-Bits (Synchronize Sequence Number)

Die Befehlssyntaxformate von erweiterten ACLs sind:

IP

access-list access-list-number ]{deny | permit} protocol source source-wildcard destination destination-wildcard 

Internet Control Message Protocol (ICMP)

access-list access-list-number ] {deny | permit} icmp source source-wildcard destination destination-wildcard
| ]

Transport Control Protocol (TCP)

access-list access-list-number ] {deny | permit} tcp source source-wildcard ] destination destination-wildcard ]

User Datagram Protocol (UDP)

access-list access-list-number ] {deny | permit} udp source source-wildcard ] destination destination-wildcard ]

Voraussetzungen

Voraussetzungen

Vergewissern Sie sich, dass Sie diese Voraussetzungen erfüllen, bevor Sie diese Konfiguration versuchen:

  • Grundlegendes Verständnis der IP-Adressierung

Zusätzliche Informationen finden Sie unter IP-Adressierung und Subnetting für neue Benutzer.

Verwendete Komponenten

Dieses Dokument ist nicht auf bestimmte Software- und Hardwareversionen beschränkt.

Die Informationen in diesem Dokument wurden anhand der Geräte in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte wurden mit einer gelöschten (Standard-)Konfiguration gestartet. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen jedes Befehls verstehen.

Konfigurieren

Diese Konfigurationsbeispiele verwenden die gebräuchlichsten IP-ACLs.

Einem ausgewählten Host den Zugriff auf das Netzwerk erlauben

Diese Abbildung zeigt einen ausgewählten Host, dem die Erlaubnis zum Zugriff auf das Netzwerk erteilt wird. Der gesamte Datenverkehr von Host B, der für NetA bestimmt ist, wird zugelassen, und der gesamte andere Datenverkehr von NetB, der für NetA bestimmt ist, wird verweigert.

Die Ausgabe in der Tabelle R1 zeigt, wie das Netzwerk dem Host Zugriff gewährt. Diese Ausgabe zeigt, dass:

  • Die Konfiguration erlaubt nur dem Host mit der IP-Adresse 192.168.10.1 über die Ethernet 0-Schnittstelle auf R1.

  • Dieser Host hat Zugriff auf die IP-Dienste von NetA.

  • Kein anderer Host in NetB hat Zugriff auf NetA.

  • In der ACL ist keine deny-Anweisung konfiguriert.

Standardmäßig befindet sich am Ende jeder ACL eine implizite deny all-Klausel. Alles, was nicht explizit erlaubt ist, wird verweigert.

R1

hostname R1!interface ethernet0 ip access-group 1 in!access-list 1 permit host 192.168.10.1

Hinweis: Die ACL filtert IP-Pakete von NetB zu NetA, außer Pakete, die von NetB stammen. Pakete, die von Host B zu NetA gesourced werden, sind weiterhin erlaubt.

Hinweis: Die ACL access-list 1 permit 192.168.10.1 0.0.0.0 ist eine andere Möglichkeit, die gleiche Regel zu konfigurieren.

Ausgewählten Hosts den Zugriff auf das Netzwerk verweigern

Diese Abbildung zeigt, dass Datenverkehr von Host B, der für NetA bestimmt ist, verweigert wird, während alle anderen Daten, die von NetB für den Zugriff auf NetA bestimmt sind, zugelassen werden.

Diese Konfiguration verweigert alle Pakete von Host 192.168.10.1/32 über Ethernet 0 auf R1 und erlaubt alles andere. Sie müssen den Befehl access list 1 permit any verwenden, um explizit alles andere zu erlauben, da es bei jeder ACL eine implizite deny all-Klausel gibt.

R1

hostname R1!interface ethernet0 ip access-group 1 in!access-list 1 deny host 192.168.10.1access-list 1 permit any

Hinweis: Die Reihenfolge der Anweisungen ist für den Betrieb einer ACL entscheidend. Wenn die Reihenfolge der Einträge vertauscht ist, wie dieser Befehl zeigt, passt die erste Zeile auf jede Paket-Quelladresse. Daher kann die ACL den Host 192.168.10.1/32 nicht vom Zugriff auf NetA abhalten.

access-list 1 permit anyaccess-list 1 deny host 192.168.10.1

Zugriff auf einen Bereich zusammenhängender IP-Adressen erlauben

Diese Abbildung zeigt, dass alle Hosts in NetB mit der Netzwerkadresse 192.168.10.0/24 auf das Netzwerk 192.168.200.0/24 in NetA zugreifen können.

Diese Konfiguration erlaubt den IP-Paketen mit einem IP-Header, der eine Quelladresse im Netzwerk 192.168.10.0/24 und eine Zieladresse im Netzwerk 192.168.200.0/24 hat, den Zugriff auf NetA. Am Ende der ACL befindet sich eine implizite „deny all“-Klausel, die allen anderen Datenverkehr den Durchgang durch Ethernet 0 inbound auf R1 verweigert.

R1

hostname R1!interface ethernet0 ip access-group 101 in!access-list 101 permit ip 192.168.10.0 0.0.0.255 192.168.200.0 0.0.0.255

Hinweis: In dem Befehl access-list 101 permit ip 192.168.10.0 0.0.0.255 192.168.200.0 0.0.0.255 ist die „0.0.0.255“ die inverse Maske des Netzwerks 192.168.10.0 mit der Maske 255.255.255.0. ACLs verwenden die inverse Maske, um zu wissen, wie viele Bits in der Netzwerkadresse übereinstimmen müssen. In der Tabelle lässt die ACL alle Hosts mit Quelladressen im Netzwerk 192.168.10.0/24 und Zieladressen im Netzwerk 192.168.200.0/24 zu.

Weitere Informationen zur Maske einer Netzwerkadresse und zur Berechnung der inversen Maske, die für ACLs benötigt wird, finden Sie im Abschnitt Masken in Konfigurieren von IP-Zugriffslisten.

Telnet-Verkehr unterbinden (TCP, Port 23)

Um höheren Sicherheitsanforderungen gerecht zu werden, müssen Sie möglicherweise den Telnet-Zugriff auf Ihr privates Netzwerk vom öffentlichen Netzwerk aus deaktivieren. Diese Abbildung zeigt, wie Telnet-Verkehr von NetB (öffentlich), der für NetA (privat) bestimmt ist, verweigert wird, was NetA erlaubt, eine Telnet-Sitzung mit NetB zu initiieren und aufzubauen, während der gesamte andere IP-Verkehr erlaubt ist.

Telnet verwendet TCP, Port 23. Diese Konfiguration zeigt, dass der gesamte TCP-Verkehr, der für NetA für Port 23 bestimmt ist, blockiert wird und der gesamte andere IP-Verkehr erlaubt ist.

R1

hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 deny tcp any any eq 23access-list 102 permit ip any any

Nur internen Netzwerken erlauben, eine TCP-Sitzung zu initiieren

Diese Abbildung zeigt, dass TCP-Verkehr, der von NetA stammt und für NetB bestimmt ist, erlaubt ist, während TCP-Verkehr von NetB, der für NetA bestimmt ist, verweigert wird.

Der Zweck der ACL in diesem Beispiel ist:

  • Erlauben Sie Hosts in NetA, eine TCP-Sitzung zu Hosts in NetB zu initiieren und aufzubauen.

  • Hosts in NetB daran hindern, eine TCP-Sitzung für Hosts in NetA zu initiieren und aufzubauen.

Diese Konfiguration erlaubt einem Datagramm, die Schnittstelle Ethernet 0 inbound auf R1 zu passieren, wenn das Datagramm hat:

  • Bits zur Bestätigung (ACK) oder zum Zurücksetzen (RST) sind gesetzt (was eine aufgebaute TCP-Sitzung anzeigt)

  • Ein Zielportwert größer als 1023

R1

hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 permit tcp any any gt 1023 established

Da die meisten bekannten Ports für IP-Dienste Werte kleiner als 1023 verwenden, wird jedes Datagramm mit einem Zielport kleiner als 1023 oder einem nicht gesetzten ACK/RST-Bit von ACL 102 verweigert. Wenn also ein Host von NetB eine TCP-Verbindung initiiert, indem er das erste TCP-Paket (ohne gesetztes Synchronisierungs-/Startpaket (SYN/RST-Bit)) für eine Portnummer kleiner als 1023 sendet, wird es abgelehnt und die TCP-Sitzung schlägt fehl. Die TCP-Sitzungen, die von NetA initiiert werden und für NetB bestimmt sind, werden zugelassen, da sie das ACK/RST-Bit für zurückkehrende Pakete gesetzt haben und Port-Werte größer als 1023 verwenden.

Eine vollständige Liste der Ports finden Sie in RFC 1700.

FTP-Verkehr verweigern (TCP, Port 21)

Diese Abbildung zeigt, dass FTP- (TCP, Port 21) und FTP-Datenverkehr (Port 20 ), der von NetzB ausgeht und für NetzA bestimmt ist, verweigert wird, während der gesamte andere IP-Verkehr erlaubt ist.

FTP verwendet Port 21 und Port 20. TCP-Verkehr, der an Port 21 und Port 20 gerichtet ist, wird verweigert und alles andere ist explizit erlaubt.

R1

hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 deny tcp any any eq ftpaccess-list 102 deny tcp any any eq ftp-dataaccess-list 102 permit ip any any

FTP-Verkehr zulassen (aktives FTP)

FTP kann in zwei verschiedenen Modi arbeiten, nämlich aktiv und passiv. Siehe FTP-Betrieb, um zu verstehen, wie aktives und passives FTP funktioniert.

Wenn FTP im aktiven Modus arbeitet, verwendet der FTP-Server Port 21 für die Steuerung und Port 20 für Daten. Der FTP-Server (192.168.1.100) befindet sich in NetA. Diese Abbildung zeigt, dass FTP- (TCP, Port 21) und FTP-Datenverkehr (Port 20 ), der von NetB kommt und für den FTP-Server (192.168.1.100) bestimmt ist, zugelassen wird, während aller andere IP-Verkehr abgelehnt wird.

R1

hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 permit tcp any host 192.168.1.100 eq ftpaccess-list 102 permit tcp any host 192.168.1.100 eq ftp-data established!interface ethernet1 ip access-group 110 in!access-list 110 permit host 192.168.1.100 eq ftp any establishedaccess-list 110 permit host 192.168.1.100 eq ftp-data any

FTP-Verkehr zulassen (Passives FTP)

FTP kann in zwei verschiedenen Modi arbeiten, nämlich aktiv und passiv. Lesen Sie den Abschnitt FTP-Betrieb, um zu verstehen, wie aktives und passives FTP funktioniert.

Wenn FTP im passiven Modus arbeitet, verwendet der FTP-Server Port 21 für die Steuerung und die dynamischen Ports größer oder gleich 1024 für Daten. Der FTP-Server (192.168.1.100) befindet sich in NetA. Diese Abbildung zeigt, dass FTP- (TCP, Port 21) und FTP-Datenverkehr (Ports größer oder gleich 1024), der von NetB stammt und für den FTP-Server (192.168.1.100) bestimmt ist, zugelassen wird, während der gesamte andere IP-Verkehr abgelehnt wird.

R1

hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 permit tcp any host 192.168.1.100 eq ftpaccess-list 102 permit tcp any host 192.168.1.100 gt 1023!interface ethernet1 ip access-group 110 in!access-list 110 permit host 192.168.1.100 eq ftp any establishedaccess-list 110 permit host 192.168.1.100 gt 1023 any established

Pings zulassen (ICMP)

Diese Abbildung zeigt, dass ICMP, das von NetA stammt und für NetB bestimmt ist, erlaubt ist, während Pings, die von NetB stammen und für NetA bestimmt sind, verweigert werden.

Diese Konfiguration erlaubt nur Echo-Antwort-Pakete (Ping-Antwort), die an der Schnittstelle Ethernet 0 von NetB in Richtung NetA eingehen. Die Konfiguration blockiert jedoch alle Echo-Request-ICMP-Pakete, wenn Pings von NetB ausgehen und an NetA gerichtet sind. Daher können Hosts in NetA Hosts in NetB anpingen, aber Hosts in NetB können keine Hosts in NetA anpingen.

R1

hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 permit icmp any any echo-reply

Erlaube HTTP, Telnet, Mail, POP3, FTP

Diese Abbildung zeigt, dass nur HTTP-, Telnet-, SMTP- (Simple Mail Transfer Protocol), POP3- und FTP-Verkehr erlaubt sind, während der restliche Verkehr, der von NetB ausgeht und für NetA bestimmt ist, verweigert wird.

Diese Konfiguration erlaubt TCP-Verkehr mit Zielportwerten, die mit WWW (Port 80), Telnet (Port 23), SMTP (Port 25), POP3 (Port 110), FTP (Port 21) oder FTP-Daten (Port 20) übereinstimmen. Beachten Sie, dass eine implizite „deny all“-Klausel am Ende einer ACL allen anderen Verkehr verweigert, der nicht mit den „permit“-Klauseln übereinstimmt.

R1

hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 permit tcp any any eq wwwaccess-list 102 permit tcp any any eq telnetaccess-list 102 permit tcp any any eq smtpaccess-list 102 permit tcp any any eq pop3access-list 102 permit tcp any any eq 21access-list 102 permit tcp any any eq 20

DNS zulassen

Diese Abbildung zeigt, dass nur der DNS-Verkehr (Domain Name System) erlaubt ist und der restliche Verkehr, der von NetzB kommt und für NetzA bestimmt ist, verweigert wird.

Diese Konfiguration erlaubt TCP-Verkehr mit dem Zielportwert 53. Die implizite Deny-All-Klausel am Ende einer ACL verweigert allen anderen Verkehr, der nicht mit den Permit-Klauseln übereinstimmt.

R1

hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 permit udp any any eq domain access-list 102 permit udp any eq domain anyaccess-list 102 permit tcp any any eq domain access-list 102 permit tcp any eq domain any

Routing-Updates erlauben

Wenn Sie eine Inbound-ACL auf eine Schnittstelle anwenden, stellen Sie sicher, dass Routing-Updates nicht herausgefiltert werden. Verwenden Sie die entsprechende ACL aus dieser Liste, um Routing-Protokoll-Pakete zuzulassen:

Geben Sie diesen Befehl ein, um das Routing Information Protocol (RIP) zuzulassen:

access-list 102 permit udp any any eq rip

Geben Sie diesen Befehl ein, um Interior Gateway Routing Protocol (IGRP) zu erlauben:

access-list 102 permit igrp any any

Geben Sie diesen Befehl ein, um Enhanced IGRP (EIGRP) zu erlauben:

access-list 102 permit eigrp any any

Geben Sie diesen Befehl ein, um Open Shortest Path First (OSPF) zu erlauben:

access-list 102 permit ospf any any

Geben Sie diesen Befehl ein, um Border Gateway Protocol (BGP) zu erlauben:

access-list 102 permit tcp any any eq 179 access-list 102 permit tcp any eq 179 any

Debug Traffic Based on ACL

Die Verwendung von Debug-Befehlen erfordert die Zuteilung von Systemressourcen wie Speicher und Rechenleistung und kann in extremen Situationen ein stark belastetes System zum Stillstand bringen. Verwenden Sie Debug-Befehle mit Bedacht. Verwenden Sie eine ACL, um selektiv den zu untersuchenden Datenverkehr zu definieren, um die Auswirkungen des Debug-Befehls zu reduzieren. Eine solche Konfiguration filtert keine Pakete.

Diese Konfiguration schaltet den Befehl debug ip packet nur für Pakete zwischen den Hosts 10.1.1.1 und 172.16.1.1 ein.

R1(config)#access-list 199 permit tcp host 10.1.1.1 host 172.16.1.1R1(config)#access-list 199 permit tcp host 172.16.1.1 host 10.1.1.1R1(config)#end
R1#debug ip packet 199 detailIP packet debugging is on (detailed) for access list 199

Weitere Informationen zu den Auswirkungen von Debug-Befehlen finden Sie unter Wichtige Informationen zu Debug-Befehlen.

Weitere Informationen zur Verwendung von ACLs mit Debug-Befehlen finden Sie im Abschnitt Verwenden des Debug-Befehls unter Verstehen der Ping- und Traceroute-Befehle.

MAC-Adressfilterung

Sie können Frames mit einer bestimmten MAC-Layer-Stations-Quell- oder Zieladresse filtern. Es können beliebig viele Adressen in das System konfiguriert werden, ohne dass es zu Leistungseinbußen kommt. Um nach MAC-Layer-Adresse zu filtern, verwenden Sie diesen Befehl im globalen Konfigurationsmodus:

Router#config terminal bridge irb bridge 1 protocol ieee bridge 1 route ip

Wenden Sie das Bridge-Protokoll auf eine Schnittstelle an, die Sie zusammen mit der erstellten Zugriffsliste zum Filtern des Datenverkehrs benötigen:

Router#config terminal
int fa0/0 no ip address bridge-group 1 {input-address-list 700 | output-address-list 700} exit

Erstellen Sie ein Bridged Virtual Interface und wenden Sie die IP-Adresse an, die der Ethernet-Schnittstelle zugewiesen ist:

Router#config terminal
int bvi1 ip address exit ! ! access-list 700 deny <mac address> 0000.0000.0000 access-list 700 permit 0000.0000.0000 ffff.ffff.ffff

Mit dieser Konfiguration erlaubt der Router nur die MAC-Adressen, die in der Zugriffsliste 700 konfiguriert sind. Mit der Zugriffsliste verweigern Sie die MAC-Adressen, die keinen Zugriff haben dürfen, und erlauben den Rest.

Hinweis: Erstellen Sie jede Zeile der Zugriffsliste für jede MAC-Adresse.

Verifizieren

Zurzeit ist kein Verifizierungsverfahren für diese Konfiguration verfügbar.

Fehlersuche

Zurzeit sind keine spezifischen Informationen zur Fehlersuche für diese Konfiguration verfügbar.

Eine Antwort schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.