OpenVPN

This page describes setting up openVPN


Contents

on an N900

Server Setup

The server should be setup like so:

 http://openvpn.net/index.php/open-source/documentation/howto.html

udp is better than tcp if you can use it. If your client is likely to be behind firewalls then tcp is more likely to work.

Consider whether compression is useful - if you're transferring media or using ssh tunnels then it may not gain much.

If you need access to a nameserver on your LAN you'll need this in the server.conf:

push "dhcp-option DNS 10.0.0.7"            
push "dhcp-option DOMAIN dgreaves.com"

Client Setup

You'll need the openVPN client and the openVPN applet

Create a matching client setup conf and copy it together with the client certificate, key and the ca file to the /etc/openvpn/ directory on the device.

The client.conf may need:

# Allow scripts to be run
script-security 2
# and update the config when a route changes
up /etc/openvpn/maemo-update-resolvconf
plugin /opt/openvpn/lib/openvpn/openvpn-down-root.so "script_type=down /etc/openvpn/maemo-update-resolvconf"

The applet will pickup any .conf files in that directory.

N9 HARMATTAN

Install it from N9Qt

   domain="www.$USER.org" # adapt
   server_inet="0.0.0.0" # adapt
   dev="tun2"
   port="80"
   key="/etc/openvpn/$domain.key"
   server="10.9.8.254"
   client="10.9.8.1"
   conf="/etc/openvpn/$domain.conf"

Server Side :

  sudo mkdir -p /etc/openvpn
  sudo openvpn --genkey --secret "$key"
  cat<<EOF | sudo tee "$conf"
  dev $dev
  port $port
  ifconfig $server $client
  secret $key
  EOF
  sudo openvpn --config "$conf" --verb 6 

Client Side :

  sudo mkdir -p /etc/openvpn
   ssh -t $domain \
       'sudo cat /etc/openvpn/$domain.key' \
       | sudo dd of="/etc/openvpn/$domain.key"
  cat<<EOF | sudo tee "$conf"
  remote $domain
  dev $dev
  port $port
  ifconfig $client $server
  secret $key
  persist-tun
  nobind
  EOF


  $sudo /usr/sbin/openvpn --script-security 2 --config $conf --verb 6