Inspirationen Willkommen,
Ganz nach dem Motto, was interessiert mich meine Fehlersuche von gestern, möchte ich Euch mitteilen, das ich es gerade geschafft habe, ein iPad und ein iPhone mit dem OpenVPN-Server 1.1-2267 auf einer DS412+ mit DSM 4.2-3211 zu verbinden.
Was war dafür nötig?
Viel im englischsprachigen Forum forschen, doch letztendlich ist es genau
dieser Link und die beiden dahinterstehenden Howtos, die mich zum Erfolg gebracht haben.
Der Kollege beschreibt, das auf jeden Fall neue Zertifikate auf die DS müssen, ergo verweist er auf ein
englischsprachiges Howto, das Schritt-für-Schritt (sehr ausdauernd) erklärt, wie diese unter Windows anzulegen sind.
Wenn man sich bei
SourceForge genau die Programmversion herunterläd und installiert, die im HowTo verwendet wurde, dann sieht man auch einigermaßen dasselbe, was auf den Screenshots zu sehen ist ... Ich habe die Zertifikate und Schlüssel mit der neusten Version (0.9.3) erledigt und es hat reibungslos funktioniert.
Allein der Diffie-Hellman Part zu guter letzt ist mit der neuen 0.9.3 nicht möglich, doch wird gesagt, das die Erstellung einer "dh2048.pem" sowieso nicht benötigt ist. Ich habe es der Vollständigkeit des Zertifikat-HowTos dennoch gemacht, da ich mir a) nicht sicher war, und b) eine solche Datei in der OpenVPN-Server Konfiguration auf der DS auch erwähnt wird. Also könnte es sein, das diese Datei nicht benötigt wird.
Ihr müsst den OpenVPN Server später neu starten, vergesst das nicht!
Nach dem Anlegen der ganzen Zertifikate (Das Zertifikats-HowTo beschreibt, das man sich die angelegten Schlüssel-/Zertifikats-Dateien umbenennen darf, das sollte der Verwirrungsminimierung halber aber nicht gemacht werden) bin ich lt. dem Kollegen aus dem engl.sprachigen Forum folgendermaßen vorgegangen:
In einem Verz. meiner Wahl befinden sich nun die frischen Dateien:
Rich (BBCode):
dh2048.pem
openvpnclient.crt
openvpnclient.key
openvpnsrv.crt
openvpnsrv.key
openvpn_ca.crt
Allesamt benamst, wie aus dem HowTo und nachträglich die Erweiterung von *.PEM nach *.KEY umbenannt. (Nur fürs Auge, damit man weiss: Ah, das sind eine sind Schlüsseldateien, das andere die Zertifikatsdateien...)
Die Dateien müssen nun an zwei verschiedene Stellen auf die DS gebracht werden.
Ein Blick in das Verzeichnis
/var/packages/VPNCenter/target/etc/openvpn/keys/ zeigt, das dort die Client-Schlüssel verlangt werden,
Rich (BBCode):
DS> cd /var/packages/VPNCenter/target/etc/openvpn/keys
DS> ll
README.txt
android.ovpn
ca.crt -> /usr/syno/etc/packages/VPNCenter/openvpn/keys/ca.crt
client.crt
client.crt.org
client.key
client.key.org
dh1024.pem.org
dh2048.pem
iOS.ovpn
mobile.ovpn
openvpn.ovpn
openvpn.zip
server.crt -> /usr/syno/etc/packages/VPNCenter/openvpn/keys/server.crt
server.key -> /usr/syno/etc/packages/VPNCenter/openvpn/keys/server.key
und das sich dort auch Symlinks befinden, die auf die Server-Dateien hinweisen.
Ergo habe ich die vorhandenen Dateien um des Backups Willen nach *.ORG kopiert und munter die hier farblich markierten Dateien überschrieben.
(Ihr könnt sie auch nach Eurem Wunsch umbenennen, müsst dann aber in der OpenVPN-Serverkonfig auf die entsprechende Benamsung achten)
Nachdem die Client-Dateien kopiert sind, wechseln wir ins
/usr/syno/etc/packages/VPNCenter/openvpn/keys/ Verz. um dort die Server-Dateien unterzubringen.
Selbiges Verfahren wie oben, die farblich passenden Dateien überschreiben, bzw. umbenennen nachdem kurz ein Backup erstellt wurde:
Rich (BBCode):
DS> cd /usr/syno/etc/packages/VPNCenter/openvpn/keys
DS> ll
ca.crt
ca.crt.org
server.crt
server.crt.org
server.key
server.key.org
Wir haben nun zusammenfassend quasi folgendes gemacht:
Im Verzeichnis
/var/packages/VPNCenter/target/etc/openvpn/keys/:
cp openvpn
client.
crt client.
crt
cp openvpn
client.
key client.
key
(Die Datei
dh2048.pem existierte vorher noch nicht, sie löst die Datei dh1024.pem ab.)
Und im Verz.
/usr/syno/etc/packages/VPNCenter/openvpn/keys/:
cp openvpn
srv.
crt server.
crt
cp openvpn
srv.
key server.
key
cp openvpn_
ca.
crt ca.
crt
Das war eigentlich der komplizierte Part, wie ich finde, weil bei mir einfach sehr viel Unklarheit ob der ganzen angelegten Dateien und deren Verwendungszweck herrschte.
Nun müssen noch die Konfigdateien angepasst werden.
Einmal für den Server und für den Client, das Endgerät, welches sich mit dem Server verbinden soll.
Zuerst der Server:
Rich (BBCode):
DS> cd /usr/syno/etc/packages/VPNCenter/openvpn
keys
openvpn.conf
openvpn.conf.org
openvpn.conf.user.sample
Zuerst wieder ein kleines Backup anlegen mit cp openvpn.conf openvpn.conf.org
Und dann die Datei openvpn.conf mit einem Editor Deiner Wahl öffnen und editieren.
Rich (BBCode):
push "route 192.168.168.0 255.255.255.0"
push "route 192.168.167.0 255.255.255.0"
dev tun
management 127.0.0.1 1195
server 192.168.167.0 255.255.255.0
dh /var/packages/VPNCenter/target/etc/openvpn/keys/dh2048.pem
ca /var/packages/VPNCenter/target/etc/openvpn/keys/ca.crt
cert /var/packages/VPNCenter/target/etc/openvpn/keys/server.crt
key /var/packages/VPNCenter/target/etc/openvpn/keys/server.key
max-clients 10
comp-lzo
persist-tun
persist-key
verb 3
#log-append /var/log/openvpn.log
keepalive 10 60
reneg-sec 3600
plugin /var/packages/VPNCenter/target/lib/radiusplugin.so /var/packages/VPNCenter/target/etc/openvpn/radiusplugin.cnf
client-cert-not-required
username-as-common-name
duplicate-cn
Die hellen Stellen hab ich nicht geändert, die waren schon so vorhanden, einzig die (evtl. nicht benötigte)
dh2048.pem hab ich angepasst, sowie den Wert für "reneg-sec", da ich dies an mehreren Stellen gelesen habe. Die farblich markierten Dateinamen verweisen ja auf die von mir in den Schritten davor überschriebenen Dateien und müssen deswegen nicht angefasst werden. Hier setzt Ihr ein, wenn Ihr gerne eigene (sprechende?) Namen verwenden möchtet.
Wenn Ihr gespeichet hab, bleibt Euch eigentlich nur noch, dem Server die neue Konfiguration bekannt zu geben und das geschieht mit einem Neustart des Servers. Ich habe mich bequemerweise dazu entschieden, das über die DS GUI zu machen. Im Paket-Zentrum den OpenVPN-Server einfach stoppen und wieder starten.
Das wars auf der Server Seite.
(Ich muss hier aufhören, man darf in diesem Forum nicht mehr als 10000 Zeichen quasseln...)