{"id":4562,"date":"2014-01-02T17:25:21","date_gmt":"2014-01-02T16:25:21","guid":{"rendered":"http:\/\/security-planet.de\/?p=4562"},"modified":"2014-01-02T17:25:21","modified_gmt":"2014-01-02T16:25:21","slug":"cisco-ios-interface-acls-fuer-vpns","status":"publish","type":"post","link":"https:\/\/cyber-fi.net\/index.php\/2014\/01\/02\/cisco-ios-interface-acls-fuer-vpns\/","title":{"rendered":"Cisco IOS: Interface-ACLs f\u00fcr VPNs"},"content":{"rendered":"<p>Jeder Router, der mit dem Internet verbunden ist, sollte mit einer eingehenden Access-Liste (ACL) auf dem externen Interface konfiguriert sein, der den Zugriff auf den Router einschr\u00e4nkt. In diesem Beitrag zeige ich, wie so eine ACL aussehen kann.<\/p>\n<p><em>Anmerkung1<\/em>: Die gezeigte Konfig gilt nur f\u00fcr IOS-Versionen 12.4+. Bei \u00e4lteren IOS-Releases ist etwas mehr Konfiguration notwendig.<br \/>\n<em>Anmerkung2<\/em>: Dies gilt nicht f\u00fcr die ASA da dort so eine ACL nicht ben\u00f6tigt wird. Auf der ASA filtert die Interface-ACL standardm\u00e4\u00dfig nur den durch die ASA durchgehenden Traffic, aber nicht den Traffic, der zur ASA selbst gesendet wird.<\/p>\n<p>Die folgenden Beispiele basieren auf der folgenden Topologie:<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.iwen.de\/wp-content\/uploads\/2014\/01\/vpn-interface-acls.jpg\" alt=\"VPN-Interface-ACLs\" width=\"472\" height=\"355\" class=\"aligncenter size-full wp-image-4563\" srcset=\"https:\/\/cyber-fi.net\/wp-content\/uploads\/2014\/01\/vpn-interface-acls.jpg 472w, https:\/\/cyber-fi.net\/wp-content\/uploads\/2014\/01\/vpn-interface-acls-300x226.jpg 300w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/p>\n<p><em>Voraussetzungen:<\/em><br \/>\nDer Router sollte mit einer Stateful-Firewall-Konfig versehen sein, die Antwort-Pakete auf selbst generierten Traffic ohne ACEs erlaubt. Das ist Bestandteil der Baseline-Security und vereinfacht die Konfiguration. In diesen Beispiel wird das \u00e4ltere CBAC verwendet, da es deutlich einfacher zu verstehen und implementieren ist, als die leistungsf\u00e4higere Zone-Based-Firewall:<\/p>\n<pre class><code>ip inspect name FW ftp\nip inspect name FW tcp router-traffic\nip inspect name FW udp router-traffic\nip inspect name FW icmp router-traffic\n!\ninterface GigabitEthernet0\/0\n  ip access-group SITE-A-INTERNET-IN in\n  ip inspect FW out\n!\nip access-list extended SITE-A-INTERNET-IN\n  deny ip any any<\/code><\/pre>\n<p>Basierend auf dieser Konfiguration wird die ACL mit den ben\u00f6tigten ACEs erg\u00e4nzt.<\/p>\n<p><strong>Scenario 1: Site-to-Site VPNs mit statischen VPN-Peers<\/strong><br \/>\nBei diesem einfachen Beispiel wird angenommen, dass alle Peers eine statische public IP haben, die zwischen den beiden Gateways nicht genatted werden. Der in der ACL ben\u00f6tigte Traffic ist IP-Protocol 50 (ESP) und UDP\/500 (ISAKMP). Viele Beispiele im Internet haben auch ACEs f\u00fcr IP\/51 (AH), dies wird aber normalerweise nicht f\u00fcr VPNs verwendet.<\/p>\n<p>Als erstes wird eine Object-Group f\u00fcr alle VPN-Peers erstellt (Object-Groups ben\u00f6tigen mindestens IOS 12.4(20)T+):<\/p>\n<pre class><code>object-group network IPSEC-PEERS\n  host 198.51.100.1\n  host 203.0.113.1<\/code><\/pre>\n<p>Dann wird in der ACL der ESP- und ISAKMP-Traffic von den VPN-Peers zum Router-Interface erlaubt:<\/p>\n<pre class><code>ip access-list extended SITE-A-INTERNET-IN\n  permit esp  object-group IPSEC-PEERS host 192.0.2.1\n  permit udp  object-group IPSEC-PEERS host 192.0.2.1 eq isakmp\n  permit icmp object-group IPSEC-PEERS host 192.0.2.1 echo<\/code><\/pre>\n<p>Die letzte Zeile ist f\u00fcr die VPN-Funktionalit\u00e4t nat\u00fcrlich nicht n\u00f6tig, erleichtert aber das Troubleshooting.<\/p>\n<p><strong>Scenario 2: VPN-Peers hinter einem NAT-device mit statischen IPs<\/strong><br \/>\nWenn ein oder beide IPsec-Peers sich hinter einem NAT-Device befinden, dann verwendet IPsec NAT-Traversal, das auch mit UDP\/500 anf\u00e4ngt, aber dann auf UDP\/4500 wechselt.<\/p>\n<p>Daf\u00fcr werden die folgenden Eintr\u00e4ge ben\u00f6tigt:<\/p>\n<pre class><code>ip access-list extended SITE-A-INTERNET-IN\n  permit esp  object-group IPSEC-PEERS host 192.0.2.1\n  permit udp  object-group IPSEC-PEERS host 192.0.2.1 eq isakmp non500-isakmp\n  permit icmp object-group IPSEC-PEERS host 192.0.2.1 echo<\/code><\/pre>\n<p>Die Eintr\u00e4ge in der Object-Group sind weiterhin die public IPs der Router, nicht die realen IP-Adressen der Router.<br \/>\nWenn alle Router hinter einem NAT-Device sind, dann wird der ACL-Eintrag f\u00fcr ESP (IP\/50) nicht ben\u00f6tigt, da dann der gesamte User-Traffic \u00fcber UDP\/4500 gesendet wird.<\/p>\n<p><strong>Scenario 3: IPsec-Peers mit dynamischer IP-Adresse<\/strong><br \/>\nDies ist das typische Remote-Access-Scenario, oder aber auch verwendet, wenn z.B. Branchoffices mit g\u00fcnstigen Kabel- oder DSL-Anschl\u00fcssen betrieben werden, f\u00fcr die keine festen IPs verf\u00fcgbar sind. Daraus resultiert die folgende ACL:<\/p>\n<pre class><code>ip access-list extended SITE-A-INTERNET-IN\n  permit esp any host 192.0.2.1\n  permit udp any host 192.0.2.1 eq isakmp non500-isakmp\n  ! generally allow ping from the internet if your security-policy allows that:\n  permit icmp any host 192.0.2.1 echo<\/code><\/pre>\n<p>In diesem Scenario wird die Object-Group mit den IPsec-Peers nicht ben\u00f6tigt, da deren IP im Vorwege sowieso nicht bekannt sind.<\/p>\n<p>Viel Spa\u00df beim Absichern der VPNs!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jeder Router, der mit dem Internet verbunden ist, sollte mit einer eingehenden Access-Liste (ACL) auf dem externen Interface konfiguriert sein, der den Zugriff auf den Router einschr\u00e4nkt. In diesem Beitrag zeige ich, wie so eine ACL aussehen kann. Anmerkung1: Die gezeigte Konfig gilt nur f\u00fcr IOS-Versionen 12.4+. Bei \u00e4lteren IOS-Releases ist etwas mehr Konfiguration notwendig. <\/p>\n<div class=\"read-more-text\"><a href=\"https:\/\/cyber-fi.net\/index.php\/2014\/01\/02\/cisco-ios-interface-acls-fuer-vpns\/\" class=\"read-more\">continue reading<\/a><\/div>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"twitterCardType":"","cardImageID":0,"cardImage":"","cardTitle":"","cardDesc":"","cardImageAlt":"","cardPlayer":"","cardPlayerWidth":0,"cardPlayerHeight":0,"cardPlayerStream":"","cardPlayerCodec":"","footnotes":""},"categories":[7],"tags":[44,46,146,317,646],"class_list":["post-4562","post","type-post","status-publish","format-standard","hentry","category-cisco-security","tag-access-control-lists","tag-acl","tag-cisco-ios","tag-ipsec","tag-vpn"],"_links":{"self":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/posts\/4562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/comments?post=4562"}],"version-history":[{"count":0,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/posts\/4562\/revisions"}],"wp:attachment":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/media?parent=4562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/categories?post=4562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/tags?post=4562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}