Peter Kloep

A+ R A-

NAT-Traversal

  • Hauptkategorie: FAQs
  • Kategorie: Security
  • Zuletzt aktualisiert: Donnerstag, 06. September 2012 17:38
  • Veröffentlicht: Freitag, 15. September 2006 07:26
  • Geschrieben von Peter Kloep
  • Zugriffe: 23669
Das IETF hat vorgeschlagen, daß der IPSec-Traffic vom VPN Server in ein UDP-Paket gepackt wird, dessen Header nicht durch das EPS verändert wird. Das AH kann an dieser Stelle vernachlässigt werden.
Diese Art des UDP-Tunnelns erlaubt es, daß Quellport und -adresse durch das NAT-Gerät geändert werden und keine Änderungen am ESP-Paket durchgeführt werden müssen. Wenn ein solches Paket nun am VPN Server ankommt, wird der UDP-Header entfernt und das IPSec-Paket kann ganz normal bearbeitet werden.

Der VPN Server führt eine Prüfung durch ob es sich bei ankommenden Packeten um IPSec oder IPSec NAT Traversal (Überquerung) Paket handelt. Die benötigten Parameter für IPSec NAT Traversal werden zwischen Client und Server durch das NAT Traversal Protokoll ausgehandelt. Dieser Vorgang lässt sich wie folgt beschrieben:
  1. VPN Server und Client tauschen eine herstellerspezifische ID (einen MD5 Hash) aus - damit bestätigen beide Seiten, daß sie NAT Traversal unterstützen

  2. NAT-Discovery wird durchgeführt - dabei wird festgestellt welcher Teilnehmer sich hinter einem NAT-gerät befindet. Das ist insofern wichtig, da der Partner, der sich hinter einem NAT-Gerät befindet, aller 9 Sekunden eine keep-alive Nachricht senden muß. NAT Discovery untersucht die Quell- und Zieladresse um festzustellen, welcher Partner hinter einem NAT-Device ist.

  3. IPSec NAT Traversal wird nun zwischen VPN Server und Client genutzt, wenn ein NAT-Gerät festgestellt wurde. Server und Client nutzen UDP-gekapselte ESP Pakete im Tunnel- oder Transportmodus.

  4. So gekapselte Pakete werden an den Zielport 500 gesendet. Dies ist der gleiche Port wie für das Internet Key Exchange Protocol (IKE). Der Port kann sowohl von NAT Traversal als auch nicht NAT Traversal Packeten genutzt werden. Dies funktioniert, da der Client die 8 Byte des IKE Feldes im UDP Header mit Null überschreibt und so eine Identifizierung möglich ist.

  5. Während der VPN-Session sendet der Client alle 9 Sekunden eine keep-alive Nachricht an den Server. Dies ist wichtig, damit die Verbindung nicht abbricht. Wenn dies passiert und eine neue Verbindung aufgebaut wird, wird ein neuer Port vergeben und die Sicherheit der Verbindung ist nicht mehr gewährleistet.
IPSec NAT Traversal löst viele Probleme in Verbindung mit NAT-Geräten und VPN - jedoch nicht alle. Das Hauptproblem bei Protokollen wie FTP, H.323, LDAP und vielen weiteren liegt darin, daß die Quell-IP-Adresse im Applikations-Layer vermerkt ist. Ein NAT-Gerät kann diese Informationen durch einfache NAT-Editoren überschreiben. Dies geht aber bei der Verwendung von IPSec NAT Traversal nicht, da der Applikations-Layer durch ESP verschlüsselt ist, wenn er das NAT-Device passiert.