Home / LinuxUser / 2010 / 10 / OpenVPN-Grundlagen

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.
AA_PO-20959.jpg

© Sean Gladwell, de.fotolia.com

Tunnelbauer

OpenVPN-Grundlagen

21.09.2010 VPNs stehen seit jeher im Ruf, kompliziert und umständlich in der Konfiguration zu sein. OpenVPN zeigt, dass es auch anders geht: Mit einem Fünfzeiler bauen Sie einen sicheren Tunnel über das Internet auf.

Nach wie vor scheuen sich viele Anwender, zum externen Zugriff auf das heimische Netz ein VPN einzusetzen, obwohl dessen Nutzwert außer Frage steht. Das Argument: Ein virtuelles privates Netz sei zu umständlich und zu kompliziert einzurichten. Das mag für viel Implementationen auf IPsec-Basis durchaus zutreffen, gilt jedoch nur bedingt für OpenVPN [1].

Zugegeben: Wegen des erheblichen Funktionsumfangs und der damit verbundenen Fülle an möglichen Fehlerquellen sorgt die Software vor allem bei Einsteigern oft für Verwirrung. Tatsächlich aber lässt sich mithilfe von OpenVPN mit nur wenigen Schritten ein funktionierendes VPN aufbauen, wie dieser Artikel im Folgenden zeigt. Da es die Software nicht nur für Linux gibt, sondern auch für Mac und Windows, eignet sich OpenVPN obendrein hervorragend zum Verbinden heterogener Netze oder Hosts.

Generelles

VPN steht für für Virtual Private Network, was den Zweck recht gut erklärt. Funktional handelt es sich dabei um einen verschlüsselten Tunnel durchs Internet, innerhalb dessen die Kommunikation stattfindet. Dafür erstellt die Software beim Start ein eigenes Device (unter Linux heißt es tunX ) das es zur Kommunikation verwendet. Innerhalb des Tunnels gelten die Regeln und Gesetzmäßigkeiten eines normalen LAN, auch was den Einsatz von IP-Adressen aus privaten Adressbereichen betrifft. Zur Verschlüsselung verwendet OpenVPN das als sicher eingestufte OpenSSL [2] mit frei wählbaren Algorithmen, das selbst militärischen Sicherheitsstandards genügt.

Neben der sicheren Verbindung bringt der Einsatz von VPN einen weiteren Vorteil: Er erschließt die komplette Infrastruktur des angeschlossenen Netzes und stellt sie dem per Tunnel angeschlossenen Client so dar, als ob dieser vor Ort damit verbunden wäre. Entsprechend gestattet das VPN den Zugriff auf alle m lokalen Netz laufenden Dienste wie Mailserver, Fileserver oder Proxy. Dank der verschlüsselten Verbindung besteht auch keine Notwendigkeit, die Kommunikation noch einmal extra abzusichern. Eine korrekte Konfiguration vorausgesetzt, stellt das VPN also ein enormes Sicherheitsplus für jeden übers Internet erreichbaren Server dar: Sie können die von außen erreichbaren Dienste auf ein Minimum reduzieren.

OpenVPN installieren

OpenVPN findet sich in den Repositories aller gängigen Distributionen, sodass Sie es mit dem Paketmanager Ihres Systems einrichten. Bei den hier vorgestellten Anwendungsszenarien spielt die konkrete Version keine Rolle. Hilfestellung erhalten Sie, wie bei den meisten Unix-Programmen üblich, mit openvpn --help oder man openvpn.

Eine globale Konfigurationsdatei, wie sie andere Services nutzen, fehlt bei OpenVPN. Vielmehr legen Sie für jede der Verbindungen eine eigene Konfiguration an, die alle relevanten Informationen enthält. Das gilt sowohl für die Client- als auch die Serverseite. Das Setup befindet sich unter Linux im Verzeichnis /etc/openvpn/, unter Windows in C:\Programme\OpenVPN\config\

Server-Konfiguration

OpenVPN bietet für beinahe jeden erdenklichen Anwendungsfall die richtige Lösung, die sich in der Konfiguration zwar oft nur marginal unterscheidet, in ihrer Wirkung dafür sehr. Ein häufig anzutreffendes Szenario stellt der so genannte Road Warrior dar: Es geht davon aus, dass Sie sich über das Internet mit einem mobilen Gerät an einen Host oder ein Netz anschließen, um beispielsweise Daten zu transferieren oder Mails abzuholen. Das serverseitige Minimal-Setup dazu zeigt Listing 1.

Listing 1

# /etc/openvpn/config.conf (Server)
port 5000
proto tcp-server
dev tun
secret /etc/openvpn/preshared_key.txt
ifconfig 192.168.10.1 192.168.10.2

Zeile 2 legt den Port fest, auf dem OpenVPN lauscht, Zeile 3 das Protokoll und die Rolle (Server), mit dem es arbeitet. Zeile 4 nennt das Device, das OpenVPN beim Start generiert und zur Datenübertragung nutzt. Zeile 5 legt als Authentifizierungsmethode einen Preshared Key fest. Diesen generieren Sie mittels der Eingabe

$ sudo openvpn --genkey --secret preshared_key.txt

im Terminal. Anders als beim TLS-Authentifizierungsverfahren nutzen Sender und Empfänger bei dieser Methode den selben Schlüssel. Kopieren Sie ihn nach dem Erstellen ins Standard-Konfigurationsverzeichnis von OpenVPN und setzten Sie die Benutzerrechte auf 400. Verteilen Sie den Schlüssel danach an alle Clients, die via VPN auf den Server zugreifen dürfen. Als Speicherort dient dort das Verzeichnis, in dem sich auch die Konfigurationsdatei befindet.

Die Anweisung ifconfig in Zeile 6 des Listings gibt an, welche IP-Adresse OpenVPN zur Kommunikation im Tunnel verwendet. Das "linke" Netz (im Beispiel 192.168.10.1) ist dabei immer das eigene, das "rechte" (192.168.10.2) das des Verbindungspartners.

Für einen ersten Testlauf des Servers tippen Sie nach dem Speichern der Konfiguration in der Konsole das Kommando:

$ sudo openvpn --verb 3 --config /etc/openvpn/config.conf<c>

Der Start via Terminal ist zunächst deswegen sinnvoll, weil das Programm Fehler direkt anzeigt, was beim Laden via Init-Skript nicht der Fall wäre. Der Schalter --verb aktiviert das Logging (Abbildung 1), in unentbehrliches Mittel zur Fehleranalyse. Je höher die dahinter angegebene Zahl, desto präziser erfolgt die Ausgabe.

Abbildung 1: Der Schalter --verb bewirkt beim Start, dass OpenVPN je nach Log-Level mehr oder weniger präzise Zustandsmeldungen anzeigt.

Erscheint nach dem Start des Servers die Meldung Listening for incoming TCP connection on [undef]:5000, dann ist die Konfiguration zumindest soweit in Ordnung, dass die Software den Start nicht abbricht. Der Befehl sudo ifconfig zeigt jetzt das zusätzliche Device tun0. Nach erfolgreichem Testlauf beenden Sie den Server mit [Strg]+[C] und starten ihn zukünftig via

# /etc/init.d/openvpn start

Ersetzen Sie im obigen Kommando die Anweisung start durch status, zeigt OpenVPN seinen aktuellen Betriebszustand. Ein stop beendet den Tunnel.

Steht der VPN-Server hinter einem Router, gilt es, auf diesem ein Portforwarding einzurichten, damit sich der Server von Außen erreichen lässt. Anders als bei IPsec benötigt der Router jedoch kein VPN-Passthrough.

Schwächen von Preshared Key

Diese hier beschriebene Authentifizierung per Preshared Key ist zwar simpel, gilt jedoch aus mehreren Gründen als Notlösung. Da alle mit dem Server verbundenen Clients den selben Schlüssel als einzige Authentifizierungsmethode verwenden, müssen Sie beim Abhandenkommen eines Geräts (etwa durch Diebstahl) den Schlüssel auf allen Clients erneuern, um dem Dieb nicht Zugriff auf den VPN-Server zu gewähren. Außerdem ermöglicht diese Authentifizierungsmethode jeweils nur eine Verbindung gleichzeitig. Beides spielt jedoch im kleineren Umfeld mit nur wenigen Clients eine eher untergeordnete Rolle. Schwerer wiegt der Umstand, dass unter anderem die User/Pass-Authentifizierung ausschließlich zertifikatsbasiert arbeitet. Weiterhin funktionieren einige OpenVPN-Features, beispielsweise das Verteilen von Routeninformationen via push an die Clients, nur mit der TLS-Authentifizierung.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1625 Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zum Autor

Thomas Leichtenstern

Thomas Leichtenstern

CD/DVD-Redakteur


Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...