VPN = Virtual Private Network, and is used to log securely into your private network.
A general explanation can be found here.
All the options that you have :
IPSec – is supported by Red Hat, is one of the first SW used for something like this, quite complicated
OpenVPN – is L2TP, is free, there is a free client application for Android devices (link). HomePage. Good and simple explanation can be found here.
PPTP – Point-to-Point Tunneling Protocol (there are mainly 3 types of VPN servers: Point-to-Point Tunneling Protocol (PPTP), Layer 2 Tunneling Protocol (L2TP) and OpenVPN). PPTP is supported natively on almost all devices, Windows, Linux, Android, IOS and Mac OS.
FreeSwan – uses IPSec
Some additional terms :
TUN – virtual network interface whom OS is seeing as a point-to-point network, for example a T1 line. But instead of the network tun pushes data towards the userspace, where user device can open a tun device as any other file, and read/write in it (IP packages).
TAP – interface similar to TUN, only it imitates ethernet, and not P-t-P.
How OpenVPN works :
IP->UDP->SSH—>TUN/TAP interface————–>TUN/TAP interface on another machine
Since IP has a TCP layer, encapsulation in UDP does not add overhead, but encapsulation in SSH adds security.