OpenVPN (deutsch): Difference between revisions

From
Jump to navigation Jump to search
(Test configuration && restructuring)
Line 20: Line 20:
====Certificate Revocation List (CRL) - Schwarze Liste mit ungültigen Zertifikaten====
====Certificate Revocation List (CRL) - Schwarze Liste mit ungültigen Zertifikaten====


=Konfiguration=
Grundsätzlich können alle Konfigurations-Parameter dem openvpn-Programm an der Kommandozeile in der Form ''--parameter=wert'' mitgegeben werden.
Alternativ kann man die Konfigurations-Parameter in eine Datei zeilenweise in der Form ''parameter wert'' schreiben und den Dateinamen mit dem Parameter ''--config Dateiname'' an der Kommandozeile mitgeben, z.B.:

openvpn --config openvpn.conf


Zum Testen der OpenVPN-Installation sollte man zunächst eine Shared-Secret-Authentifizierung wählen, da diese einfach zu konfigurieren ist. Mit:

openvpn --genkey --secret static.key

erstellt man einen gemeinsamen Schlüssel (''static.key''), den man auf die beiden OpenVPN-Rechner mit den späteren Tunnelenden kopiert.


==Szenarien==
===Außendienst-Mitarbeiter (Netz-zu-Host)===
===Transparente Fillialanbindung (Netz-zu-Netz)===


==Installation==
==Installation==
Line 89: Line 72:
Da Mac OS X (aka Darwin) kein TUN-Device zur Verfügung stellt, muss es nachinstalliert werden. Hier findet man eine detailierte Installationsbeschreibung und ein vorkompiliertes kext-file: http://chrisp.de/en/projects/tunnel.html
Da Mac OS X (aka Darwin) kein TUN-Device zur Verfügung stellt, muss es nachinstalliert werden. Hier findet man eine detailierte Installationsbeschreibung und ein vorkompiliertes kext-file: http://chrisp.de/en/projects/tunnel.html


wget http://www.oberhumer.com/opensource/lzo/download/lzo-1.08.tar.gz # (oder mit Safari holen, falls wget nicht verfügbar)
wget http://www.oberhumer.com/opensource/lzo/download/lzo-1.08.tar.gz
# (oder mit Safari holen, falls wget nicht verfügbar)
tar xzf lzo-1.08.tar.gz
tar xzf lzo-1.08.tar.gz
cd lzo-1.08
cd lzo-1.08
Line 96: Line 80:
make install
make install


wget http://openvpn.sourceforge.net/beta/openvpn-2.0_beta14.tar.gz # (oder mit Safari holen, falls wget nicht verfügbar)
wget http://openvpn.sourceforge.net/beta/openvpn-2.0_beta14.tar.gz
# (oder mit Safari holen, falls wget nicht verfügbar)
tar xzf openvpn-2.0_beta14.tar.gz
tar xzf openvpn-2.0_beta14.tar.gz
cd openvpn-2.0_beta14
cd openvpn-2.0_beta14
Line 111: Line 96:
===Frontends===
===Frontends===
* OpenVPN GUI für Windows http://www.nilings.se/openvpn/
* OpenVPN GUI für Windows http://www.nilings.se/openvpn/


=Konfiguration=
Grundsätzlich können alle Konfigurations-Parameter dem openvpn-Programm an der Kommandozeile in der Form ''--parameter=wert'' mitgegeben werden.
Alternativ kann man die Konfigurations-Parameter in eine Datei zeilenweise in der Form ''parameter wert'' schreiben und den Dateinamen mit dem Parameter ''--config Dateiname'' an der Kommandozeile mitgeben, z.B.:

openvpn --config openvpn.conf


Zum Testen der OpenVPN-Installation sollte man zunächst eine Shared-Secret-Authentifizierung wählen, da diese einfach zu konfigurieren ist. Mit:

openvpn --genkey --secret static.key

erstellt man einen gemeinsamen Schlüssel (''static.key''), den man auf die beiden OpenVPN-Rechner mit den späteren Tunnelenden kopiert.


Angenommen, der Server hat die reale IP-Adresse ''192.168.0.1'' und der Client die IP-Adresse ''192.168.0.2'' kann man folgendermaßer eine erste Testverbindung aufbauen:

'''auf dem Server'''
openvpn --dev tun0 --remote 192.168.0.2 --ifconfig 192.168.10.1 192.168.10.2 --secret static.key


'''auf dem Client'''
openvpn --dev tun0 --remote 192.168.0.1 --ifconfig 192.168.10.2 192.168.10.1 --secret static.key


Der Server sollte dann durch den Tunnel vom Client aus über die virtuelle IP-Adresse ''192.168.10.1'' ansprechbar sein:
ping 192.168.10.1

analog ist der Client über die virtuelle IP-Adresse ''192.168.10.2'' erreichbar.

==Szenarien==
===Außendienst-Mitarbeiter (Netz-zu-Host)===
===Transparente Fillialanbindung (Netz-zu-Netz)===




=Literatur=
=Literatur=

Revision as of 12:58, 28 October 2004

Einleitung: OpenVPN ist eine leicht zu implementierende und zu wartende VPN-Applikation, die bis auf das notwendige TUN- bzw. TAP-Device komplett im Userspace arbeitet. Dieses Dokument beschreibt die Installation sowohl des Servers (VPN-Gateway) als auch der Clients unter den verbreiteten Betriebssystemen Windows, Linux, MacOSX und OpenBSD.


Was wird gebraucht?

  • OpenVPN-Programm
  • TUN/TAP-Schnittstelle
  • Konfigurationsdatei für OpenVPN (optional, aber empfohlen)
  • PKI = Public-Key-Infrastruktur (optional, für größere Installationen empfohlen)


Funktionsweise

Shared-Secret-Authentifizierung

Public-Key-Authentifizierung

Zertifizierungsstelle (CA) und Public-Key-Infrastruktur (PKI)

Certificate Revocation List (CRL) - Schwarze Liste mit ungültigen Zertifikaten

Installation

Zur Installation von Server und Client wird das openvpn-Programm und ein paar Bibliotheken benötigt. Da diese auf Server- und Clientseite die gleichen sind, reicht es eine Seite zu beschreiben. Auf der anderen Seite - also dem anderen Tunnelende - wird dann entsprechend nur die conf-Datei sowie der Schlüssel und die Zertifikate ausgetauscht.

Die Installationshinweise sind teilweise http://openvpn.sourceforge.net/install.html entnommen.

Windows

Zuerst wird das Installationspaket für OpenVPN und den TUN/TAP-Treiber von:

geholt.


Linux

Die Installation wird am Beispiel von SuSE-Linux beschrieben, sollte aber vom fähigen Systemadministrator auch auf andere Distributionen übertragen werden können.


SuSE-Distributionspaket (alt, unterstützt nur pre-shared Keys)

yast -i lzo openssl openvpn


OpenVPN 2.0 aus den Quellen installieren (besser, notwendig für PKI-Auth)


SuSE Linux
yast -i openssl-devel 
yast -i lzo-devel (ab SuSE 9.0)
(vor SuSE 9.0 - keine lzo-Bibliothek)
wget http://www.oberhumer.com/opensource/lzo/download/lzo-1.08.tar.gz
tar xzf lzo-1.08.tar.gz
cd lzo-1.08
./configure
make
make install
wget http://openvpn.sourceforge.net/beta/openvpn-2.0_beta14.tar.gz
tar xzf openvpn-2.0_beta14.tar.gz
cd openvpn-2.0_beta14
# Bei selbstübersetzter lzo-Bibliothek müssen die beiden Pfade angegeben werden:
#./configure --with-lzo-headers=/usr/local/include --with-lzo-lib=/usr/local/lib
./configure
make
make install

Mac OS X

Die Installation erfolgt analog zu Linux (bei fehlender lzo-Bobliothek). Die Developer-Tools müssen installiert sein! (C-Compiler, make, openssl-devel, etc.) Da Mac OS X (aka Darwin) kein TUN-Device zur Verfügung stellt, muss es nachinstalliert werden. Hier findet man eine detailierte Installationsbeschreibung und ein vorkompiliertes kext-file: http://chrisp.de/en/projects/tunnel.html

wget http://www.oberhumer.com/opensource/lzo/download/lzo-1.08.tar.gz
# (oder mit Safari holen, falls wget nicht verfügbar)
tar xzf lzo-1.08.tar.gz
cd lzo-1.08
./configure
make
make install
wget http://openvpn.sourceforge.net/beta/openvpn-2.0_beta14.tar.gz
# (oder mit Safari holen, falls wget nicht verfügbar)
tar xzf openvpn-2.0_beta14.tar.gz
cd openvpn-2.0_beta14
./configure --with-lzo-headers=/usr/local/include --with-lzo-lib=/usr/local/lib
make
make install

OpenBSD

Andere UNIX-Systeme (ohne TUN-Device)

Client

Frontends


Konfiguration

Grundsätzlich können alle Konfigurations-Parameter dem openvpn-Programm an der Kommandozeile in der Form --parameter=wert mitgegeben werden. Alternativ kann man die Konfigurations-Parameter in eine Datei zeilenweise in der Form parameter wert schreiben und den Dateinamen mit dem Parameter --config Dateiname an der Kommandozeile mitgeben, z.B.:

openvpn --config openvpn.conf


Zum Testen der OpenVPN-Installation sollte man zunächst eine Shared-Secret-Authentifizierung wählen, da diese einfach zu konfigurieren ist. Mit:

openvpn --genkey --secret static.key

erstellt man einen gemeinsamen Schlüssel (static.key), den man auf die beiden OpenVPN-Rechner mit den späteren Tunnelenden kopiert.


Angenommen, der Server hat die reale IP-Adresse 192.168.0.1 und der Client die IP-Adresse 192.168.0.2 kann man folgendermaßer eine erste Testverbindung aufbauen:

auf dem Server

openvpn --dev tun0 --remote 192.168.0.2 --ifconfig 192.168.10.1 192.168.10.2 --secret static.key


auf dem Client

openvpn --dev tun0 --remote 192.168.0.1 --ifconfig 192.168.10.2 192.168.10.1 --secret static.key


Der Server sollte dann durch den Tunnel vom Client aus über die virtuelle IP-Adresse 192.168.10.1 ansprechbar sein:

ping 192.168.10.1

analog ist der Client über die virtuelle IP-Adresse 192.168.10.2 erreichbar.

Szenarien

Außendienst-Mitarbeiter (Netz-zu-Host)

Transparente Fillialanbindung (Netz-zu-Netz)

Literatur