www.freeswan.org -- it's an implementation of ipsec for linux,bsd, etc. This lets you do vpn's such as subnet-to-subnet, or host-to-subnet. This latest one supports rsa authentication, 3des encryption on the data, adjustable key life, multiple tunnels, and data compression between the tunnels.
My setup for a company (and between some of my friends) is as follows. 2048 bits keys on each server for authentication, 3des encryption, 2 hour key life (if someone cracks your key, the most info they can get is 2 hours worth, but you can adjust this), subnet to subnet, and compression.
Basically lets my private 192.168.2.0/24 subnet and another (or as many as you want) like 192.168.0.0./24 be connected securely, it really is great -- you can do anythin over the tunnel like samba or X11 forwarding -- and it's secure. Feel free to ask any more questions about what it can do, or if I haven't explained it well, just say so.