The KerOS firmware comes with strongSwan and OpenVPN clients pre-installed. The credentials, however, need to be stored in a very specific way, described in this page.
The steps to make the VPN work are the following:
pnr_uploader
commands return with a status. If the status is different from 0
, this is a failure. Stop and ensure you followed all the steps before you continue.
Wirnetâ„¢ i-series gateways embed the TrustZone security feature provided by ARM microprocessors. TrustZone technology is used to run a trusted boot and a trusted OS to create a Trusted Execution Environment.
The trusted OS is ProvenCore, from Prove&Run.
The firmware comes with two VPN clients: strongSwan (IPSec) and OpenVPN. These clients are modified to be able to read the secrets (passwords, keys, certificates, etc.) from that hardware-backed secure storage. This means that the sensitive data is encrypted and stored in a memory that cannot be read from the userland or even the kernel. The only way the data can be extracted is through the use of the embedded VPN clients, which are compiled using a dedicated library provided by ProvenCore.
For example, if the embedded client's version is OpenVPN 2.3.14, please ensure the server uses a compatible version (if possible, the same).
You can check the version with:
openvpn --version
Or:
ipsec --version
The entire secret management on KerOS firmware is handled by ProvenCore for OpenVPN/strongSwan.
ipsec.secrets
config file
Here are some examples that can be used to setup a whole VPN infrastructure: