IB Standards
3.1.4 Technologies required to provide a VPN
3.1.5 Evaluate the use of a VPN
VPNs help make a “tunneled” network connection through the internet or any other kind of network. In this problem set you will be creating a VPN tunnel by using the ngrok service. Your computer will host a server at a port and you will allow ngrok to create a tunnel to that port. This will let your client app be able to connect to your server. Anyone else from anywhere in the world will be able to connect to your server!
A VPN lets any device exchange data across the internet. The devices don’t know where the network is, as far as they know they could be within the network they are connecting to or they could be across the world. Technically, a VPN could let any device access all of your files and information, if there are no security measures in place.
For secure VPNs all traffic must be encrypted, authenticated and then sent along virtual tunnels. By default, ngrok creates tunnels that are unsecured. This is not a huge problem while we do our problem set but in a real application you would want to use secure tunnels.
Two types of secure VPN technologies are:
To create a secure tunnel with ngrok you can specify TLS as the encryption method:
ngrok tls -hostname=app.example.com 443
Some connections use private circuits leased from a trusted communications provider: alone, this is called a trusted VPN. Other connections send encrypted traffic over the public Internet: alone, this is called a secure VPN. Using a secure VPN over a trusted VPN is called a hybrid VPN.
Trusted VPNs can be separated into two “layer2” and “layer 3” VPNs.
There are some technologies needed for layer 2 VPNs, which cause applications to think that they are in the same physical location:
There are other technologies needed for layer 3 VPNs (ngrok), which route information over a “tunnel” to another location:
Finally, all VPNs need to be able to have the same software and hardware requirements: