www.koepfer.de

  • Schrift vergrößern
  • Standard-Schriftgröße
  • Schriftgröße verkleinern

OpenVPN Verbindung


In diesem Artikel möchte ich beschreiben wie ich auf einem Ubuntu 8.10 Server OpenVPN als Server und auf Windows XP OpenVPN als Client einrichte. So ist es zum Beispiel auf einfacher Art und Weise möglich auf dem Server einen Proxy vor zu halten über den der oder die Clients verschlüsselt surfen können oder ein Samba Server installiert wird auf den man von überall aus zugreifen kann. Es gibt die verschiedensten Arten wie die Software konfiguriert werden kann. Meiner Meinung nach sind die Konfigurationen mit einer eigenen PKI (public key infrastructure) die beste Wahl da für jeden Client ein eigener SSL Key erzeugt wird und sollte mal ein Notebook verloren gehen oder ein Mitarbeiter kündigen kann dieser SSL Key sofort gesperrt werden.

OpenVPN Homepage: http://www.openvpn.org/

Server Installation

Als erstes müssen wir die Pakete installieren:

"apt-get install openvpn"

Im Verzeichnis "/usr/share/doc/openvpn/examples/easy-rsa/2.0/" befinden sich einige Tools die wir zum einrichten der SSL Keys brauchen. Da ich von Grund auf ein fauler Mensch bin und mir die Verzeichnisse nie merken kann erstelle ich unter "/etc/openvpn" einen symbolischen Link zum Tool Verzeichnis:

"ln -s /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/easy-rsa"

Jetzt fehlt nur noch ein Verzeichnis in dem die SSL Keys gesichert werden:

"mkdir --mode=700 /etc/openvpn/keys"

Jetzt müssen einige Grundeinstellungen für easy-rsa eingestellt werden. Dies geschieht in der Datei "/etc/openvpn/easy-rsa/vars" in der folgendes editiert werden sollte:

"export EASY_RSA="`pwd`"" -> "export EASY_RSA="/etc/openvpn/easy-rsa""
"export KEY_DIR="$EASY_RSA/keys"" -> "export KEY_DIR="/etc/openvpn/keys""
"export KEY_COUNTRY="US"" -> (nach Wunsch)
"export KEY_PROVINCE="CA"" -> (nach Wunsch)
"export KEY_CITY="SanFrancisco"" -> (nach Wunsch)
"export KEY_ORG="Fort-Funston"" -> (nach Wunsch)
"export KEY_EMAIL="me@myhost.mydomain"" -> (nach Wunsch)

Was noch fehlt ist eine Struktur zur Erstellung der Key's, einer eigenen Certificate Authority (CA), das generieren der Diffie Hellman Parameter Datei und einem ersten direkten Server Zertifikat:

"cd /etc/openvpn/easy-rsa/"
". ./vars" (Den Punkt am Anfang nicht vergessen. Wichtig !)
"./clean-all" (Achtung: alle vorhandenen Konfigurationen werden gelöscht)
"./build-ca" (Erstellt die CA)
"./build-key-server server" (im "Common Name" sollte "server" eingetragen werden)
"./build-dh"

Der folgende "kleine" Block wiederholt sich immer wieder dann wenn ein neuer Client Key erstellt werden muss. Hiermit werden als Beispiel für den User "kwietcheentchen" die Dateien erstellt die an seinem Client installiert werden. Welches das sind kommt später. Wichtig ist das dieses Zertifikat hier auch automatisch durch die eigene CA als vertrauenswürdig unterschrieben wird:

"cd /etc/openvpn/easy-rsa/"
". ./vars"
"./build-key kwietcheentchen"

So, jetzt sind wir soweit das die eigentliche Konfiguration angegangen werden muss. Ich gebe hier eine kleine Konfigurationsdatei vor in der folgendes aktiv ist:

  • Verbindung über TCP Port 1194
  • Device über "tun" und Verarbeitung als Server
  • SSL Keys der CA und des eigenen Server's
  • Missbrauch des 192.168.99.0/24 Netzes

Die Datei heisst: "/etc/openvpn/roadwarrior-server.conf":

#####################################################
# Roadwarrier Configuration
#####################################################
port 1194
proto tcp-server
dev tun
tls-server
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
mode server
ifconfig 192.168.99.1 192.168.99.2
ifconfig-pool 192.168.99.4 192.168.99.255
push "route 192.168.99.1 255.255.255.255"
keepalive 10 60
route 192.168.99.0 255.255.255.0
persist-tun
persist-key
verb 4

Weiter Einstellungsparameter können im Internet nachgelesen werden. Es gibt soviel das es den Rahmen hier sprengen würde.

Falls die VPN Verbindung nicht automatisch starten sollte: man kann in der Datei "/etc/default/openvpn" der Wert "AUTOSTART="all"" auskommentieren. Wenn man mehrere Tunnel eingestellt hat können durch Angabe der Tunnelnamen anstelle von "all" auch nur diese gestartet werden.

Bitte nicht vergessen: die Firewall muss für 1194/tcp reinkommend freigegeben werden. Auch ein "reboot" soll manchmal Wunder wirken ;) !

Client Installation

Sowohl die Konfigurationsdatei als auch die SSL Dateien müssen in das Verzeichnis "c:\Programme\OpenVPN\config" gespielt werden. Dies sind folgende Dateien:

  • "kwietcheentchen.ovpn" (Konfigurationsdatei s.u.)
  • "ca.crt" (Datei vom Server unter "/etc/openvpn/keys")
  • "kwietcheentchen.crt" (Datei vom Server unter "/etc/openvpn/keys")
  • "kwietcheentchen.key" (Datei vom Server unter "/etc/openvpn/keys")

Die Konfigurationsdatei sieht folgendermassen aus (das "xxx.xxx.xxx.xxx" muss durch die eigene offizielle Server IP ausgetauscht werden):

port 1194
dev tun
remote xxx.xxx.xxx.xxx
proto tcp-client
tls-client
ca c:\\Programme\\OpenVPN\\config\\ca.crt
cert c:\\Programme\\OpenVPN\\config\\kwietcheentchen.crt
key c:\\Programme\\OpenVPN\\config\\kwietcheentchen.key
pull
verb 4


Viel Spass und schönen Gruss an unsere Abhörspezialisten :)



 

googleSearch (CSE)

XING
QR-Code-HTTP-Link