Config ServerNET ClientNET
Aus OpenVPN Wiki
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
