OpenVPN auf der Diskstation
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 push “route 192.168.5.0 255.255.255.0″ #Hier die Route des lokalen Netzes eintragen (meist 192.168.0.0 oder 192.168.1.1) push “dhcp-option DNS 192.168.5.1″ #Hier einen DNS eintragen (zB IP des Routers oder 62.2.24.162 (cablecom dns)) 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