I personally use openvpn to good effect. Getting the keys set up is rather annoying and it takes a bit of time to get the network configuration working properly, but once it is operational it works perfectly.
I usually pre-create a tap interface and configure openvpn to use that. -Matt
