On 15/05/2025 15:30, Stefanie Leisestreichler (Febas) wrote:
> On 5/15/25 14:48, David Sommerseth wrote:
[...snip...]
>>
>> Not when starting via systemd.  In this case, when the `User=openvpn` is
>> set in the service unit file, systemd will drop to that user and set the
>> requested capabilities before executing the binary in ExecStart=.
>>
>> But due to OpenVPN 2.x allowing a lot to happen before it normally drops
>> privileges, a lot of additional capabilities was needed to grant to it -
>> otherwise a lot of configurations didn't work as intended.
>>
>>
> So when I get you right user openvpn in combination with systemd has a
> lot more rights than nobody ever had...

Not quite so.

When starting OpenVPN without systemd, it must be started as root to
have all the needed privileges.  When openvpn has completed the
initialization, it will drop to the user given in openvpn configuration
along with lesser set of capabilities.  During this initialization
phase, the openvpn process has full root access and capabilities.

When starting OpenVPN with systemd, the openvpn process will be started
as the openvpn user with a reduced set of capabilities.  The reduced set
of capabilities is still quite comprehensive, but it is still a bit less
than when starting directly as root.

The difference is basically that starting it via systemd, the openvpn
process and most of the script hooks and plugins will never have the
full root privileges, even in the early stages.  After the
initialization phase has completed, the systemd approach will have
basically the same set of capabilities enabled.  In the source code,
platform_user_group_set() is the function handling this.

It should be possible to narrow down the needed capabilities even more
in the systemd case, but that will require some refactoring to detect it
being started more restricted and drop the steps of reducing its
capability set.  And it would need some additional helper service for
the script hooks to work well without needing to be re-written as well.


-- 
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