OpenVPN auf der Diskstation: Unterschied zwischen den Versionen

Aus
Zeile 152: Zeile 152:
erstellen. In dieses kopiert man den Client-Key, das Client-Zertifikat und das ca-Zertifikat.
erstellen. In dieses kopiert man den Client-Key, das Client-Zertifikat und das ca-Zertifikat.


==== Port freigeben ====
=== Port freigeben ===
Man muss lediglich den Port 1194 (UDP) auf die Synology DiskStation weiterleiten.
Man muss lediglich den Port 1194 (UDP) auf die Synology DiskStation weiterleiten.



Version vom 23. Februar 2011, 16:42 Uhr

Was ist OpenVPN?

VPN steht für virtuelles privates Netzwerk. Es gibt verschiedene VPN-Lösungen wie zum Beispiel PPTP (Windows), welches sehr einfach einzurichten ist, jedoch hat OpenVPN viel mehr Konfigurationsmöglichkeiten. Ich brauche VPN, um zB von der Schule mit meinem Netbook auf meine Freigaben zugreifen zu können oder um den Router zu konfigurieren. Man kann den kompletten Internetverkehr über den verschlüsselten Tunnel laufen lassen. Die Umsetzung der unten stehenden Anleitung erfolgt auf eigene Gefahr.

Erforderliche Pakete installieren

Um die Pakete installieren zu können, wird vorausgesetzt, dass die DiskStation gebootstrapped ist.

ipkg install module-init-tools openvpn openssl bash nano

Modul tun.ko einbinden

Das Modul “tun.ko” ist ab DSM 2.3 in der Firmware der DiskStation enthalten. Es sorgt für das Tunneling.

/sbin/insmod /lib/modules/tun.ko
mkdir /dev/net/
mknod /dev/net/tun c 10 200

IP-Forwarding in der Kernelschnittstelle aktivieren

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

ca und server-key für OpenVPN generieren

mkdir /openvpntemp
cd /openvpntemp
wget http://openvpn.net/release/openvpn-2.1.1.tar.gz
tar -zxvf *.tar.gz 

cp -r openvpn-2.1.1/easy-rsa/2.0 /opt/etc/openvpn/
cd /opt/etc/openvpn/
mv 2.0 easy-rsa
cd easy-rsa
 
bash
source ./vars
 
mkdir -p /opt/etc/openvpn/easy-rsa/keys
bash ./clean-all
bash ./build-ca
bash ./build-key-server server
bash ./build-dh

Client-Keys generieren

Achtung: Für jeden Client muss ein eigener Key generiert werden (client1, client2, clientn)

bash ./build-key client1

Server-Konfiguration

mv /opt/etc/openvpn/openvpn.conf /opt/etc/openvpn/openvpn.conf.alt

cd /opt/etc/openvpn
touch openvpn.conf
nano openvpn.conf

Der Inhalt der Konfigurationsdatei ist

port 1194
proto udp
dev tun
 
ca /opt/etc/openvpn/easy-rsa/keys/ca.crt
cert /opt/etc/openvpn/easy-rsa/keys/server.crt
key /opt/etc/openvpn/easy-rsa/keys/server.key
dh /opt/etc/openvpn/easy-rsa/keys/dh1024.pem
 
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
 
client-to-client
#Hier die Route des lokalen Netzes eintragen (meist 192.168.0.0 oder 192.168.1.1)
push “route 192.168.5.0 255.255.255.0″
#Hier einen DNS eintragen (zB IP des Routers oder 62.2.24.162 (cablecom dns))
push “dhcp-option DNS 192.168.5.1″
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 10.8.0.XX. Zudem kann man auf das interne Netzwerk zugreifen, welches im Bereich 192.168.5.XX liegt, und über dieses surfen, sofern im Router eine statische Route folgendermassen erstellt worden ist:

Netz: 10.8.0.0 Subnet: 255.255.255.0 Gateway: {ip-der-DiskStation} Metrik: 2

Server automatisch starten

Die Datei leeren:

>/opt/etc/init.d/S20openvpn

Danach muss man die Datei mit nano öffnen

nano -w /opt/etc/init.d/S20openvpn

Und per copy&paste folgender Inhalt in die Datei übernehmen:

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
 
if ( [ ! -c /dev/net/tun ] ) then

if ( [ ! -d /dev/net ] ) then
mkdir -m 755 /dev/net
fi
mknod /dev/net/tun c 10 200
fi 
 
if ( !(lsmod | grep -q “^tun”) ); then
insmod /lib/modules/tun.ko
fi
 
if [ -n "`pidof openvpn`" ]; then
/bin/killall openvpn 2>/dev/null
fi
 
/opt/sbin/openvpn –daemon –cd /opt/etc/openvpn –config openvpn.conf
# [EOF]


Client-Konfiguration Windows

Die Client-Konfiguration kann 1:1 übernommen werden. Nur die DynDNS Adresse muss eingetragen und der Name des Clientzertifikats geändert werden.

client
dev tun
proto udp
remote meine.dyndns.org 1194

resolv-retry infinite
nobind
persist-key
persist-tun

remote-cert-tls server
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 (Name ist egal, entscheidend ist die Endung .ovpn) kommt (unter Windows) in folgendes Verzeichnis:
c:\programme\OpenVPN\config (Windows 64: c:\Program Files (x86)\OpenVPN\config

Zudem muss man ein neues Verzeichnis
c:\programme\openVPN\keys (Win 64: c:\Program Files (x86)\OpenVPN\keys)

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

Port freigeben

Man muss lediglich den Port 1194 (UDP) auf die Synology DiskStation weiterleiten.

Links

http://www.velderboard.li/linux-unix/openvpn-auf-synology-nas/
http://openvpn.net/index.php/open-source/documentation.html