From your question missing some vital informations, because here are 3 different situations:
Your Ubuntu/Samba server is on the Internet
Your Ubuntu/Sabma is in the local network, and you now want setup an new computer what should act as VPN server and internet gateway (and firewall and like).
You already have a sort of simple NAT router (e.g. common onebox DSL router) on your network, and need setup an new computer BEHIND this router as an VPN server.
Here are basically 3 different common VPN solutions. PPTP(forget it just now), L2TP and OpenVPN. Good comparison is at http://www.ivpn.net/knowledgebase/62/PPTP-vs-L2TP-vs-OpenVPN.html.
Variant 1.) Personally I'm not recommendig this variant, but (maybe) this is based only my paranoia, and don't want giving you pure subjective answers.
Variant 2.) Setup the Gateway/Firewall/VPN server.
The L2TP (on Ubuntu) solution is (nevertheless to downvote the inappropriate "one external link answer" from @slafat01), described in detail the in the provided link. IMO, configuring L2TP and IPSEC is too hard, my recommendation is (when you don't need communicate to Cisco router or soo) - use rather OpenVPN.
OpenVPN (as already @Anders told above) is nice cross-platform easy-to-configure-and-use VPN solution. You can use any OS Linux or Freebsd for using it.
One solution (already suggested by @nedm) is installing
pfSense. This is an excellent recommendation.
Another solution (and I'm recommending this) is installing "full-blown" FreeBSD-9.0-RELEASE as FW/GW/OpenVPN. It is a bit more complicated as pfSense (not much), but you will get full-featured server, with zilion ports (packages).
Installation is easy, updates and upgrades too (thanks to freebsd-update command) are easy. You will need install and configure Freeradius on your Samba server for acting as IAS and OpenVPN on the Freebsd. (installing is easy - one command, configuration is simuliar as in the above link)
Variant 3). Like above, Freebsd with OpenVPN, FreeRadius, PF but you will need open and open and forward connections to port 1194 (default port) to server on you nat router.
- you want use TAP/bridged mode for your OpenVPN because easier to setup and manage and the second benefit is the ability to use broadcast and all network protocols.
- you want to use Radius server (freeradius) because in this way is possible authenticate users from your DC and don't need manage different user-database on the FreeBSD server. Configure your FreeBSD pam for openvpn to authenticate via Radius.
- you want do not forget to add the
push "dhcp-option DOMAIN ...... to your openvpn.conf. This is an common mistake. Allowing to your remote (road warriors) using your DC.
Sure forgotting something, others can extend my 1st post here, because unfortunately I can post only 2 external links yet.