======= OpenVPN ====== Brief Note **This tutorial also works with DNS320. **If you are looking to setup a OpenVPN Access Server box with NAT routing/bridging capabilities, look away. Our default kernel does not have iptables inbuilt or any alternatives. Building one not easy unless you are able to find the right dependencies and compile the right stuffs over (cross-compile). *OpenVPN config information is here, **http://openvpn.net/index.php/open-source/documentation/howto.html **read it!** **also look at the forum post http://dns323.kood.org/forum/t1495-Compiled-Working%3A-OpenVPN.html Here is a quick guide for funpkg (YMMV) ===== OpenVPN Client Tutorial ===== get funpkg openvpn package from http://ffp.wolf-u.li/additional/net-misc/ wget http://ffp.wolf-u.li/additional/net-misc/openvpn-2.2.1-2.tgz install package on your NAS funpkg -i openvpn-2.2.1-2.tgz create certificates and keys on a fast computer with //openvpn// installed, I did this on my ubuntu 11.04 box cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 ~/openvpn_certificates cd ~/openvpn_certificates edit the //./vars// file to your liking and load the variables . ./vars clean data ./clean-all build certificate authority ./build-ca now build the key for the server (your NAS) (and sign certificate) ./build-key-server server and for a client (and sign certificate) ./build-key client and for another client ./build-key phone build [[http://www.rsa.com/rsalabs/node.asp?id=2248|diffie-hellman]] parameters ./build-dh now you have all the files you need in // ~/openvpn_certificates/keys // copy the following files to the NAS and put for example in // /ffp/etc/openvpn // ca.crt ca.key dh1024.pem server.key server.crt now create a openvpn config file, for example // /ffp/etc/openvpn.conf // port 1194 proto udp dev tun ca /ffp/etc/openvpn/ca.crt cert /ffp/etc/openvpn/server.crt key /ffp/etc/openvpn/server.key # This file should be kept secret dh /ffp/etc/openvpn/dh1024.pem # openvpn server will be on 10.8.0.1 server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt status openvpn-status.log keepalive 10 120 comp-lzo persist-key persist-tun verb 3 for more info on configuring openvpn look at http://openvpn.net/index.php/open-source/documentation/howto.html#server for the openvpn server to work, the //tun.ko// kernel module must be loaded, unfortunately there is a small error in the funpkg package so mv /ffp/lib/modules/kernel/2.6.12.6-arm1/tun.ko /ffp/lib/modules/kernel/2.6.12.6-arm1/drivers/net/tun.ko now try the openvpn server sh /ffp/start/openvpn.sh debug if it works ctrl+c sh /ffp/start/openvpn.sh start if you want to start openvpn at funpkg startup chmod 755 /ffp/start/openvpn.sh ===== CLIENT ===== configuring the client will not be described here in detail but you need the following files from //~/openvpn_certificates/keys// on your openvpn client ca.crt client.crt client.key //my// client configuration looks like this client dev tun proto udp remote [server ip or hostname] 1194 resolv-retry infinite nobind user nobody group nogroup persist-key persist-tun ca ~/openvpn/ca.crt cert ~/openvpn/client.crt key ~/openvpn/client.key comp-lzo again, for detailed information look at http://openvpn.net/index.php/open-source/documentation/howto.html#client if you want you reach your NAS from outside your network, do not forget to forward port 1194 in your router (or whichever port you have chosen) if everything goes allright when connected, your NAS will be reachable at 10.8.0.1 test it for example by ping 10.8.0.1 note: if you are already connected to a //10.8.0.*// network, routing will be messed up, it could be convenient to chose a bit more obscure address for your vpn, for example //10.161.80.*//