Dienstag, 5. Juni 2012


Topthema

Donnerstag, 29. März 2007 | Topthema

About Security #98: Virtuelle Private Netze — OpenVPN

(Link zum Artikel: http://www.entwickler.de/php/kolumnen/035100)
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

Um zwischen zwei Rechnern (oder Gateways) eine OpenVPN-Verbindung aufzubauen, muss man "nur" auf beiden die entsprechende Software installieren und zueinander passend konfigurieren (wie fast immer, wenn zwei Rechner miteinander kommunizieren sollen). Details erspare ich mir, die gibt es in den entsprechenden Handbüchern, Anleitungen und HowTos reichlich. Stattdessen sollen nur die notwendigen grundlegenden Entscheidungen beschrieben werden.

TCP oder UDP auf der Transportschicht?

Wie in About Security #97 erwähnt, kann OpenVPN sowohl TCP als auch UDP für den Transport nutzen. Werden (überwiegend) TCP-Pakete über die OpenVPN-Verbindung übertragen, sollte UDP für die Übertragung verwendet werden. Beim Transport von UDP-Paketen spricht nichts dagegen, die höhere Zuverlässigkeit der TCP-Verbindung zu nutzen, ebenso kann UDP aber auch problemlos über UDP übertragen werden. Nur der Transport von TCP über TCP ist zwar theoretisch möglich, praktisch aber eine schlechte Wahl. Das verbindungsorientierte TCP mit seiner Fehlerkontrolle erkennt nicht angekommene Pakete am Fehlen der dazugehörigen Bestätigung: Wird nicht innerhalb einer bestimmten Timeout-Zeitspanne eine Bestätigung empfangen, wird das Paket erneut gesendet. Um sich an unterschiedliche Leitungsbedingungen anzupassen, werden diese Timeout-Werte bei laufender Verbindung angepasst – insbesondere erhöht, wenn sie als zu niedrig erkannt werden.

N E U ! Security aktuell
Täglich aktuelle Security-Infos!

Beim "Übereinanderschichten" zweier TCP-Schichten kann sich dieser eigentlich sehr sinnvolle Mechanismus aufschaukeln und die Verbindung komplett lahmlegen. Beim Start haben beide TCP-Schichten unterschiedliche Timeout-Werte. Ist die obere Schicht schnell und die untere aufgrund einer vorher schlechten Verbindung langsam, ist der Timeout-Wert für die obere Schicht gering, für die untere hoch. Gehen nun auf der unteren Schicht Pakete verloren, werden sie erneut gesendet und der Timeout-Wert erhöht. Jetzt wartet aber die obere Schicht zu lange auf ihre Bestätigungen und sendet ihre Pakete ebenfalls erneut. Da ihr Timeout-Wert niedriger als der der unteren Schicht ist, will sie die Pakete schneller erneut senden, als die untere Schicht sie verarbeiten kann. Dies führt sehr schnell dazu, dass die obere Schicht komplett lahmgelegt wird. Zwar ist die erneute Übertragung fehlender Pakete durch die obere Schicht vollkommen überflüssig, da die untere bereits für eine gesicherte Übertragung sorgt, TCP wurde jedoch für die Übertragung über unzuverlässige Verbindungen konzipiert und setzt deshalb die Fehlerkontrolle zwingend ein.

Routing oder Bridging?

Welche der beiden in About Security #97 beschriebenen Betriebsarten verwendet wird, hängt im Wesentlichen vom Einsatzzweck (siehe auch About Security #88) ab: Sollen nur zwei Rechner miteinander verbunden werden (Host-to-Host-VPN), ist die Betriebsart Routing ideal. Soll im Rahmen eines Site-to-Site- oder Site-to-End-VPN auf ein hinter einem Gateway gelegenes lokales Netz zugegriffen werden, ist meist Bridging die bessere Wahl. Die für das jeweils andere lokale Netz bestimmten Pakete werden dann transparent von den OpenVPN-Gateways über den OpenVPN-Tunnel an das jeweils andere OpenVPN-Gateway übertragen und von diesen in sein lokales Netz weitergeleitet.

Vor- und Nachteile der Betriebsarten:

Beim Routing können nur IP-Pakete übertragen werden. Zudem müssen die Routen zu den einzelnen Rechnern bzw. lokalen Netzen manuell auf den einzelnen Rechnern bzw. den Standardgateways konfiguriert und gewartet werden. Dafür ist die Netzwerkbelastung niedriger als beim Bridging. Die Vorteile des Bridging sind seine einfachere Konfiguration sowie der transparente Zugriff auf das angebundene lokale Netz samt der Übertragung von Broadcasts.

About Security: Die komplette Serie

Die Auswahl der Betriebsart erfolgt im Wesentlichen durch die Wahl des zu verwendenden virtuellen Interfaces: Für das Routing werden so genannte TUN-Devices verwendet, für das Bridging TAP-Devices.

Pre-Shared-Keys oder Zertifikate?

OpenVPN kann für die Authentifizierung sowohl Zertifikate als auch vorher ausgetauschte symmetrische Schlüssel, die so genannten Pre-Shared-Keys, verwenden. Beim Einsatz eines Pre-Shared-Keys wird die OpenVPN-Verbindung mit diesem Schlüssel verschlüsselt: Wer den Schlüssel kennt, darf an der Verbindung teilnehmen. Das bedeutet aber auch: Jeder, der an den Schlüssel gelangt, kann den getunnelten Verkehr belauschen. Entsprechend muss der Schlüssel ausgetauscht werden, sobald der Verdacht besteht, er könnte Dritten bekannt geworden sein. Sicherer ist daher der Einsatz von Zertifikaten, durch die auch der vorherige Schlüsselaustausch entfällt. Die Authentifizierung erfolgt auf Basis der asymmetrischen, zertifizierten Schlüssel, der Schlüssel für die symmetrische Verschlüsselung wird erst nach der erfolgreichen Authentifizierung berechnet.

In der nächsten Folge wird das Thema "Virtuelle Private Netze" abgeschlossen, u.a. mit einer vergleichenden Übersicht über die vorgestellten Verfahren.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security – Übersicht zum aktuellen Thema "VPN - Virtuelle Private Netze"

Kommentare

Folgende Links könnten Sie auch interessieren