Full VPN Setup for Ubuntu: IKEv2 Protocol
StrongSwan, an IKEv1 and IKEv2 daemon for Linux, is the backend for GUI tools like network-manager-strongswan or such. Usually, GUI tools have issues with improper configuration of StrongSwan and the end result is: it does not work.
 1. Install strongswan
sudo apt-get install strongswan libcharon-extra-plugins
2. Edit /etc/ipsec.secrets file and add your credentials.
YOUR_USERNAME : EAP "YOUR_PASSWORD"
3. Open the /etc/ipsec.conf file with your favorite text editor. Erase everything from it and paste the following lines. Replace USERNAME with your username and SERVER with one of our VPN server.
 
 conn vpn
  keyexchange=ikev2
  dpdaction=clear
  dpddelay=300s
  eap_identity="USERNAME"
  leftauth=eap-mschapv2
  left=%defaultroute
  leftsourceip=%config
  right=SERVER
  rightauth=pubkey
  rightsubnet=0.0.0.0/0
  rightid=%any
  type=tunnel
  auto=add
 
 4. Edit the file /etc/strongswan.d/charon/constraints.conf and change "load = yes" to "load = no".
 
 5. Our VPN servers identify themselves using certificates. StrongSwan needs to verify server certificate and in order to do so it searches its certificates store. Fortunately, StrongSwan's certificate store can easily be linked to the system (OpenSSL) certificate store. To link the StrongSwan's certificate store to the system (OpenSSL) certificate store, execute the following two commands:
 
 sudo rmdir /etc/ipsec.d/cacerts
 sudo ln -s /etc/ssl/certs /etc/ipsec.d/cacerts
 
 6. Restart the strongswan daemon to adopt the new configuration.
 
 sudo ipsec up vpn
 
 7. To disconnect use:
 sudo ipsec down vpn
 
 8. To check status of connection:
 sudo ipsec status vpn
