Open Source im professionellen Einsatz
Linux-Magazin 06/2014
© Sophie McAulay, 123RF

© Sophie McAulay, 123RF

Ein VPN für fast alle Protokolle

Alleskönner mit Problem

Linux kommt mit verschiedenen VPN-Lösungen klar: Mit IPsec- und L2TP-VPN-Verbindungen genauso wie mit dem weitverbreiteten Open VPN. Will ein Administrator aber mehrere dieser Protokolle gleichzeitig anbieten, kann er nun auf eine Lösung zurückgreifen, die alles unter einem Dach bietet.

1465

Softether wurde an der Universität von Tsukuba in Japan im Rahmen einer Diplomarbeit entwickelt und 2013 von Daiyuu Norobi zum freien Download bereitgestellt. Neben zwei eigenen Protokollen unterstützt die Software IPsec, L2TP, Microsofts SSTP und Open VPN. Damit sind Windows, Mac OS X, Android und I-OS als Clients abgedeckt, ohne dass der Anwender auf einem der Geräte einen extra Client installieren muss.

Im Internet stellt das Projekt [1] sich im Vergleich zu Open VPN dar und behauptet, Gigabit-Tempo zu beherrschen, was im Vergleich zu den 100 MBit/s für Open VPN eine Beschleunigung um den Faktor 10 wäre. Das bestätigte sich jedoch im Test des Linux-Magazins nicht.

Die Software steht für Linux, Mac OS X, Windows, Solaris und Free BSD bereit. Dabei gibt es Linux-Binaries für x86 (32 und 64 Bit), ARM, MIPS, Power PC sowie SH-4. Bei Solaris lassen sich Sparc- oder Intel-CPUs mit 32 und 64 Bit verwenden. Mac OS X unterstützt die Software in allen CPU-Architekturen seit dem G4. Free BSD sowie Windows sind nur auf Intel-CPUs möglich.

Wenn an beiden Enden der Verbindung die Softether-Software im Einsatz ist und die konfigurierten Ports zum Beispiel aus Sicherheitserwägungen gesperrt sein sollten, dann weicht die Software automatisch auf Port 53 beziehungsweise ICMP (Ping-Pakete) aus, um den verschlüsselten Payload zu übertragen.

Zum Aufbau einer VPN-Verbindung gehört auch die Authentisierung. Dabei unterstützt Softether sowohl Preshared Keys als auch eine Zertifikat-basierte Anmeldung. Client-seitig (für Remote-Access-VPNs) kommen sogar Smartcards in Frage. Neben einer eigenen Benutzerdatenbank kann der Softether-Server auf Active Directory oder Radius zugreifen.

Die Projektseite bietet Links zu Downloads an. Abgesehen von der Windows-Version erhält der Anwender ein komprimiertes Tar-Archiv, das Bibliotheken und ein passendes Makefile enthält.

Eine einfache Installation

Zur Installation ist bei allen Unix-Derivaten eine GCC-Entwicklungsumgebung notwendig. Nach dem Aufruf von »make« entstehen zwei Binaries: »vpncmd« , der Kommandozeilenclient, und – je nach heruntergeladener Software – ein Binary namens »vpnclient« , »vpnbridge« oder »vpnserver« .

Der Admin startet die Software durch das Kommando »vpnserver|bridge|client start« . Die Anleitung verschweigt leider, dass er vor dem Start notwendige Kernelmodule laden muss. Das betrifft auf jeden Fall das Modul für Softethers TAP-Interfaces (die via Layer 2 arbeiten und ein Ethernet-Gerät simulieren). Beim VPN-Server sind auch die l2TP-Module notwendig, sofern der Kompatibilitätsmodus Verwendung findet.

Nach dem Start (und der Bestätigung der Lizenz beim ersten Aufruf) ruft der Administrator »vpncmd« auf. Das Kommando fragt zunächst ab, ob der Anwender einen Server oder eine Bridge oder einen Client konfigurieren will. Im zweiten Schritt geht es darum, wo die Softether-Komponente laufen soll, deren Konfiguration der Administrator in Angriff genommen hat. Drückt er hier einfach die [Enter]-Taste, erfolgt die Installation auf dem lokalen Host. Es existiert auch ein GUI-Client, der aber nur für Windows bereitsteht (Abbildung 1).

Die Grundkonfiguration des Servers besteht aus den folgenden Schritten:

  • Anlegen eines virtuellen Hub (einer mit Namen »DEFAULT« existiert bereits) und Auswahl desselben.
  • Benutzer anlegen, gegebenenfalls auch Gruppen, wenn komplexere Zugriffsrechte abzubilden sind.
  • Anlegen einer Bridge, die die Pakete, die im virtuellen Hub ankommen, an ein echtes Netzwerkinterface weiterleitet. Dies entspricht Open VPN im TAP-Modus. Soll das VPN geroutet werden, lässt sich dies nachbilden.
Abbildung 1: Das native Softether-Administrations-GUI gibt es nur für Windows.

Die Bedienung des Kommandozeilen-Clients ist etwas gewöhnungsbedürftig. Zwar besitzt er eine Kommando-Historie, aber er verfügt über keine Funktion für die Autovervollständigung via Tabulatortaste, wie dies bei gängigen Shells und auch den meisten Interpretern von Netzwerkkomponenten üblich ist. Dafür darf der Administrator Kommandos aber abkürzen, indem er nur so viele Zeichen des Kommandos eingibt, bis es eindeutig ist. Es existiert auch eine Onlinehilfe (»help« oder »?« ).

Gibt der Admin nur den nicht eindeutigen Anfang eines Kommandos ein, etwa »User« , erhält er von »vpncmd« alle Kommandos, die so beginnen samt einer kurzen Funktionsbeschreibung. Mit »help vollständiges Kommando« gibt »vpncmd« eine detaillierte Hilfe aus. Wenn Kommandos Parameter benötigen, können diese entweder auf der Kommandozeile mitgegeben werden (in DOS-Kommandozeilen-Schreibweise »/Parametername:Wert« ) oder die Software fragt sie einzeln ab.

Listing 1 zeigt das Anlegen eines virtuellen Hub mit dem Namen »LM-Test« und des Benutzers »testi« (ohne Gruppe) sowie das Binden dieses virtuellen Hub an das physische Interface »eth1« .

Es ist anzumerken, dass der Admin zum Anlegen der Bridge aus dem Administrationsmodus des Hub wieder auf die Hauptebene wechseln muss. Trotzdem wird dieses Kommando manchmal mit der Antwort »Not enough privileges« beantwortet. In dem Fall beendet der Administrator den Client und startet ihn nochmals neu.

Listing 1

Grundkonfiguration des Servers

01 VPN Server>HubCreate LM-Test
02 HubCreate command - Create New Virtual Hub
03 Please enter the password. To cancel press the Ctrl+D key.
04
05 Password: *******
06 Confirm input: *******
07
08
09 The command completed successfully.
10
11 VPN Server/LM-Test>usercreate
12 UserCreate command - Create User
13 User Name: testi
14
15 Assigned Group Name:
16
17 User Full Name: Testi Tester
18
19 User Description:
20
21 The command completed successfully.
22
23 VPN Server/LM-Test>userpasswordset
24 UserPasswordSet command - Set Password Authentication for User Auth Type and Set Password
25 User Name: testi
26
27 Please enter the password. To cancel press the Ctrl+D key.
28
29 Password: ********
30 Confirm input: ********
31
32
33 The command completed successfully.
34
35 VPN Server/LM-Test> hub
36 Hub command - Select Virtual Hub to Manage
37 The command completed successfully.
38
39 VPN Server>BridgeCreate
40 BridgeCreate command - Create Local Bridge Connection
41 Virtual Hub Name to Create Bridge: LM-Test
42
43 Bridge Destination Device Name: tap1

Es fehlt nur noch die Konfiguration des Clients, die Listing 2 zeigt. Dazu konfiguriert der Admin den Benutzernamen sowie die IP-Adresse und den Port des VPN-Servers. Durch das Kommando »AccountConnect« verbindet sich der Client mit dem Server, nachdem er nach dem Verbindungsnamen gefragt hat. Ob alles funktioniert hat, lässt sich auf dem Server in der Datei »VPN-Server-Dir/server_log/vpn_Datum.log« überprüfen.

Auf dem Client stellt Softether das Kommando »AccountStatusGet« bereit. Hat er sich erfolgreich verbunden, findet der Admin auf dem Client das neue Interface »vpn_vpn« vor (das zweite »vpn« entspricht hier dem Namen, der in der Konfiguration angegeben wurde). Dabei handelt es sich um ein TAP-Interface. Was jetzt allerdings noch fehlt, das ist die IP-Konfiguration. Softether pusht keine IP-Adressen oder Routen in einer solch einfachen Konfiguration. Es gibt auch kein konfigurierbares IP-up-Skript (oder etwas Ähnliches).

Damit der Client sich nun auch mit anderen Rechnern unterhalten kann, sollte ein DHCP-Server auf der Seite des VPN-Servers arbeiten und auf dem Client ein DHCP-Client starten, der Adressen einfordert. Admins sollten bei einem Test beachten, dass das Interface, zu dem die Bridge führt, von einem Client aus nicht anpingbar ist.

Listing 2

Konfiguration des Clients

01 VPN Client>AccountCreate
02 AccountCreate command - Create New VPN Connection Setting
03 Name of VPN Connection Setting: LM-Test
04
05 Destination VPN Server Host Name and Port Number: 192.168.20.1:443
06
07 Destination Virtual Hub Name: LM-Test
08
09 Connecting User Name: testi
10
11 Used Virtual Network Adapter Name: vpn
12
13 The command completed successfully.
14
15 VPN Client>AccountPasswordSet
16 AccountPasswordSet command - Set User Authentication Type of VPN Connection Setting to Password Authentication
17 Name of VPN Connection Setting: LM-Test
18
19 Please enter the password. To cancel press the Ctrl+D key.
20
21 Password: *******
22 Confirm input: *******
23
24
25 Specify standard or radius: standard
26
27 The command completed successfully.

Verbindungen bündeln

Wie die Dokumentation erläutert, arbeitet Softether mit mehreren parallel geschalteten Verbindungen (TCP oder UDP), die logisch einen Tunnel implementieren. Das beschleunigt laut Aussage des Projekts Verbindungen und macht sie auch ausfallsicherer.

Erreicht der Client den Server nicht auf dem konfigurierten Port, versucht er es mit zwei Ausweichstrategien. Die verschlüsselten Pakete werden über Port 53/UDP gesendet, um sich als DNS-Pakete zu tarnen. Wenn das auch nicht hilft, schaltet Softether auf Übertragung via ICMP um und packt die Daten als Nutzlast in ICMP-Echo-Pakete.

Das sind keine neuen Ideen, es war schon immer möglich, beispielsweise Open VPN auf Port 53 zu packen, und es gibt auch VPN-Lösungen, die Nutzdaten in ICMP Pakete kapseln. Immerhin sehen die Pakete auf Port 53 wie gültige DNS Pakete aus. Allerdings geht Softether dabei nicht so weit wie Iodine, das gültige Anfragen über eine DNS-Server-Infrastruktur sendet. Die Pakete halten lediglich einem Check durch ein Intrusion-Detection-System oder intelligenten Firewalls stand. Aber dazu mehr im Abschnitt über die Sicherheit.

Auf dem Server ist konfigurierbar, wie viele TCP- oder UDP-Verbindungen pro VPN-Session maximal zum Einsatz kommen. Ob Softether DNS- oder ICMP-Pakete akzeptiert, ist am Server ebenfalls an- und abschaltbar, nicht aber am Client. Das Paket unterstützt auch IPv6 an den Endpunkten (Übertragung der verschlüsselten Daten über IPv6), was bei dem höheren Verbreitungsgrad von IPv6 in Japan nicht verwunderlich ist. Im Tunnel ist dies aufgrund der Tatsache, dass es sich um eine Layer-2-Verbindung handelt, kein Thema.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Linksys WRT 1900 AC

    Der Linksys WRT 54 war einst Auslöser für das Open-WRT-Projekt, eine der ältesten und beliebtesten Mini-Linux-Embedded-Firmwares für VIA- und ARM-Router. Jetzt stellt Belkin den offiziellen Nachfolger vor, den WRT 1900 AC. Für einen stolzen Preis bietet er moderne Hardware, aber schwache Firmware.

  • Open WRT

    Auch Linksys' neuester Router WRT 1900 AC gestattet es, die hauseigene Firmware durch ein freies Linux namens Open WRT zu tauschen. Die Open-WRT-Entwickler haben kurz vor Verkaufsstart die neue Version Attitude Adjustment angepasst. Mit der geht zwar noch nicht alles, doch schon erstaunlich viel.

  • Bunte Vielfalt

    Zum ersten Mal tritt eine indische Firewall-Appliance im Linux-Magazin-Testlabor an. Die Cyberoam CR100ia von Elitecore glänzt nicht nur mit einem bunten Logo, sondern verspricht auch einen Funktionsumfang, der in dieser Preisklasse nicht üblich ist.

  • Wehrhaft abtauchen

    Hochverfügbare Firewalls gelten als hohe Kunst im Netzwerkschutz. Dank Clustering bleibt das Netz online, selbst wenn eine Firewall ausfällt. OpenBSD/PF (Maskottchen: Kugelfisch) besitzen gegenüber dem bekannteren Duo Linux/Netfilter einige Vorzüge. Der Artikel erklärt das Setup - für Linuxer verständlich.

  • Raspberry Pi 3

    Pünktlich zum vierten Geburtstag des Raspberry Pi zaubert die gleichnamige Foundation die dritte Generation ihres günstigen Kleincomputers aus dem Hut. Die hat WLAN und Bluetooth an Board sowie eine flotte 64-Bit-CPU. Statt auf Geburtstagspartys abzuhängen, hat das Linux-Magazin den Pi 3 ordentlich getestet.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.