On 24/10/2023 07:46, Peter Davis via Openvpn-users wrote:
Hi,
I see the same message. Linux capabilities? Should I install any package or...?


Linux capabilities is a security feature provided by the kernel. For OpenVPN (or any other tunneling software, in fact), certain capabilities (such as CAP_NET_ADMIN) are required to modify network settings, changing network routes or creating and removing virtual network interfaces. Other capabilities gives other privileges on the system.

The root user, by default, is granted all capabilities. Ordinary users on the system does not have any capabilities enabled by default.

When starting OpenVPN via the openvpn-client@.service or
openvpn-server@.service systemd unit files, some capabilities are granted to the the OpenVPN process may transition to, like the "openvpn" user. CAP_SETPCAP and CAP_NET_ADMIN are two of those. The first one is actually used to allow the OpenVPN process to keep setup certain capabilities as it transitions to the user provided via the --user option. The CAP_NET_ADMIN is, not surprisingly, used to setup the virtual network adapter (both tun and ovpn-dco) and get network routes set up properly.

I strongly encourage everyone to start OpenVPN, especially server configurations, via the systemd unit files provided by the OpenVPN project. This will attempt to reduce the privileges the OpenVPN process needs to do its job.


If you want an OpenVPN client setup running with the least privileges possible, you could have a look at the OpenVPN 3 Linux project [0]. This project attempts to go even further by splitting up the responsibility of the client connection (keeping the link to the server, encrypting/decrypting traffic) and the network configuration (creating the virtual interface, configuring VPN IP addresses, network routes and DNS) into separate components. The client connection component runs completely unprivileged while the network configuration component runs as a separate process without any root privileges, just CAP_NET_ADMIN and a few other selected ones (depending on the host configuration).

This ensures the privileged network configuration process can only do a set of limited operations on the host, while the unprivileged client process can only pass traffic to and from the server, do the needed crypto operations on that traffic and send that traffic to/from the local virtual interface.


[0] <https://community.openvpn.net/openvpn/wiki/OpenVPN3Linux>


--
kind regards,

David Sommerseth
OpenVPN Inc




_______________________________________________
Openvpn-users mailing list
Openvpn-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-users

Reply via email to