Understanding IPSec tunnels (L2L)

In meiner jetzigen Funktion beschäftige ich mich recht häufig mit L2L (LAN to LAN) Tunneln. Sie sind die ‘billige’ Möglichkeit, zwei Standorte im Vergleich zu dedizierten Zugangsschaltungen zu verbinden. Die einzige Voraussetzung ist die richtige Hardware und eine ‘always on’ statische IP an jedem Standort. Ich scherze oft, dass die Konfiguration eines L2L-Tunnels auf einem Server einfach ist und nur 20 Konfigurationszeilen in der CLI benötigt. Davon abgesehen, wie alles andere in der Netzwerkwelt, wenn Sie nicht verstehen, wie die Technologie funktioniert, werden Sie eines Tages stecken bleiben. 20 Konfigurationszeilen in eine Konsole einzugeben und tatsächlich zu verstehen, was passiert, sind zwei völlig verschiedene Dinge. In diesem Beitrag werde ich über IPSec-Grundlagen, das Erstellen von Tunneln und einige Schritte zur Fehlerbehebung sprechen, die Sie bei Problemen ausführen können.

Terminologie
IPSec (Internet Protocol Security) – Worüber wir sprechen

IKE (Internet Key Exchange) – Stellen Sie sich IKE als das Toolset vor, das zum Herstellen und Aufrechterhalten einer sicheren Verbindung zwischen zwei Endpunkten erforderlich ist. Grundsätzlich ermöglicht IKE der Verbindung, SAs (Security Associations) zu bilden und zu pflegen, die der Schlüsselteil eines IPSec–Tunnels sind

ISAKMP (Internet Security Association and Key Management Protocol) – ISAKMP ist der Standard, der definiert, wie mit SAs gearbeitet wird. Mit anderen Worten, ISAKMP kümmert sich darum, wie SAs erstellt, verwaltet, geändert und abgerissen werden. Haben Sie die Überlappung bemerkt? IKE und ISAK klingen beide schrecklich ähnlich, nicht wahr? Das liegt daran, dass sie es sind. Tatsächlich stellt Cisco dies sogar in seiner Dokumentation fest.

“Das Internet Security Association and Key Management Protocol, auch IKE genannt, ist das Verhandlungsprotokoll, mit dem sich zwei Hosts auf den Aufbau einer IPSec-Sicherheitszuordnung einigen können. Jede ISAKMP-Verhandlung ist in zwei Abschnitte unterteilt, die als Phase 1 und Phase 2 bezeichnet werden.”

Peer-Adresse – Je nach Kontext ist es entweder die öffentliche Adresse an einem Ende des Tunnels oder am anderen Ende des Tunnels.

DH (Diffie-Hellman) – DH erlaubt zwei Parteien, einen geheimen Schlüssel über einen unsicheren Kanal zu teilen. DH wird während der IKE-Phase 1 verwendet, um Schlüssel auszutauschen und einen sicheren geheimen Schlüssel einzurichten.

ISAKMP-Richtliniensätze – Ein Richtliniensatz, der den IKE-Verschlüsselungsalgorithmus, den IKE-Authentifizierungsalgorithmus, den IKE-Authentifizierungstyp, die DH-Version und die Lebensdauer des IKE-Tunnels angibt. Der ISAKMP-Richtliniensatz wird während der IKE-Phase-1-Verhandlungen verwendet. Um dies noch verwirrender zu machen, werden ISAKMP-Richtliniensätze auch entweder als ISAKMP–Transformationssätze, IKE-Transformationssätze oder einfach als einfache alte Transformationssätze

IPSec-Transformationssätze bezeichnet – Ein Transformationssatz besteht aus Einstellungen, die für die Erstellung des IPSec-Tunnels relevant sind. Der eigentliche Transformationssatz wird während der IKE-Phase 2 verwendet und besteht im Allgemeinen nur aus dem IKE-Verschlüsselungs- und Authentifizierungstyp. Wieder ist der verwirrende Teil, dass manche Leute diese Transformationssätze oft einfach nennen.

SAs (Security Associations) – Im Grunde ist es der Satz von IPSec-Parametern, auf den sich beide Seiten des Tunnels einigen. Ich werde hier einen kritischen Unterschied für diejenigen von uns in diesem Land machen. Es wird eine ISAKMP SA und eine IPSec SA geben. Während der Erstellung des IPSec-Tunnels werden mehrere Tunnel erstellt. Denken Sie daran, dass die ISAKMP SA als Ergebnis der IKE-Phase 1 und die IPSec SA als Ergebnis der IKE-Phase 2 betrachtet wird. Außerdem ist eine SA nur eine Einwegverbindung. Da der meiste Datenverkehr zwischen Endpunkten eine bidirektionale Kommunikation erfordert, erstellt jede ASA eine eigene SA, um mit dem anderen Peer zu kommunizieren.

Nonce – Eine Nummer, die normalerweise für einen sicheren Schlüssel verwendet wird und nur einmal verwendet wird. Wenn es ein zweites Mal verwendet wird, ist dies normalerweise ein Zeichen für einen betrügerischen Verbindungsversuch.

Terminologieübersicht – Die VPN-Terminologie ist wirklich, wirklich, wirklich verwirrend. Denken Sie daran, dass ISAKMP und IKE manchmal synonym verwendet werden. Darüber hinaus sind Transform-Sets ein allgemeiner Begriff für eine Gruppe von Einstellungen. Ich versuche, den Ausdruck nur zu verwenden, wenn ich mich auf das beziehe, was ich nach ‘transform-set’ in die CLI eingebe, mit der der Authentifizierungs- und Verschlüsselungstyp für die IKE-Phase 2 angegeben wird.

Der Prozess
Nun, da wir einige der wichtigsten Begriffe kennen, können wir darüber sprechen, wie sich der IPSec-Tunnel bildet. Meiner Meinung nach gibt es 4 Phasen im Leben eines IPSec-Tunnels. Ich werde sie unten auslegen und dann werden wir über sie sprechen

Phase 1 – Interessanter Verkehr erzeugt die Erstellung des Tunnels
Phase 2 – IKE Phase 1
Phase 3 – IKE Phase 2
Phase 4 – Tunnelbeendigung

Einige Leute werfen eine Phase zwischen meine Phase 3 und 4 und listen sie als ‘IPSec-Tunnel erstellt’ auf, was aus meiner Sicht eigentlich keine Phase ist. Die Auflistung des Produkts der Phasen 1 bis 3 scheint meiner Meinung nach keine eigene Phase zu rechtfertigen. Lassen Sie uns auf jeden Fall auf jeden einzelnen eingehen.

Phase 1 – Interessanter Datenverkehr erzeugt die Erstellung des Tunnels
Was viele Leute über IPSec nicht wissen, ist, dass es sich um einen On-Demand-Dienst handelt. Das heißt, sobald Sie einen Tunnel erstellt haben, ist er nicht die ganze Zeit in Betrieb. Was wir ‘interessanten Verkehr’ nennen, löst die Schaffung eines Tunnels aus. Das Erstellen des Tunnels dauert nicht sehr lange, kann aber in den meisten Fällen bemerkt werden, wenn Ping zum Testen verwendet wird. In den meisten Fällen schlägt die erste ICMP-Anforderung fehl, wenn ich versuche, von einem Client-Computer über den Tunnel zu pingen, da der Tunnel geladen wird. Nachfolgende ICMPs gehen korrekt durch. Interessanter Datenverkehr wird auf der ASA mit einer ACL definiert. Dann wird die ACL innerhalb der tunnels crypto Map mit einem ‘match address’ Befehl angegeben. Eine Beispiel-ACL könnte folgendermaßen aussehen…

access-list L2LCryptoMap extended permit ip <Local subnet> <Local mask> <Destination subnet> <Destination mask>

Sie weisen die ASA an, den von Ihrem Subnetz kommenden Datenverkehr mit dem Subnetz auf der anderen Seite des Tunnels abzugleichen. Dies wirft die Frage der doppelten privaten Subnetze auf. Wenn Ihr Subnetz an der Schnittstelle beider ASAs identisch ist, treten Probleme auf. Stellen Sie sich das so vor: Wenn ein Client auf der einen Seite versucht, zu einer Ressource im anderen Subnetz zu gelangen, wird er nirgendwo hingehen. Standardmäßig wartet der Client auf eine Antwort, da er der Ansicht ist, dass sich der Remote-Client, auf den Sie zugreifen möchten, in seinem lokalen Subnetz befindet. Da nicht versucht wird, das Subnetz zu verlassen, kontaktiert der Client niemals das Standardgateway (die interne Schnittstelle der ASA) und Sie bilden niemals einen Tunnel. Selbst wenn Sie es tun würden, würde der Verkehr immer noch nicht fließen. Es gibt einige ‘knifflige’ Dinge, die wir tun können, um dieses Problem zu beheben, aber sie fallen nicht in den Bereich dieses Blogeintrags. Die beste Situation ist, einzigartige private Netzwerke an jedem Ort zu haben.

Phase 2 – IKE Phase 1
Sobald die ASA eine Anforderung für ein Remote-Subnetz erhält, die sie mit einer Crypto Map abgleicht, beginnt IKE Phase 1. Das Ziel von IKE Phase 1 ist es, die Verbindung für die IKE Phase 2 aufzubauen. Grundsätzlich legt IKE Phase 1 den Grundstein für die eigentliche Verbindung. Es erstellt tatsächlich eine eigene SA, die manchmal als Management SA bezeichnet wird. Diese Management-SA wird von IKE Phase 2 verwendet, um die eigentlichen Datentunnel zu erstellen. Aus technischer Sicht gibt es drei Schritte zur IKE Phase 1. Der erste Schritt nennt sich Policy Negotiation. Die Richtlinienverhandlung läuft darauf hinaus, passende Transformationssätze für jeden Endpunkt zu finden. Bevor die ISAKMP SA-Formulare erstellt werden, muss sich jeder Endpunkt auf einen passenden IKE-Richtliniensatz einigen. Die folgenden Elemente müssen innerhalb der auf jeder Seite des Tunnels festgelegten Richtlinie übereinstimmen.

– Der IKE-Verschlüsselungsalgorithmus
– Der IKE-Authentifizierungsalgorithmus
– Die IKE-Schlüsseldefinition
– Die Diffie-Hellman-Version
– Die IKE-Lebensdauer

Denken Sie daran, dass IKE-Richtliniensätze mit der Fertigstellung von IKE Phase 1 verknüpft sind. Ein Endpunkt kann eine beliebige Anzahl von Richtliniensätzen haben, die in einer Reihenfolge ausgewertet werden. Beispielsweise haben Sie möglicherweise die Richtlinien 10, 20 und 30 festgelegt. Die Endpunkte durchlaufen die Richtliniensätze der Reihe nach, beginnend mit dem niedrigsten zuerst, bis sie eine Übereinstimmung finden. Daher ist es sinnvoll, zuerst stärkere Richtliniensätze zu definieren. Wenn sie nach schwächeren Richtliniensätzen definiert werden, finden Sie möglicherweise zuerst eine schwächere Übereinstimmung.

Nun, bevor wir zu viel weiter in IKE Phase 1 gehen, ist es relevant zu erklären, dass es zwei verschiedene Arten von IKE Phase 1 gibt. Der am häufigsten verwendete wird als ‘Hauptmodus’ bezeichnet und besteht aus 6 Nachrichten, die zwischen Peers ausgetauscht werden. Der andere Typ wird als aggressiver Modus bezeichnet und verdichtet die zwischen Peers gesendeten Nachrichten in 3 Nachrichten. Der Hauptmodus ist langsamer im Setup, aber sicherer. Der aggressive Modus ist schneller im Setup, aber weniger sicher. Zitiere mich nicht dazu, aber ich glaube, dass der Hauptmodus standardmäßig verwendet wird. Ich werde hier nicht auf Einzelheiten eingehen, beide erreichen dasselbe und die Details, die ich oben aufgeführt habe, sollten Sie auf die großen Unterschiede hinweisen.

Unser erster Schritt zur IKE-Phase 1 war die Richtlinienverhandlung – die Peers müssen sich auf einen passenden Richtliniensatz einigen. Sie tun dies, indem sie Richtliniensätze zum Vergleich aneinander senden und den niedrigsten übereinstimmenden Richtliniensatz finden. Sobald dies abgeschlossen ist, können wir mit dem nächsten Schritt fortfahren, dem DH-Schlüsselaustausch. Während dieses Vorgangs tauschen die Peers öffentliche Schlüssel aus, die zum Einrichten des gemeinsamen Geheimnisses verwendet werden. Nachdem dieser Prozess abgeschlossen ist, wird die Phase 1 SA (ISAKMP SA) gebildet und wir gehen zum letzten Schritt über, der Peer-Authentifizierung.

Während der Peer-Authentifizierung wird die definierte Authentifizierungsmethode verwendet, um sicherzustellen, dass nicht autorisierte Geräte keine sicheren Verbindungen zu Ihrem Netzwerk herstellen. Meistens geschieht dies mit Pre-Shared Keys. Dieser Schritt ist ziemlich einfach, die Peers überprüfen, ob die Schlüssel übereinstimmen. Andernfalls schlägt die Authentifizierung fehl. Wenn sie übereinstimmen, gehen wir zur IKE-Phase über 2.

Phase 3 – IKE Phase 2
Ich stelle mir IKE Phase 2 gerne als das eigentliche Gebäude des Datentunnels vor. Die bisherige Arbeit bestand hauptsächlich darin, sicherzustellen, dass wir über einen sicheren Kommunikationskanal verfügen, damit wir die eigentliche IPSec-SAs aufbauen können. Im Vergleich zu IKE Phase 1 hat IKE Phase 2 nur eine Art von Modus, der als ‘Quick Mode’ bezeichnet wird. Der Schnellmodus verwendet die vorhandene ISAKMP-SA, die in IKE Phase 1 erstellt wurde, erstellt die IPSec-SAs und verwaltet den Schlüsselaustausch. Der erste Schritt des Schnellmodus besteht darin, die IPSec-Richtliniensätze auszuhandeln (nicht dasselbe wie die ISAKMP-Richtliniensätze!!). Die folgenden Elemente müssen an beiden Enden übereinstimmen, damit die IPSec-SAs gebildet werden kann.

– Das IPSec-Protokoll
– Der IPSec-Verschlüsselungstyp
– Der IPSec-Authentifizierungstyp
– Der IPSec-Modus
– Die IPSec-SA-Lebensdauer

Nehmen wir uns nun einen kurzen Moment Zeit, um die Transformationssätze von IKE Phase 1 und Phase 2 zu vergleichen. Das Folgende ist eine typische Konfiguration einer ASA.

ISAKMP-Richtliniensatz
crypto isakmp-Richtlinie 10
Authentifizierung vor Freigabe
Verschlüsselung 3des
Hash sha
Gruppe 2
Lebensdauer 86400

IPSec-Transformation
crypto ipsec transform-set ESP-3DES-SHA esp-3des esp-sha-hmac

Sehen Sie etwas Seltsames? Im ISAKMP-Richtliniensatz sehen Sie deutlich die 5 erforderlichen Teile des Richtliniensatzes, die vereinbart werden müssen. In der IPSec-Transformation ist es nicht so klar. Dies liegt daran, dass die Transformation wirklich nur 3 der 5 erforderlichen Teile definiert. Das obige Beispiel definiert das IPSec-Protokoll (ESP), den IPSec-Authentifizierungstyp (SHA) und den IPSec-Verschlüsselungstyp (3DES). IPSec mode und IPSec SA lifetime müssen nicht definiert werden. Wenn dies nicht der Fall ist, nimmt die ASA einfach die folgenden Werte von 28.800 für die SA-Lebensdauer und den Tunnel-Modus für alle Transformationssätze an. Normalerweise ändere ich diese Werte nicht, es sei denn, die andere Seite hat sie geändert.

Sobald die Transformationssätze ausgehandelt und abgeglichen wurden, können wir die IPSec-SAs erstellen. Wie oben erwähnt, ist eine SA eine unidirektionale Verbindung. Damit der Datenverkehr in jede Richtung fließen kann, müssen sich zwei IPSec-SAs bilden. Die ASA erledigt diese Arbeit natürlich für Sie, daher gibt es hier nicht viele Details zu teilen. Der Schnellmodus verwendet Nonces, um neues Schlüsselmaterial zu generieren, das Wiederholungsangriffe verhindert. Der dritte Schritt ist das periodische Neuverhandeln der Verbindung. Die SAs müssen vor Ablauf der Lebensdauer des Tunnels neu generiert werden. Der Schnellmodus überwacht dies und generiert neue SAs, bevor die alten ablaufen.

Phase 4 – Tunnelabschluss
An dieser Stelle haben wir einen voll funktionsfähigen VPN-Tunnel! Der Verkehr sollte in beide Richtungen fahren. Das einzige, was noch zu tun ist, ist den Tunnel abzureißen, wenn es keinen interessanten Verkehr gibt. Die SAs werden nur regeneriert, wenn weiterhin interessanter Datenverkehr fließt. Wenn interessanter Datenverkehr nicht mehr eingeht, darf die SA nach Erreichen ihrer Lebensdauer ablaufen. Wenn die SA ablaufen darf, werden ALLE Daten bezüglich der SAS aus der SA gelöscht. Wenn das nächste Mal interessanter Datenverkehr generiert wird, beginnt der gesamte Prozess von vorne.

Fehlerbehebung
Das häufigste Problem bei der IPSec-Konnektivität besteht darin, keine Übereinstimmungen der Transformationssätze für IKE Phase 1 und 2 zu finden. Wenn Sie auf Probleme stoßen, sollten Sie als erstes immer die Einstellungen auf beiden Seiten überprüfen, um sicherzustellen, dass sie zu 100% übereinstimmen. Als nächstes können Sie sich die SAs auf der ASA ansehen und feststellen, ob sie erstellt wurden und welchen Status sie haben.

Um die IKE Phase 1 SA zu sehen, geben Sie diesen Befehl aus
ASA# show crypto isakmp sa

Um die IKE Phase 2 SA zu sehen, geben Sie diesen Befehl aus
ASA# show crypto ipsec sa

Wenn Sie keine Phase 1 SA haben, werden Sie nicht sehr weit kommen. Der Zustand der SA sagt Ihnen ein paar Dinge. Es sagt Ihnen, ob die SA mit Haupt- oder aggressiven Modus erstellt wurde, welche Seite brachte den Tunnel nach oben, und sagt Ihnen auch den Status der Verhandlungen. Ein Blick auf eine typische Phase 1 SA ist unten gezeigt.

ASA# zeige crypto isakmp sa
Aktive SA: 1
Rekey SA: 0 (Ein Tunnel meldet 1 Aktive und 1 Rekey SA während Rekey)
Gesamt-IKE-SA: 1

1 IKE-Peer: <Peer-IP-Adresse>
Typ: L2L Rolle: Responder
Rekey: nein Status: MM_ACTIVE

Wie Sie der obigen Ausgabe entnehmen können, haben wir eine IKE Phase 1 Sa. Der Typ ist ‘L2L’ (was bedeutet, dass es sich um einen IPSec-Tunnel von Site zu Site handelt), die Rolle ist ‘Responder’ (was bedeutet, dass der Peer den Tunnel aufgerufen hat) und der Status ist MM_Active (was bedeutet, dass der Hauptmodus verwendet wird (MM) und die IKE-Phase 1 funktioniert (AKTIV)). MM_ACTIVE ist das, was wir auf einer Phase 1 IKE SA sehen wollen. Das bedeutet, dass alles für die IKE-Phase 2 bereit ist. Was sollten Sie also tun, wenn Sie den AKTIVEN Status nicht haben? Oder gar keine SA?

Es gibt mehrere andere Zustände, die Sie darauf hinweisen können, was mit der ISAKMP SA los ist.

Hinweis: Diese Statuscodes gelten nur für die neuere ASA-Version, der ältere IPSec-Code verwendet andere Statusmeldungen.
Die ersten beiden Buchstaben geben an, ob die Verbindung im Hauptmodus (MM) oder im aggressiven Modus (AM) hergestellt wurde. Da es sich entweder um einen Haupt- oder einen aggressiven Modus handeln kann, werde ich ihn unten einfach als ‘XX’ auflisten. Zugegeben, Sie werden nur einige von ihnen entweder im Haupt- oder im aggressiven Modus sehen. Die Definitionen, die ich für jeden Staat aufliste, sind das, was ich in den meisten Fällen als Problem empfunden habe.

XX_Active – Verbunden
XX_KEY_EXCH – Authentifizierungsfehler, überprüfen Sie Ihre Authentifizierungsmethode
XX_INIT_EXCH – Authentifizierungsfehler, überprüfen Sie Ihre Authentifizierungsmethode
XX_NO_STATE – Kann nicht mit IKE Phase 1–Richtlinien übereinstimmen, überprüfen Sie auf jeder Seite
XX_WAIT_MSG2 – Warten auf die Antwort des Peers

Außerdem, wenn SA überhaupt, Beginnen Sie mit der Überprüfung der offensichtlichen. Beginnen Sie bei Schicht 1 und arbeiten Sie sich nach oben, um sicherzustellen, dass beide Einheiten über Konnektivität verfügen und die Peer-Adressen korrekt sind.

In 99% der Fälle liegt ein Problem bei der IKE Phase 1 SA. Wenn Sie in Phase 1 AKTIV sind, sind Sie wahrscheinlich in guter Verfassung. Wenn Sie immer noch Probleme haben, werfen Sie einen Blick auf Ihre IKE Phase 2 SA. Ich werde kein Beispiel von einem zeigen, da es meistens nur Statistiken sind. Das gleiche Konzept gilt jedoch, wenn Sie keinen IPSec-Server haben, haben Sie keinen VPN-Tunnel.

Debugging
Wenn Sie immer noch Probleme haben, wie alles andere auf der ASA, versuchen Sie es mit dem Debuggen. Die beiden Befehle, nach denen Sie suchen, wären …

ASA # debug crypto isakmp
ASA # debug crypto ipsec
ASA # terminal monitor

Stellen Sie sicher, dass Sie terminal monitor aktivieren, wenn Sie sich nicht am Konsolenport befinden

Der große Fix
Ich kann Ihnen nicht sagen, wie oft ich stundenlang versucht habe, einen Tunnel ohne Erfolg zu laden. Am Ende haben zwei Befehle immer meine Probleme behoben. Wenn alles andere fehlschlägt, löschen Sie alle Ihre ISAKMP- und IPSEC-SAs. Dadurch werden natürlich ALLE IPSec-Verbindungen zur Box weggeblasen. Etwas daran, einfach alle anderen Verbindungen wegzublasen und von vorne anzufangen, scheint das Problem zu beheben. Hierzu….

ASA# clear crypto ipsec sa
ASA# clear crypto isakmp sa

Fazit
Ich hoffe, Sie haben in diesem Artikel gesehen, dass ein grundlegendes Verständnis der Funktionsweise von IPSec einen großen Unterschied macht. Zu wissen, wo nach Fehlern gesucht und wie sie interpretiert werden müssen, ist der Schlüssel zur Fehlerbehebung bei IPSec L2L-Tunneln.

Leave a Reply