I have an OpenRD-Client (SheevaPlug/GuruPlug's bigger brother) that operates as my firewall at home. Because the firewall here at work doesn't allow port 22 outbound, I simply moved the service to port tcp/443) which everyone allows. That gives me full command line access to the device. If you set up you SSH server correctly, you can even pass X over the link and run GUI applications from your linux box remotely.
If you're looking for more traditional VPN, google for OpenSWAN.