My VPN provider isn’t being supported by the Synology VPN client (because they aren’t using the standard port 1194, instead 1195). After tinkering with the ovpn files the Synology VPN client uses to store the connection settings (and failing), I just installed openvpn with ipkg.
However after tinkering around with the init-script provided by the openvpn ipkg from the NSLU2 feed, I got tired and just rewrote the damn thing:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
#!/bin/sh case $1 in start) # Enable ipv4_forwarding echo 1 > /proc/sys/net/ipv4/ip_forward # Create the necessary file structure for /dev/net/tun 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 # Load the tun module if not already loaded if ( !(lsmod | grep -q "^tun") ); then insmod /lib/modules/tun.ko fi # Start the openvpn service /opt/sbin/openvpn --daemon --cd /opt/etc/openvpn --config openvpn.conf --writepid /var/run/openvpn.pid echo "Started Optware openvpn-client" ;; stop) # Kill the openvpn service if [ -f /var/run/openvpn.pid ] ; then # Compare the pidfile and the current pid [ "`cat /var/run/openvpn.pid`" == "`pidof openvpn`" ] && kill -TERM `pidof openvpn` else echo "Stopping Optware openvpn-client: No pidfile found" fi # Unload the tun module if ( (lsmod | grep -q "^tun") ); then rmmod -f tun fi echo "Stopping Optware openvpn-client" ;; status) # Check the status if [ -f /var/run/openvpn.pid ] ; then [ "`cat /var/run/openvpn.pid`" == "`pidof openvpn`" ] && echo "openvpn-client is running" else echo "openvpn-client is stopped" fi ;; reload) if [ -f /var/run/openvpn.pid ] ; then [ "`cat /var/run/openvpn.pid`" == "`pidof openvpn`" ] && kill -HUP `pidof openvpn` echo "Reloading Optware openvpn-client" fi ;; restart) $0 stop sleep 4 $0 start ;; esac |
Place the file in /opt/etc/init.d/S20openvpn, and the client daemon will start on boot.