Using a VPN is an obvious solution when you are connected to internet on an untrusted network. Instead of paying a subscription to a VPN service, I decided to create my own VPN server. It turns out that this is much simpler than I expected.
In this article, I briefly explain what is a VPN and its advantages. I then explain how I built my own VPN server.
macOS 10.13 contains a built-in VPN client that natively supports L2TP over IPSec as well as IKEv2.
In this post I describe some parts of the internal architecture of the macOS VPN client. This information will be used in a following article to build an application that replicates some functionalities of the VPN status in the menu bar. This application will also allow to auto connect to an IKEv2 VPN service, something that is currently not possible on macOS.