VPN Tunnel

Status
Für weitere Antworten geschlossen.

chr1s-eg

Benutzer
Mitglied seit
30. Jul 2009
Beiträge
39
Punkte für Reaktionen
0
Punkte
0
Aloha allerseits,

ich würde gerne meine DiskStation so einrichten, das ich von außen via VPN Tunneln kann. Sprich: Wenn ich in einem öffentlichen Netzwerk bin, möchte ich ungern dort surfen. Also würde ich gerne eine VPN Verbindung nach Hause (zur DS) aufbauen und somit surfen.

VPN ist nicht meine stärke, also wüsste ich auch erstmal nicht wie ich das mit der DS umsetze. Könnt ihr mir weiterhelfen? :) Wäre sehr nett.

Meine DS: DS109
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Entweder OpenVPN oder OpenSSH Proxy

Code:
[B]Einleitung[/B]
OpenVPN ermöglicht es, von einem anderen Internetanschluss auf die Freigaben der Synology zugreifen, oder den Datenverkehr an einem öffentlichen WLAN zu verschlüsseln oder in einem Land wo nicht verfügbar zB Dienste wie Zattoo benutzen ;). In der Firmware-Version 2.3 der Synology-DiskStation ist tun.ko bereits enthalten, was viel Gebastel erspart.


ACHTUNG: Ich übernehme KEINE GARANTIE für eventuelle Schäden.


[B]Erforderliche Pakete installieren[/B]
Um die Pakete installieren zu können, wird vorausgesetzt, dass die DiskStation gebootstrapped ist.

ipkg install module-init-tools openvpn openssl bash


[B]Modul tun.ko einbinden[/B]
/sbin/insmod /lib/modules/tun.ko
mkdir /dev/net/
mknod /dev/net/tun c 10 200


[B]IP-Forwarding aktivieren[/B]
echo 1 > /proc/sys/net/ipv4/ip_forward


[B]ca und server-key für OpenVPN generieren[/B]
mkdir /openvpntemp
cd /openvpntemp
wget http://openvpn.net/release/openvpn-2.1.1.tar.gz
tar -zxvf *.tar.gz
cp easy-rsa/2.0 /opt/etc/openvpn
cd /opt/etc/openvpn
mv 2.0 easy-rsa
cd easy-rsa
bash
source ./vars
exit
mkdir -p /opt/etc/openvpn/easy-rsa/keys
./build-ca
./build-key-server server
./build-dh


[B]Client-Keys generieren[/B]
Achtung: Für jeden Client muss ein eigener Key generiert werden (client1, client2, clientn)

./build-key client1


[B]Server-Konfiguration[/B]
mv /opt/etc/openvpn/openvpn.conf /opt/etc/openvpn/openvpn.conf.alt
cd /opt/etc/openvpn
touch openvpn.conf
nano openvpn.conf

Folgender Inhalt

port 1194
proto udp
dev tun

ca /opt/etc/openvpn/keys/ca.crt
cert /opt/etc/openvpn/keys/server.crt
key /opt/etc/openvpn/keys/server.key
dh /opt/etc/openvpn/keys/dh1024.pem

server 192.168.22.0 255.255.255.0
ifconfig-pool-persist ipp.txt

client-to-client
push "route 192.168.5.0 255.255.255.0"
push "redirect-gateway"

keepalive 10 120

comp-lzo

persist-key
persist-tun
status openvpn-status.log

verb 3
daemon


Das virtuelle VPN-Netzwerk verteilt also IP-Adressen im Bereich 192.168.22.XX. Zudem kann man auf das interne Netzwerk zugreifen (192.168.5.XX) und über dieses surfen, sofern im Router eine statische Route folgendermassen erstellt worden ist:

Ziel-IP: 192.168.22.0   IP-Subnetz-Maske: 255.255.255.0   Gateway-IP-Adresse: {ip-des-openvpn-servers}   Metrik: 2

Um den Server automatisch zu starten bearbeitet man die Datei

/opt/etc/init.d/S20openvpn

Nun sucht man die Zeile

insmod /opt/lib/modules/tun.o

und ersetzt sie mit

insmod /lib/modules/tun.ko

Die Zeile

return 0

löscht man komplett.


[B]Client-Konfiguration[/B]
client
dev tun
proto udp
remote dyndns-adresse.org 1194

resolv-retry infinite

nobind

persist-key
persist-tun

ca C:\\programme\\openvpn\\keys\\ca.crt
cert C:\\programme\\openvpn\\keys\\client1.crt
key C:\\programme\\openvpn\\keys\\client1.key

comp-lzo
verb 3
resolv-retry infinite
nobind
persist-key
persist-tun

ca C:\\programme\\openvpn\\keys\\ca.crt
cert C:\\programme\\openvpn\\keys\\client1.crt
key C:\\programme\\openvpn\\keys\\client1.key

comp-lzo
verb 3


Die Konfigurationsdatei kommt (unter Windows) in folgendes Verzeichnis:

c:\programme\OpenVPN\config

Zudem muss man ein neues Verzeichnis

c:\programme\openVPN\keys

erstellen. In dieses kopiert man den Client-Key, das Client-Zertifikat und das ca-Zertifikat.


[B]Portfreigabe[/B]
Im Router Port 1194 freigeben

Oder SSH Tunnel
http://hydra.geht.net/tino/howto/linux/ssh--tunnel/

gruss
ubuntulinux
 

chr1s-eg

Benutzer
Mitglied seit
30. Jul 2009
Beiträge
39
Punkte für Reaktionen
0
Punkte
0
ah merci, probier ich morgen mal und gebe rückmeldung!!
 

master-o-d

Benutzer
Mitglied seit
20. Mrz 2009
Beiträge
35
Punkte für Reaktionen
0
Punkte
0
geht VPN wieder?

bei DSM 2.1 ging OpenVpn noch ab 2.2 gings nicht mehr, da ein anderer Kernel eingesetzt wird.

bei 2.3 habe ich es nicht wieder versucht.

Gruß
 

pillepalle

Benutzer
Mitglied seit
07. Mrz 2009
Beiträge
184
Punkte für Reaktionen
0
Punkte
16
jep läuft.
bei mir läufts allerdings noch nicht wegen DHCP-IP-Routing Problemen. vielleicht kann jemand diesbezüglich funktionierende configs (srv/client) posten.

habe es mit Win7 64 probiert.
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Server
Code:
;local a.b.c.d
port 1194
;proto tcp
proto udp
;dev tap
dev tun
;dev-node MyTap
ca /opt/etc/openvpn/keys/ca.crt
cert /opt/etc/openvpn/keys/server.crt
key /opt/etc/openvpn/keys/server.key
dh /opt/etc/openvpn/keys/dh1024.pem

server 192.168.22.0 255.255.255.0
ifconfig-pool-persist ipp.txt

client-to-client
push "route 192.168.5.0 255.255.255.0"
push "dhcp-option DNS 192.168.5.1"

push "redirect-gateway"

;push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
;learn-address ./script
;push "redirect-gateway"
;push "dhcp-option DNS 10.8.0.1"
;push "dhcp-option WINS 10.8.0.1"
;client-to-client
;duplicate-cn

keepalive 10 120

;tls-auth ta.key 0 # This file is secret
;cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES

comp-lzo

;max-clients 100
;user nobody
;group nobody

persist-key
persist-tun
status openvpn-status.log

;log         openvpn.log
;log-append  openvpn.log

verb 3
daemon

Client
Code:
client
dev tun
proto udp

remote gate.domain.ch 1194
resolv-retry infinite
nobind

persist-key
persist-tun

ca C:\\programme\\openvpn\\keys\\ca.crt
cert C:\\programme\\openvpn\\keys\\client1.crt
key C:\\programme\\openvpn\\keys\\client1.key

comp-lzo

verb 3
 

pillepalle

Benutzer
Mitglied seit
07. Mrz 2009
Beiträge
184
Punkte für Reaktionen
0
Punkte
16
und das geht, bei der client-config steht ja garnix von route, gateway, dhcp etc.

warum hast du ein anderes netz als das ovpn standard 10.8.0.0 gewählt? das erschwert ja die konfig/debuggung wenn das von den gängigen beispielen und configs anderer abweicht :)

wie sieht die ipp.txt aus?
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Hi

Ja das funktioniert ;) Habe 192.168.22.XX genommen, weil ich mich daran gewöhnt habe ;) Du musst aber im Router noch eine statische Route setzen.

ipp.txt
Code:
client1,192.168.22.4
client2,192.168.22.8

gruss
 

pillepalle

Benutzer
Mitglied seit
07. Mrz 2009
Beiträge
184
Punkte für Reaktionen
0
Punkte
16
hmhm also jetzt kann ich 10.8.0.1 anpingen und komme auch mit ssh drauf.

der def.gw auf win wird noch nicht gesetzt. und wenn ich das von hand mache, gehts auch noch nicht.

also jetzt muss nur noch der def.gw automatisch vom umts-provider auf den ovpn server (10.8.0.1) gesetzt werden sowie das routing funktionieren.

der gateway ins internet aus sicht der DS ist 192.168.0.254. muss der evtl auch noch wo eingetragen werden?

der ovpnclient müsste dann wissen, dass 192.168.0.0/24 bzw .254 über 10.8.0.1 erreichbar ist und dann könnte man .254 auf dem win-client als defgw setzen?
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
statische route angelegt auf dem router, andem die ds angeschlossen ist? (So wie im Attachment?)

1 wär bei dir 10.8.0.0, 2 wär die IP deiner DS

gruss
ubuntulinux
 

Anhänge

  • staticroute.jpg
    staticroute.jpg
    15,3 KB · Aufrufe: 621

macrozone

Benutzer
Mitglied seit
03. Aug 2007
Beiträge
58
Punkte für Reaktionen
0
Punkte
0
Entweder OpenVPN oder OpenSSH Proxy

Code:
[B]Einleitung[/B]
OpenVPN ermöglicht es, von einem anderen Internetanschluss auf die Freigaben der Synology zugreifen, oder den Datenverkehr an einem öffentlichen WLAN zu verschlüsseln oder in einem Land wo nicht verfügbar zB Dienste wie Zattoo benutzen ;). In der Firmware-Version 2.3 der Synology-DiskStation ist tun.ko bereits enthalten, was viel Gebastel erspart.


ACHTUNG: Ich übernehme KEINE GARANTIE für eventuelle Schäden.


[B]Erforderliche Pakete installieren[/B]
Um die Pakete installieren zu können, wird vorausgesetzt, dass die DiskStation gebootstrapped ist.

ipkg install module-init-tools openvpn openssl bash


[B]Modul tun.ko einbinden[/B]
/sbin/insmod /lib/modules/tun.ko
mkdir /dev/net/
mknod /dev/net/tun c 10 200


[B]IP-Forwarding aktivieren[/B]
echo 1 > /proc/sys/net/ipv4/ip_forward


[B]ca und server-key für OpenVPN generieren[/B]
mkdir /openvpntemp
cd /openvpntemp
wget http://openvpn.net/release/openvpn-2.1.1.tar.gz
tar -zxvf *.tar.gz
cp easy-rsa/2.0 /opt/etc/openvpn
cd /opt/etc/openvpn
mv 2.0 easy-rsa
cd easy-rsa
bash
source ./vars
exit
mkdir -p /opt/etc/openvpn/easy-rsa/keys
./build-ca
./build-key-server server
./build-dh


[B]Client-Keys generieren[/B]
Achtung: Für jeden Client muss ein eigener Key generiert werden (client1, client2, clientn)

./build-key client1


[B]Server-Konfiguration[/B]
mv /opt/etc/openvpn/openvpn.conf /opt/etc/openvpn/openvpn.conf.alt
cd /opt/etc/openvpn
touch openvpn.conf
nano openvpn.conf

Folgender Inhalt

port 1194
proto udp
dev tun

ca /opt/etc/openvpn/keys/ca.crt
cert /opt/etc/openvpn/keys/server.crt
key /opt/etc/openvpn/keys/server.key
dh /opt/etc/openvpn/keys/dh1024.pem

server 192.168.22.0 255.255.255.0
ifconfig-pool-persist ipp.txt

client-to-client
push "route 192.168.5.0 255.255.255.0"
push "redirect-gateway"

keepalive 10 120

comp-lzo

persist-key
persist-tun
status openvpn-status.log

verb 3
daemon


Das virtuelle VPN-Netzwerk verteilt also IP-Adressen im Bereich 192.168.22.XX. Zudem kann man auf das interne Netzwerk zugreifen (192.168.5.XX) und über dieses surfen, sofern im Router eine statische Route folgendermassen erstellt worden ist:

Ziel-IP: 192.168.22.0   IP-Subnetz-Maske: 255.255.255.0   Gateway-IP-Adresse: {ip-des-openvpn-servers}   Metrik: 2

Um den Server automatisch zu starten bearbeitet man die Datei

/opt/etc/init.d/S20openvpn

Nun sucht man die Zeile

insmod /opt/lib/modules/tun.o

und ersetzt sie mit

insmod /lib/modules/tun.ko

Die Zeile

return 0

löscht man komplett.


[B]Client-Konfiguration[/B]
client
dev tun
proto udp
remote dyndns-adresse.org 1194

resolv-retry infinite

nobind

persist-key
persist-tun

ca C:\\programme\\openvpn\\keys\\ca.crt
cert C:\\programme\\openvpn\\keys\\client1.crt
key C:\\programme\\openvpn\\keys\\client1.key

comp-lzo
verb 3
resolv-retry infinite
nobind
persist-key
persist-tun

ca C:\\programme\\openvpn\\keys\\ca.crt
cert C:\\programme\\openvpn\\keys\\client1.crt
key C:\\programme\\openvpn\\keys\\client1.key

comp-lzo
verb 3


Die Konfigurationsdatei kommt (unter Windows) in folgendes Verzeichnis:

c:\programme\OpenVPN\config

Zudem muss man ein neues Verzeichnis

c:\programme\openVPN\keys

erstellen. In dieses kopiert man den Client-Key, das Client-Zertifikat und das ca-Zertifikat.


[B]Portfreigabe[/B]
Im Router Port 1194 freigeben

Oder SSH Tunnel
http://hydra.geht.net/tino/howto/linux/ssh--tunnel/

gruss
ubuntulinux

Hallo, vielen Dank für die Anleitung, möchte das auch gerade ausprobieren.

hab aber ein problem beim durchführen:

beim cp easy-rsa/2.0 /opt/etc/openvpn tut er sich schonmal schwer mit kopieren, meldet da "omitting directory `easy-rsa/2.0'"

ich konnte es dann aber per mv verschieben, das ging dann...

dann aber die drei:
./build-ca
./build-key-server server
./build-dh

die funktionieren nicht, obwohl ich korrekt im verzeichnis
/opt/etc/openvpn/easy-rsa
bin. Er meldet da (z.b.) -ash: ./build-key-server: not found

fehlt da was? :confused: sonst zeigt er keine fehler...
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
cp -r wär richtig gewesen ;)

was sagt denn ls im easy-rsa Verzeichnis`?

gruss
ubuntulinux
 

macrozone

Benutzer
Mitglied seit
03. Aug 2007
Beiträge
58
Punkte für Reaktionen
0
Punkte
0
cp -r wär richtig gewesen ;)

was sagt denn ls im easy-rsa Verzeichnis`?

gruss
ubuntulinux
ls...
die dateien sind vorhanden :confused:



ich probiers mal nochmal mit cp -r

€dit: ne, ändert auch nichts... kanns was mit den zugriffsrechten zu tun haben?

Code:
myServer> ls -l
total 124
drwxr-xr-x 2 root root  4096 Apr  4 21:10 2.0
-rw-r--r-- 1 root root   389 Apr  4 21:09 Makefile
-rw-r--r-- 1 root root  9281 Apr  4 21:09 README
-rwxr-xr-x 1 root root   121 Apr  4 21:09 build-ca
-rwxr-xr-x 1 root root   354 Apr  4 21:09 build-dh
-rwxr-xr-x 1 root root   190 Apr  4 21:09 build-inter
-rwxr-xr-x 1 root root   165 Apr  4 21:09 build-key
-rwxr-xr-x 1 root root   159 Apr  4 21:09 build-key-pass
-rwxr-xr-x 1 root root   251 Apr  4 21:09 build-key-pkcs12
-rwxr-xr-x 1 root root   270 Apr  4 21:09 build-key-server
-rwxr-xr-x 1 root root   215 Apr  4 21:09 build-req
-rwxr-xr-x 1 root root   160 Apr  4 21:09 build-req-pass
-rwxr-xr-x 1 root root   430 Apr  4 21:09 clean-all
drwxr-xr-x 3 root root  4096 Apr  4 21:09 easy-rsa
-rwxr-xr-x 1 root root  1459 Apr  4 21:09 inherit-inter
-rwxr-xr-x 1 root root   297 Apr  4 21:09 list-crl
-rwxr-xr-x 1 root root  7768 Apr  4 21:09 openssl-0.9.6.cnf
-rwxr-xr-x 1 root root  8328 Apr  4 21:09 openssl.cnf
-rwxr-xr-x 1 root root 12504 Apr  4 21:09 pkitool
-rwxr-xr-x 1 root root   920 Apr  4 21:09 revoke-full
-rwxr-xr-x 1 root root   180 Apr  4 21:09 sign-req
-rwxr-xr-x 1 root root  1678 Apr  4 21:09 vars
-rwxr-xr-x 1 root root   190 Apr  4 21:09 whichopensslcnf


€dit 2: moment, da stimmt was nicht, ich bin ja gar nicht im easy-rsa-verzeichnis... moment...
 
Zuletzt bearbeitet:

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
chmod * *.*

dann versuch anstatt ./irgendwas nur mit irgendwas

wenn das nicht geht, einfach das easy-rsa/2.0 Verzeichnis vom original-OpenVPN ins Hauptverzeichnis des OpenVPN auf der Syno kopieren und in easy-rsa umbenennen

gruss
ubuntulinux
 

pillepalle

Benutzer
Mitglied seit
07. Mrz 2009
Beiträge
184
Punkte für Reaktionen
0
Punkte
16
statische route angelegt auf dem router, andem die ds angeschlossen ist? (So wie im Attachment?)

1 wär bei dir 10.8.0.0, 2 wär die IP deiner DS

hmmm wieso das? ich will ja nicht vom DSL-ROuter das 10.8.0.0-Netz erreichen.
 

pillepalle

Benutzer
Mitglied seit
07. Mrz 2009
Beiträge
184
Punkte für Reaktionen
0
Punkte
16
in den easy-rsa scripten steht oben ein falscher pfad zum shell-binary (bash) drin. glaub /usr/bin/bash, und auf der syn ist es ja /opt/bin/bash. also entweder das ändern, damit es per ./scriptname geht, oder , weniger umständlich, einfach "sh scriptname" machen (bzw "bash ...)
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
bei mir war es notwendig, die statische Route anzulegen, damit ich surfen konnte bzw die Geräte im Netzwerk 192.168.5.XX nutzen konnte.

Habe das mit dem easy-rsa genauso gemacht, wie ich hier geschrieben habe. Hast du auch genau alles so getan?

gruss
ubuntulinux
 

pillepalle

Benutzer
Mitglied seit
07. Mrz 2009
Beiträge
184
Punkte für Reaktionen
0
Punkte
16
bei mir war es notwendig, die statische Route anzulegen, damit ich surfen konnte bzw die Geräte im Netzwerk 192.168.5.XX nutzen konnte.
die geräte VOM vpnclient nutzen, was hat damit der internetrouter zu tun? ah vllt hast du recht, wenn nämlich die DS kein NAT macht (dazu bräuchte man iptables oder so), dann schlägt der vpnclient mit seiner vpn-ip 10.8.0.x auf dem dsl-router auf, und dann muss der dsl-router wissen, worüber der die antworten routen soll. right?
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
die lösung heisst: versuchen ;)

gruss ubuntulinux
 

macrozone

Benutzer
Mitglied seit
03. Aug 2007
Beiträge
58
Punkte für Reaktionen
0
Punkte
0
in den easy-rsa scripten steht oben ein falscher pfad zum shell-binary (bash) drin. glaub /usr/bin/bash, und auf der syn ist es ja /opt/bin/bash. also entweder das ändern, damit es per ./scriptname geht, oder , weniger umständlich, einfach "sh scriptname" machen (bzw "bash ...)

hm etwas stimmt mit der vars datei nicht.

was muss bei (zeile 15)
export EASY_RSA=

stehen? ich hab mal dort den absoluten pfad eingetragen zum script, d.h.
export EASY_RSA='/opt/etc/openvpn/easy-rsa'

wenn ich dann
Rich (BBCode):
bash
source vars
exit

und danach
Rich (BBCode):
sh build-ca

dann krieg ich

Rich (BBCode):
myServer> sh build-ca
  Please edit the vars script to reflect your configuration,
  then source it with "source ./vars".
  Next, to start with a fresh PKI configuration and to delete any
  previous certificates and keys, run "./clean-all".
  Finally, you can run this tool (pkitool) to build certificates/keys.

und bei den anderen build-scripts krieg ich ebenfalls die meldung, ich solle zuerst die vars bearbeiten... :confused:

... :confused:
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat