Dezentrales VPN mit Tinc

Die VPN-Software Tinc braucht keinen zentralen Einwahl-Server, sondern verbindet mehrere Tinc-Rechner gleichzeitig. Fällt eine der Verbindungen aus, liefert die Software die Netzwerkpakete auf dem kürzesten Weg über die verbleibenden ans Ziel.

In Pocket speichern vorlesen Druckansicht 16 Kommentare lesen
Lesezeit: 12 Min.
Von
  • Reiko Kaps
Inhaltsverzeichnis

Tinc baut über das Internet ein virtuelles privates Netz auf, das den Datenverkehr zwischen zwei oder mehr Rechnern verschlüsselt und komprimiert. Die Software benötigt dafür keinen zentralen Server, der die Zugänge verwaltet und der die Einwahl übernimmt. Stattdessen erzeugt Tinc gleichzeitig mehrere Verbindungen zu anderen VPN-Knoten. Wird eine dieser Verbindungen gekappt, erreicht der Knoten das VPN über die verbleibenden Verbindungen. Unabhängig vom eigentlichen Aufbau des VPN sorgt Tinc dafür, dass Netzwerkpakete dabei möglichst den kürzesten Weg zum Ziel finden (Mesh-Routing).

Um einen neuen Rechner in ein Tinc-VPN einzubinden, braucht die Software keine neuen VPN-Dienste oder Schnittstellenzuweisungen. Es genügt eine zusätzliche Konfigurationsdatei, die man allerdings auf den Knoten verteilen muss. Die Software verbindet einzelne Ethernet-Segmente, sodass fürs LAN geschriebene Spiele oder Anwendungen wie gewohnt funktionieren. Tinc versteht zudem das Internet Protokoll Version 6 (IPv6), über das es VPNs aufbauen und das die Software im VPN als Transport-Protokoll einsetzen kann.

Tinc läuft auf Linux, Solaris, Free- und OpenBSD und steht als Paket für Windows ab Version 2000 bereit. Bei den BSD-Unixen und den meisten Linux-Distributionen lässt sich Tinc über die Paketverwaltung nachinstallieren. Für andere wie etwa Fedora und Red Hat Linux findet sich ein RPM-Paket auf der Projekt-Website. Fertige Pakete für Mac OS X stehen nicht bereit, laut Dokumentation lässt sich Tinc jedoch auf Apples Betriebssystem aus den Quelltexten übersetzen. Auf allen Betriebssystemen benötigt die Software einen TUN/TAP-Treiber, den aktuelle Linuxe meist mitbringen und den der Windows-Installer mitliefert. Ob ein TUN/TAP-Treiber unter Linux vorhanden ist, verrät das Kommando modinfo tun. Mit lsmod | grep tun sieht man, ob er geladen wurde, was sich notfalls über den Befehl modprobe tun nachholen lässt.

Auf Windows-Systemen wechselt man nach der Tinc-Installation als Administrator ins Verzeichnis tap-win32/, das sich im Tinc-Programmverzeichnis findet. Dort startet die Batchdatei addtab.bat die Treiberinstallation. Unter Vista und Windows 7 nickt man den folgenden UAC-Dialog ab. Anschließend besitzt das Windows-System eine neue Netzwerkverbindung für das Gerät „TAP-Win32 Adapter V8“.

Soll der Tinc-Knoten Verbindungen von anderen Knoten annehmen können, benötigt er entweder eine offizielle IP-Adresse oder eine Portweiterleitung am Netzwerkrouter, der TCP- und UDP-Pakete für den frei wählbaren Tinc-Port ins LAN durchschleift. Wenn sich das lokale Tinc ausschließlich zu anderen Knoten verbinden soll, aber hinter einem NAT-Router arbeitet, der sich nicht derart manipulieren lässt, kann der jeweilige Tinc-Knoten die VPN-Daten über TCP transportieren. Verknüpft Tinc beispielsweise mehrere Firmennetze, schaltet man am Router die Port-Weiterleitung an. Von außerhalb können Mitarbeiter solche Vorgaben nicht setzen – diese Tinc-Knoten müssen daher die VPN-Daten per TCP transportieren.