From charlesreid1

How VPN Works

Virtual private networks are a way of creating "virtual networks." This allows you to use an existing network connection to establish a new network connection. Networks need not be encrypted, but a virtual private network without encryption does not give you any extra security.

VPNs become useful when you add an encryption layer on top. This enables two nodes to establish a virtual network and communicate using an end-to-end encrypted link. All communication between these two nodes is encrypted. If one node can reach the other, and if the client trusts the certificate provided by the server, the encrypted connection is established and the virtual network is built over that encrypted link. Now, anyone on the local network who would have been able to monitor your traffic will now only see encrypted packets passing between the client and the VPN server.

Setup

Get Source

Get tarball of source code from here: https://openvpn.net/index.php/open-source/downloads.html

Get the signature of the tarball

Verify the tarball with its signature

Unzip the tarball

Pre-Build

Get a few development libraries required to build OpenVPN:

$ apt-get install libzo2-dev libpam-dev

Configure/Make/Make Install

Do the Linux source code build dance:

$ ./configure
$ make 
$ make install


Single Client: Static Key VPN Setup

Detailed instructions for setting up a static key virtual private network (VPN), the simplest arrangement for a single-client VPN:

OpenVPN/Static Key

Forcing Traffic Thru OpenVPN on Router

Use the redirect-gateway option in OpenVPN to redirect all network traffic through the OpenVPN tunnel. This sets the OpenVPN server as the "redirected" gateway.

Links:

Flags