Skip to content

Support for OpenVPN 3 Linux

Hi,

I'm the upstream maintainer of the OpenVPN 3 Linux project and I was pointed into this project by coincidence. This project is pretty cool, and I see that implementing support for OpenVPN 3 Linux directly could make this utility far more versatile. I've wanted to dig into this for a long time, but never had the time needed to dig into GNOME Shell extension writing.

What separates OpenVPN 3 Linux from all the other approaches is that it is designed around D-Bus. Front-end programs (like the command line openvpn3 - or such extensions as yours) do not need to think about executing the right binary with the right privileges. These front-ends just need to related to an OpenVPN 3 API on the system D-Bus. Multi-user support is also provided out-of-the-box.

This means a GNOME Shell extension (or any other front-end tool) would just need to query the OpenVPN 3 Configuration Manager service for available configurations to know which configurations are available. To add a new configuration, it would just need to load the configuration file and call the ImportConfig method.

To start a VPN session, a call to the OpenVPN 3 Session Manager service to start a new tunnel is the starting point. Each running VPN session has its own D-Bus object where they are managed independently, like disconnecting or restarting the session.

I am willing to help out getting this rolling, but my JavaScript understanding - and in particular with GNOME Shell is extremely scarce. But I know what is needed to be called and in which order. So if you have time for a collaboration, I would be thankful for that.