Android IPSec PSK VPN - Nexus One with OpenSWAN

Looking to secure my internet traffic when on a public network and away from home I decided to set up a VPN between my phone and my Ubuntu server. This would allow all of my phone's traffic to be encrypted and tunneled through my Ubuntu server and home internet connection. Effectively this will make it difficult for people to listen to my traffic and in essence would offer additional security to my browsing and email when on a public network. My phone is an Android Google Nexus One; and unfortunately Android versions up to and including Gingerbread (2.3.4) do not support OpenVPN out of the box, unless you root your device. Read on to see how I set up my Android to Home IPSec VPN...