Skip to content

Support NetworkManager-managed OpenVPN profiles, alongside the existing wg-quick and NM WireGuard paths #7

Description

@yoann54

First, thanks for the privilege boundary section in the README — the setresuid-around-the-read on import and the reasoning about why the setup script goes through a terminal rather than pkexec are the most careful writeups I've read in a bar widget. It's why I'm filing this rather than just moving on.

The gap

OpenVPN is driven exclusively through openvpn-client@ with profiles in /etc/openvpn/client. WireGuard already gets two routes, one of them NetworkManager, which the README rightly points out needs neither the root helper nor wireguard-tools. OpenVPN has no equivalent.

Why that matters

Corporate OpenVPN with a one-time password (static-challenge, or a dynamic challenge from the server) cannot work through a systemd unit. There is no tty and no dialog in which to type a code that rotates every 30 seconds, and the stored-credentials model can't hold one by definition. So the whole class of 2FA work VPNs is out of reach of the OpenVPN backend today, even though the widget is otherwise exactly what I want.

NetworkManager handles this case: its secret agent prompts interactively at connect time, per connection, with a field for the challenge response. That's the same mechanism that makes it work on Ubuntu out of the box.

What I'm asking for

List and control OpenVPN connections from nmcli the way WireGuard ones already are — connections of type vpn with vpn.service-type ending in openvpn, brought up and down with nmcli connection up/down. No root helper, no /etc/openvpn/client, polkit governs activation. If it's useful, nmcli connection import type openvpn file <path> would slot in as a third option under Add config, next to the two WireGuard ones.

One question while I'm here

Does unified mode currently notice a tun interface that NetworkManager brought up on its own? I'd expect the interface-derived parts (address, routes, uptime, throughput) to work since they come off the interface, but there'd be no profile row to attribute it to. If it does show up, a partial view might already be closer than I think.

Happy to test patches — I have a static-challenge config to hand.

Environment: Omarchy 4 (Quattro), MultiVPN via omarchy plugin add, OpenVPN profile imported into NetworkManager with networkmanager-openvpn.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions