The Robur cooperative blog.
Back to index

MirageVPN server

It is a great pleasure to finally announce that we have finished a server implementation for MirageVPN (OpenVPNā„¢-compatible). This allows to setup a very robust VPN network on both the client and the server side.

As announced last year, MirageVPN is a reimplemtation of OpenVPNā„¢ in OCaml, with MirageOS unikernels.

Why a MirageVPN server?

Providing Internet services with programming languages that have not much safety requires a lot of discipline by the developers to avoid issues which may lead to exploitable services that are attacked (and thus will circumvent any security goals). Especially services that are critical for security and privacy, it is crucial to avoid common memory safety pitfalls.

Some years back, when we worked on the client implementation, we also drafted a server implementation. The reasoning was that a lot of the code was already there, and just a few things needed to be developed to allow clients to connect there.

Now, we spend several months to push our server implementation into a state where it is usable and we are happy for everyone who wants to test it. We also adapted the modern ciphers we recently implemented for the client, and also tls-crypt and tls-crypt-v2 for the server implementation.

The overall progress was tracked in this issue. We developed, next to the MirageOS unikernel, also a test server that doesn't use any tun interface.

Please move along to our handbook with the chapter on MirageVPN server.

If you encounter any issues, please open an issue at the repository.