It is nearly trivial to configure a static IPSEC setup, and only somewhat more complex for dynamic "dial-in" style support. But most of the existing Linux FAQs on this are either out-of-date (pre-2.6 kernel days) or overly complex in their explanations.

But this one is really well written. Just walk through the examples given, trying them between any two machines, and you'll be an expert in no time.

Cheers