Config ServerNET ClientNET

Aus OpenVPN Wiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Einleitung

Die Konfigurationsdateien in diesem Artikel enthalten die Minimaleinstellungen, die notwendig sind um zwei verschiedene Netzwerke mit Hilfe von OpenVPN zu verbinden. Falls Sie OpenVPN besser an Ihre Anforderungen anpassen möchten, dann schauen Sie sich die Beschreibung anderer Optionen an: OpenVPN-Syntax

Anfangen sollte man mit den Minimaleinstellungen, damit der Tunnel überhaupt mal so funktioniert, dass man die Konfiguration erweitern kann.

In diesem Artikel finden Sie keine Information, wie man Zertifikate erstellt. Es wird davon ausgegangen, dass Sie die Zertifikate bereits erstellt haben.

Aufgabestellung

Als Beispiel für die Konfiguration von OpenVPN nehme ich das folgende Netzwerk:

--------------------------                          --------------         -------------
|   S 1                  |                          | R 1.1      |         |  R 1.N    |
|OVPN-Server             | Netzwerk 1: Berlin       |            |         |           |
|eth0: ovpnbsp.dyndns.org|--------------------------|192.168.0.2 |-- ... --|192.168.0.n|
|eth1: 192.168.0.1       | 192.168.0.0/24           |            |         |           |
|tun0: 10.0.0.1          |                          |            |         |           |
--------------------------                          --------------         -------------
          | | Internet
          | |
          | | 
          | | Netzwerk 3: OpenVPN
          | | 10.0.0.0/24
          | |
          | |
--------------------------                          --------------         -------------
|   S 2                  |                          | R 2.1      |         |  R 2.N    |
|OVPN-Client             | Netzwerk 2: München      |            |         |           |
|eth0: IP von Provider   |--------------------------|192.168.1.2 |-- ... --|192.168.1.n|
|eth1: 192.168.1.1       | 192.168.1.0/24           |            |         |           |
|tun0: 10.0.0.6          |                          |            |         |           |
--------------------------                          --------------         -------------

Beschreibung:

Es gibt ein Netzwerk z.B. irgendwo in Berlin. Das Netzwerk (Netzwerk 1) hat die IP-Adresse: 192.168.0.0/24. Alle Rechner (R 1.1 bis R 1.N) sind zu einem Default-Gateway (Server S 1) angeschlossen und gehen über den Server S 1 ins Internet. Der Server S 1 hat zwei Netzwerkkarten: Eine (eth1) ist zum Netzwerk 1 angeschlossen und die andere (eth0) geht ins Internet. Vom Internet-Provider hat die Netzwerkkarte "eth0" keine feste IP-Adresse (Also z.B ganz normaller DSL-Anschluss). Sie haben also deswegen einen DynDNS-Namen für diese Netzwerkkarte "eth0" registriert (z.B. ovpnbsp.dyndns.org). Wie man das machen kann, erfahren Sie hier: www.dyndns.org.

In diesem Bespiel wird davon ausgegangen, dass der Server S 1 unter irgendwelcher Distribution von Linux läuft. Unter Windows wird OpenVPN genau so konfiguriert wie unter Linux. Nur die Netzwerkkarten werden dann andere Namen haben als in diesem Beispiel (nicht eth0, sondern LAN1 oder so was ähnliches)

Irgendwo z.B. in München gibt es ein anderes Netzwerk. Das Netzwerk (Netzwerk 2) hat die IP-Adresse: 192.168.1.0/24. Alle Rechner (R 2.1 bis R 2.N) sind auch zu einem Default-Gateway (Server S 2) angeschlossen und gehen über den Server S 2 ins Internet. Der Server S 2 hat auch zwei Netzwerkkarten: Eine (eth1) ist zum Netzwerk 2 angeschlossen und die andere (eth0) geht ist Internet. Die Netzwerkkarte hat auch keine feste IP-Adresse vom Internet-Provider bekommen. Für unser Ziel ist es auch nicht notwendig. Der DynDNS-Namen wird auch nicht benötigt. Es langt, wenn der Server S 1 einen hat. Es ist auch vollkommen egal, welches Betriebsystem auf dem Server S 2 läuft. In diesem Beispiel läuft Linux auf dem Server S 2.

Ziel

Unser Ziel ist es jetzt die beiden Netzwerke miteinander so zu verbinden, dass jeder Rechner (R 1.1 bis R 1.N) aus dem Netzwerk 1 jeden Rechner (R 2.1 bis R 2.N) aus dem Netzwerk 2 erreichen kann.

Vorgehensweise

Mit folgenden Schritten kann man das Ziel erreichen:

1. Auf dem Server S 1 und auf dem Server S 2 wird OpenVPN installiert. Dieser Artikel beschreibt allerdings nicht, wie Sie OpenVPN installieren.

2. OpenVPN wird dann dementsprechend konfiguriert.

3. Die Firewall wird angepasst (Man muss den Port öffnen, den man in der Konfiguration definiert hat). Dieser Artikel beschreibt dies allerdings nicht.

4. Auf den Servern S 1 und S 2 wird IP_Forwarding aktiviert.

5. OpenVPN wird gestartet.

6. Die Verbindung wird dann getestet, ob wir unser Ziel erreicht haben.

Konfiguration von OpenVPN

Wie gesagt, OpenVPN wird in diesem Beispiel mit Minimaleinstellungen konfiguriert. Dies sollte allerding reichen, um unser Vorhaben vollständig zu erzielen.

In den folgenden Konfigurationsdateien wird auf die Beschreibung der Optionen verzichtet. Eine vollständige Beschreibung dieser Optionen findet man hier: OpenVPN-Syntax

Die Konfigurationsdatei ist eine einfache Textdatei, die in einem beliebigen Verzeichnis liegen kann. Unter Linux hat die Datei die Erweiterung ".conf" und unter Windows ".ovpn".

Zusätzlich zu den Zertifikaten und der OpenVPN-Konfigurations-Datei muss in unserem Beispiel noch eine weitere Datei, /etc/openvpn/ccd/client auf dem Server angelegt werden. (Siehe dazu http://openvpn.net/index.php/documentation/howto.html#scope). Im Beispiel wird davon ausgegangen, dass der common-name des Zertifikats für den Client auf client gesetzt wurde. Da der Dateiname im ccd-Verzeichnis gleich dem common-name des Zertifikats sein muss, legen wir für das Beispiel eine Datei namens 'client' an. Es ergeben sich folgende Konfigurationsdateien:

Auf dem Server:

server.conf:

port 1194
proto udp
dev tun
server 10.0.0.0 255.255.255.0
dh /etc/openvpn/keys/dh1024.pem  # Unter Windows Doppelslash "//dh1024.pem"
ca /etc/openvpn/keys/ca.crt
key /etc/openvpn/keys/server.key
cert /etc/openvpn/keys/server.crt
client-config-dir /etc/openvpn/ccd
keepalive 10 60
route 192.168.1.0 255.255.255.0         # clientnetz + netmask
push "route 192.168.0.0 255.255.255.0"  # servernetz + netmask

/etc/openvpn/ccd/client:

iroute 192.168.1.0 255.255.255.0  # clientnetz + netmask

Auf dem Client:

client.conf:

port 1194
proto udp
dev tun
client
remote ovpnbsp.dyndns.org # Oder die IP-Adresse des Servers, wenn statisch
ca /etc/openvpn/keys/ca.crt # Unter Windows Doppelslash "//ca.crt"
key /etc/openvpn/keys/client.key
cert /etc/openvpn/keys/client.crt

IP_Forwarding aktivieren

Jetzt muss noch IP_Forwarding sowohl auf dem Server S 1 als auch auf dem Server S 2 aktiviert werden, damit die IP-Pakete weitergeleitet werden können.

Unter Linux macht man das folgendermassen:

Unter den meisten Distributionen als Root im Terminal ausführen:

echo 1 > /proc/sys/net/ipv4/ip_forward

Unter Ubuntu kann man das so machen:

sudo sysctl -w net/ipv4/ip_forward=1

Unter SuSe kann man das mit Yast machen, wenn man es mit grafischer Oberfläche erledigen möchte.

Unter Windows ist es auch kein Problem: Sie können das hier [1] erfahren.

OpenVPN starten

Unter Linux startet man OpenVPN mit dem folgenden Befehl (als Root):

~# openvpn /pfad/zur/server.conf

Wo "/pfad/zur/server.conf" der korrekte Pfad, wo die Datei "server.conf" liegt. Die meisten werden diese Datei im Verzeichnis "/etc/openvpn/config/server.conf" haben. Und genauso wird der OVPN-Klient gestartet.

Unter Windows startet man OpenVPN mit einem Rechtclick der Maus auf die server.ovpn oder client.ovpn Datei. (Und dann auf Menü "Starten...")

Wenn OpenVPN fehlerfrei gestartet wurde, ist ungefähr folgendes im Terminal (sowohl unter Linux als auch unter Windows) zu sehen.

....
Tue Jan 30 11:43:50 2007 UDPv4 link local (bound): [undef]:1194
Tue Jan 30 11:43:50 2007 UDPv4 link remote: [undef]
Tue Jan 30 11:43:50 2007 Initialization Sequence Completed

Testen der Verbindung

Falls OpenVPN fehlerfrei gestartet wurde, sollte folgendes gehen:

Von dem OVPN-Klient aus:

ping ovpnbsp.dyndns.org //Das sollte auf jeden Fall vor dem Start von OpenVPN gehen
ping 192.168.0.1 
ping 10.0.0.1
ping 192.168.0.2 bis 192.168.0.N

Von dem OVPN-Server aus:

ping 192.168.1.1
ping 10.0.0.6
ping 192.168.1.2 bis 192.168.1.N

Von jedem Rechner hinter dem OVPN-Server aus

ping 192.168.1.1 bis 192.168.1.N

Von jedem Rechner hinter dem OVPN-Klient aus

ping 192.168.0.1 bis 192.168.0.N

Sollte das Ganze funktionieren, dann haben Sie Ihr Ziel erreicht. Sollten Sie irgendwelche Probleme damit haben, dann posten Sie diese auf dem OpenVPN-Forum

Persönliche Werkzeuge