VPN-Daemon im Userspace: Tinc
Einfache Verbindung
von Ralf Spenneberg
Erschienen im Linux-Magazin
2003/10
Tinc ist ein VPN-Daemon, der ohne Kernelmodifikation ganze Netze tunnelt. Besonders bei größeren VPN- Installationen wird sich der Admin über die einfache Konfiguration freuen: Zusätzliche Knoten sind deutlich schneller integriert als bei Freeswan.
Für Tinc als Alternative zum allgegenwärtigen Freeswan sprechen einige Argumente: Es benötigt kein Kernel-Patch, das Programm arbeitet nur im Userspace. Es verwendet sehr einfache Konfigurationsdateien, die Administrationsfehler fast ausschließen. Tinc kann auch Nicht-IP-Verkehr über den Tunnel transportieren und schützen: Jedes Paket, das in einen Ethernet-Rahmen passt, lässt sich auch mit dieser Technik tunneln. Freeswan schützt dagegen nur IPv4-Pakete. Schließlich ist Tinc sehr klein und schont die Host-Ressourcen; die ausführbare Datei ist lediglich 80 KByte groß, auch der laufende Prozess belegt nur wenig Speicher.
Vor- und Nachteile
Tinc weist jedoch auch einige Nachteile auf. So verwendet es kein Standardprotokoll, daher sind interoperable Lösungen zwischen verschiedenen Betriebssystemen nicht immer möglich - seit Version 1.0 ist jedoch eine native Win32-Unterstützung enthalten. Die Verschlüsselung im Userspace ist langsamer als im Kernel, da die Daten öfter kopiert werden müssen. Außerdem hatte das Protokoll in der Vergangenheit einige Schwächen (siehe Kasten "Sicherheitslücken"), die sich durch ein Standardprotokoll hätten vermeiden lassen.
Sicherheitslücken
|
|
Im August 2000 wurde eine Sicherheitslücke in dem Schlüsselaustausch von Tinc entdeckt. Die Lücke war in allen Version bis einschließlich 1.0pre2 zu finden, sie ist aber inzwischen behoben. Für den Schlüsselaustausch ist nun die bewährte OpenSSL-Bibliothek zuständig, die Authentifizierung nutzt RSA-Schlüssel mit 1024 Bit Länge.
Jerome Etienne untersuchte das Tinc-Protokoll der Version 1.0pre4 und veröffentlichte am 29. Dezember 2001 seine Ergebnisse[3]. Er bemängelte das Fehlen einer Sequenznummer und einer Paketauthentifizierung. So gab es keinen Schutz vor Replay-Angriffen oder einer Modifikation der Pakete. Diese Lücken sind seit Version 1.0pre5 geschlossen. Tinc verfügt nun wie andere VPN-Protokolle (etwa IPsec) über eine Sequenznummer und einen Message Authentication Code (MAC), mit dessen Hilfe der Empfänger jede Modifikation der Pakete erkennt.
Zudem bemerkte Jerome, dass Tinc einen sehr kurzen (nur 16 Bit) zufälligen Initialisierungsvektor (IV) verwendete. Der IV ist im CBC-Modus erforderlich, er sollte möglichst lang und einzigartig sein. Da Tinc ihn zufällig bestimmte, konnte es die Einzigartigkeit nicht garantieren. Nun verwendet das Protokoll die Sequenznummer als IV. Diese ist 32 Bit lang und (eingeschränkt) einzigartig. Leider sind durch die Überarbeitungen des Protokolls Versionen vor 1.0pre8 nicht mehr kompatibel zu den aktuellen Versionen.
Damit bestätigt sich, dass nicht standardisierte Protokolle häufig Fehler in ihrem Design aufweisen. Diese können aber im Fall von Open-Source-Produkten schnell gefunden und behoben werden. Tinc ist ein positives Beispiel für diese These.
|
Installation
Tinc ist erst kürzlich in der stabilen Version 1.0 erschienen (unter der GPL). Sie ist kompatibel zu Tinc 1.0pre8, aber nicht zu älteren Versionen. Zum Übersetzen sind OpenSSL (0.9.7), ein aktuelles »gettext«-Paket (0.12) sowie die Zlib- und die LZO-Bibliothek erforderlich.
./configure
make
make install
Da die Installation besonders auf Red Hat Linux 9 problematisch ist, stellt der Autor unter[2] RPM-Pakete für diese Distribution zur Verfügung.
Tinc verwendet für die Kommunikation mit dem Linux-Kernel entweder den »ethertap«-Treiber (Linux 2.2) oder den universellen TUN/TAP-Treiber (Linux-Kernel ab 2.4, Abbildung 1). Ob der aktuelle Kernel diese Treiber enthält, ist schnell geklärt: »modinfo tun« sollte den Pfad zum Modul ausgeben. Zudem läuft Tinc auf FreeBSD, OpenBSD, NetBSD, Solaris und Mac OS X sowie Windows. Letzteres bedient sich des Cipe-Treibers, der unter Windows 2000 und XP funktioniert - für ältere Windows-Versionen ist eine Cygwin-Umgebung nötig.

|
Abbildung 1: Im Linux-Kernel 2.4 muss unter »Network device support« der »Universal TUN/TAP device driver support« aktiviert sein. Üblicherweise ist er als Modul ausgewählt.
|
| Whitepaper |
|
Daten Migration - Eine Publikation von Bloor Research
Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.
Download PDF (Registrierung erforderlich)
|
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele
Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|