A useful bit of advice for the casual VPN experimenter:
Set up your home network with a different base IP address than the default. Specifically, set it up so that the router’s address is something like “192.168.25.1” and not the default “192.168.1.1”
The reason for this is that when you VPN into your home network, you might just happen to be at a friend’s house or at a Starbucks, where the local network is on the default “192.168.1.1” network. Things get sticky when the “back home” network address space overlaps the “out of town” network address space.
The easiest way to avoid this is to pick an odd address range (and I mean to change the third number in the address). If you don’t know how, look it up; it’s sometimes not obvious.
My own VPN efforts…
(The OP can stop reading at this point. DD-WRT on a home router will do the job perfectly)
I have set up a small school and a small nonprofit organization with networks. Each had a different networking challenge: at the school, there are about fifty computers; at the nonprofit, there are two small offices, in different towns, that needed to share a network.
In both cases, I decided to use a hardware firewall between the Ethernet cable and the LAN, rather than use a home router for this.
The reason is because, after a few clients, home routers tend to flake out since each client might spawn hundreds of open sockets. The VPN was a second motivation: home routers don’t have enough horsepower to do the math needed for a fat VPN pipe.
Since money was very tight, we used an open-source firewall called m0n0wall (with zeros instead of O’s) installed on Soekris net4801 boxes. The net4801 is a fanless single-board computer, with a 266MHz processor and 256MB RAM, far more than a Linksys router has. You install whatever Linux-based network wizardry you want on it by plugging in a compact flash card.
These units are indestructible. They keep running for months without a hiccup.
A nice plus from m0n0wall was the fact that it provides a captive portal. You can easily set up a login page or clickthrough page, like they have in hotspots and hotels, to limit who can get on to the network.
m0n0wall is free and installs on Soekris hardware (Around $220), though it also will install on PC Engines ALIX boards that cost half the price.
ETA: Note that VPN has lots of weird issues. Things like Windows shares don’t work properly since broadcast traffic is not sent over the VPN. The pipe will definitely not handle huge file transfers nicely. In addition, NAT routers sometimes cause VPN indigestion. That’s why there are fifty different little fussy settings in a VPN device.