Verständnisfrage zu ACL und Cisco Router
Guten Abend,
heute Abend habe ich mich meinem Cisco Router und ACLs beschäftigt. Aber irgendwie funktioniert es nicht so wie ich es möchte.
Auf meinem Router habe ich drei VLANs (Mein LAN, IoT, Gäste).
In jedem dieser VLANs ist ein DHCP Server.
Als Beispiel nehmen wir das VLAN “Mein LAN“.
Für dieses VLAN habe ich eine ACL erstellt die den SSH Zugriff auf dem Router verbietet soll, aber ich bekomme keine IP Adresse vom DHCP Server.
Das habe ich auch versucht.
Bei diesem Eintrag bekomme ich zwar eine IP Adresse, aber komme nicht ins Internet.
Im VLAN Interface ist die ACL Regel eingetragen.
Laut meinem wissen ist es so bei den ACL Regel dass, sobald eine Regel zutrifft ist die weiteren Regelwerk egal.
Ich habe schon nach mehren Lösungen gesucht, aber noch keine die passt.
Hoffe ihr könnt mir helfen..
Gruß
heute Abend habe ich mich meinem Cisco Router und ACLs beschäftigt. Aber irgendwie funktioniert es nicht so wie ich es möchte.
Auf meinem Router habe ich drei VLANs (Mein LAN, IoT, Gäste).
In jedem dieser VLANs ist ein DHCP Server.
Als Beispiel nehmen wir das VLAN “Mein LAN“.
Für dieses VLAN habe ich eine ACL erstellt die den SSH Zugriff auf dem Router verbietet soll, aber ich bekomme keine IP Adresse vom DHCP Server.
ip access-list extended vlan2
permit udp any eq bootpc any eq bootpc
deny tcp 192.168.2.0 0.0.0.255 host 192.168.2.254 eq 22
permit ip 192.168.2.0 0.0.0.255 any
Das habe ich auch versucht.
permit udp any any eq bootpc
Bei diesem Eintrag bekomme ich zwar eine IP Adresse, aber komme nicht ins Internet.
permit udp any eq bootpc any eq bootps
Im VLAN Interface ist die ACL Regel eingetragen.
ip access-group vlan2 in
Laut meinem wissen ist es so bei den ACL Regel dass, sobald eine Regel zutrifft ist die weiteren Regelwerk egal.
Ich habe schon nach mehren Lösungen gesucht, aber noch keine die passt.
Hoffe ihr könnt mir helfen..
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1849112349
Url: https://administrator.de/contentid/1849112349
Ausgedruckt am: 15.11.2024 um 21:11 Uhr
18 Kommentare
Neuester Kommentar
permit udp any eq bootpc any eq bootpc
Das kann nicht funktionieren weil du fälschlicherweise den gleichen UDP Port in der ACL definiert hast für Source und Destination. Siehe: https://de.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol#Ablauf ...Ports sind deshalb bei einem von einem Client gesendeten DHCP Request wie folgt: bootpc = 68 und bootps = 67
(Siehe zu den Ports auch HIER)
Der DHCP Client sendet also den initialen DHCP Request mit Source Port 68 (bootpc = client) and Destination Port 67 (bootps = server)!
Folglich muss dein ACL Parameter dann richtig lauten: permit udp any eq bootpc any eq bootps Damit Client DHCP Requests die ACL passieren können.
Der Source und Destination Port ist doch niemals gleich !! Logisch also das diese falsche Regel deine Client DHCP Requests blockt. Die ACL tut also das was sie soll... Works as designed ! 😉
permit udp any any eq bootpc
Das stimmt dann wieder, weil er mit "any" alles akzeptiert an Source Ports und Destination Port aber 67 (bootpc) sein muss, deshalb rennt das also durch !Auch hier: Works also as designed !
Bei diesem Eintrag bekomme ich zwar eine IP Adresse, aber komme nicht ins Internet.
Mmmhh...ansonsten ist das Regelwerk syntaktisch OK und sollte so klappen.Kann es sein das du einen Folgefehler irgendwo gemacht hast und vergessen hast ip nat inside auf dem VLAN zu setzen oder in der NAT Permit Liste vergessen hast dieses IP Netz einzutragen ?! Dann scheitert das NAT ins Internet.
Grundlagen dazu, wie immer, im Cisco Router Tutorial.
Wichtig wäre natürlich zu erfahren wie du "Internet"" überhaupt definierst ?? Kann ja immer viel bedeuten...
Du hast einen (Denk)Fehler bei der Zuordnung der NAT ACLs gemacht !
Die Inbound LAN ACLs an den VLAN Interfaces dürfen niemals gleich der NAT ACL sein. Das sind zwei völlig verschiedene (ACL) Baustellen ! Mit der NAT ACL definierst du welche Source IPs outbound geNATet werden. Die haben natürlich mit den lokalen (V)LAN ACLs absolut nichts zu tun und müssen davon zwingen getrennt sein. Deshalb klappt das nicht. Das musst du also zwingend mit einer separaten NAT ACL ändern.
Die überflüssigen NAT overload Kommandos entfallen natürlich bis auf eines und es sollte dann so aussehen:
!
ip nat inside source list NAT_OUT interface gi0/0/0 overload
!
access-list extended NAT_OUT
permit ip 192.168.2.0 0.0.0.255 any (VLAN 2)
permit ip 192.168.3.0 0.0.0.255 any (VLAN 3)
permit ip 192.168.4.0 0.0.0.255 any (VLAN 4)
Du hast einen (Denk)Fehler bei der Zuordnung der NAT ACLs gemacht !
Die Inbound LAN ACLs an den VLAN Interfaces dürfen niemals gleich der NAT ACL sein. Das sind zwei völlig verschiedene (ACL) Baustellen ! Mit der NAT ACL definierst du welche Source IPs outbound geNATet werden. Die haben natürlich mit den lokalen (V)LAN ACLs absolut nichts zu tun und müssen davon zwingen getrennt sein. Deshalb klappt das nicht. Das musst du also zwingend mit einer separaten NAT ACL ändern.
Die überflüssigen NAT overload Kommandos entfallen natürlich bis auf eines und es sollte dann so aussehen:
!
ip nat inside source list NAT_OUT interface gi0/0/0 overload
!
access-list extended NAT_OUT
permit ip 192.168.2.0 0.0.0.255 any (VLAN 2)
permit ip 192.168.3.0 0.0.0.255 any (VLAN 3)
permit ip 192.168.4.0 0.0.0.255 any (VLAN 4)
Der Router bekommt seine WAN IP von einem DHCP Server der Private Adressen verteilt wie z.B eine Fritzbox, Speedport usw.
Ahaaa...da liegt der Hase im Pfeffer!Da musst du dann natürlich aufpassen wenn du da auch mit einer ACL arbeitest, denn dort ist es ja mit bootpc und bootps genau andersrum, weil in dem Falle der Router ja selber DHCP Client ist. Eingehend am WAN Interface kommt in dem Falle der DHCP Offer vom Server an. Also mit Source Port=67 und Destination Port=68 !
Hier ist die ACL dann genau andersrum also permit udp any eq bootps any eq bootpc
OK, letztlich hängt das aber insgesamt davon ab WIE du am WAN Port arbeitest. Also ob da eine CBAC oder ZBF Firewall werkelt oder ob du mit einfachen ACLs arbeitest. Dazu sagst du ja leider nix aber vermutlich ist es Letzteres, richtig?
obwohl es nicht funktionieren sollte. Hat es dann doch geklappt.
Jetzt wirds leider etwas wirr und wir kommen nicht mehr mit...?! WAS bedeutet das denn jetzt ?? ACL funbktioniert ? oder doch nicht ?
Lass ich die ACL Regel komplett weg bekomme ich auch keine IP Adresse.
Wieso "auch" ?? Du schreibst doch oben die ACL funktioniert jetzt. Verwirrung komplett....Das Cisco Forum beschreibt ja genau die "permit udp any eq bootpc any eq bootps" Lösung wie es bei dir oben auch beschrieben ist.
Ich checke das mal an einem 886er.
Um's gleich vorweg zunehmen ACL funktioniert erwartungsgemäß fehlerfrei !
Fazit: Router arbeitet schonmal wie er soll !
Man sieht am ipconfig Output das DHCP vom Router kommt !
Fazit: PuTTY Zugriff auf den Router scheitert, Internet (Ping 8.8.8.8) klappt fehlerlos.
Cisco Router Konfig
!
ip dhcp excluded-address 192.168.25.1 192.168.25.149
ip dhcp excluded-address 192.168.25.200 192.168.25.254
!
ip dhcp pool c886
network 192.168.25.0 255.255.255.0
default-router 192.168.25.1
domain-name testnetz.home.arpa
dns-server 192.168.25.1
!
!
interface Vlan1
description Local LAN
ip address 192.168.25.1 255.255.255.0
ip access-group VLAN1 in
ip nat inside
!
interface Vlan99
description Internet Port
ip address 10.1.1.22 255.255.255.0
ip nat outside
!
ip nat inside source NAT_OUT interface Vlan99 overload
!
ip route 0.0.0.0 0.0.0.0 10.1.1.254
!
ip access-list extended NAT_OUT
permit ip 192.168.25.0 0.0.0.255 any
!
ip access-list extended VLAN1
permit udp any eq bootpc any eq bootps
deny tcp 192.168.25.0 0.0.0.255 host 192.168.25.1 eq telnet 22
permit ip 192.168.25.0 0.0.0.255 any
Ping Check auf Internet Router
cisco886-r2# ping 8.8.8.8 source vlan 99
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds:
Packet sent with a source address of 10.1.1.22
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/9/12 ms
Check der ACL mit lokalem Win 10 Client
Mit PuTTY wurde versucht per Telnet und per SSH auf den Router zuzugreifen was die ACL oben ja blockt.Man sieht am ipconfig Output das DHCP vom Router kommt !
Fazit: PuTTY Zugriff auf den Router scheitert, Internet (Ping 8.8.8.8) klappt fehlerlos.
Check der ACL auf dem Router
Hier sieht man anhand der ACL Matchcounter das die ACL fehlerfrei arbeitet.- DHCP Matchcount 1 ist der durchgelassene DHCP Request des Win 10 Clients
- 3 Matches des geblockten Telnet und SSH Zugangs sind 2 Telnet und 1 SSH Versuch von PuTTY
- Restmatches ist ein Ping und der Zugriff auf administrator.de um den Post hier zu tippen
cisco886-r2# show ip access-lists VLAN1
Extended IP access list VLAN1
10 permit udp any eq bootpc any eq bootps (1 match)
20 deny tcp 192.168.25.0 0.0.0.255 host 192.168.25.1 eq telnet 22 (3 matches)
30 permit ip 192.168.25.0 0.0.0.255 any (270 matches)
Fazit
Works as designed !! 😉Ich komme nur mit dieser Config ins Internet:
Nichts anderes sagt ja auch die dir oben gepostete Lösungs Konfig mit dem 886er. Die und deine mit der es geht sind doch völlig identisch ?! Du hast die doch völlig identisch auf deine IPs angepasst wie man oben sieht und damit klappt es ja wie du selber schreibst.Da ist es doch auch erwartbar das du damit ins Internet kommst ?!
Sorry, aber wenn es jetzt genau so geht wie es auch von der ACL logisch richtig ist und dir gesagt wurde WO ist denn jetzt genau dein Problem ??
Dann ist die ACL Frage jetzt doch richtig gelöst...oder ?!
Die Config ist nicht ganz gleich. Du hast noch diese Config drin, was ich nicht habe.
Doch hast du auch, nur das dein Internet Interface das Gi 0/0/0 ist und meins eben das "vlan 99". Welches Outbound Internet Interface man nimmt und wie das dann heisst ist doch vollkommen Wumpe ! Relevant ist doch rein nur die Interface Konfig und die ist, wie du ja selber siehst, zu deiner identisch !Kann ich den zweiten WAN Anschluss auch noch verwenden, wenn der erste ausfällt?
Natürlich ! Das ist ein Cisco und keine FritzBox. Du kannst jedes Interface dafür verwenden. Den 2ten WAN Port sowieso. Du kannst das sogar automatisieren.Eine 2te NAT_OUT ACL anzulegen dafür ist aber Blödsinn. Die unterscheidet sich doch überhaupt nicht von der ACL die dafür da ist. Wozu also doppelt ? Ist nur unsinniger Overhead. ACLs kannst du doch so oft verwenden wie du sie brauchst.
Ansonsten ist die Konfig richtig !