OpenVPN 構成は CLI では機能しますが、NetworkManager では機能しません (TLS ハンドシェイクが失敗しました)

OpenVPN 構成は CLI では機能しますが、NetworkManager では機能しません (TLS ハンドシェイクが失敗しました)

sudo openvpn --config [VPN-NAME].ovpn: 動作します
NetworkManager 構成: 動作しません (同じですが、コピーペーストされた構成です)

[VPN-NAME].ovpn:

dev tun
persist-tun
persist-key
ncp-disable
cipher AES-256-CBC
auth SHA512
tls-client
client
resolv-retry infinite
remote [hostname] 1194 udp
setenv opt block-outside-dns
lport 0
verify-x509-name "[hostname]" name
auth-user-pass
remote-cert-tls server
<ca>
[CA CERTIFICATE]
</ca>
<cert>
[CERT CERTIFICATE]
</cert>
<key>
[CERT KEY]
</key>
key-direction 1
<tls-auth>
#
# 2048 bit OpenVPN static key
#
[TLS-KEY]
</tls-auth>

ネットワーク マネージャーの構成:

  • 証明書とキーを.ovpn個別のファイルにコピー&ペースト
  • 「接続タイプ」を選択し、値「証明書付きパスワード(TLS)」
  • コピーペーストされたゲートウェイとファイルパス
  • 「詳細...」に移動しました
  • [VPN-NAME] を「TLS設定」タブにコピー&ペーストし、「名前を正確に確認」を選択しました
  • 選択されたモード「TLS-Auth」、コピーペーストされたtls-auth.keyパス、キー方向「クライアント(1)」

tail -f /var/log/syslog:

debian NetworkManager[648]: <info>  [1609951704.7482] audit: op="statistics" arg="refresh-rate-ms" pid=2126 uid=1000 result="success"
debian NetworkManager[648]: <info>  [1609951706.1485] audit: op="connection-activate" uuid="1afd25e7-f3cd-472d-9a3b-31f1ad390479" name="VPN-NAME" pid=2126 uid=1000 result="success"
debian NetworkManager[648]: <info>  [1609951706.1505] vpn-connection[0x55ce8e0d02e0,1afd25e7-f3cd-472d-9a3b-31f1ad390479,"VPN-NAME",0]: Started the VPN service, PID 6763
debian NetworkManager[648]: <info>  [1609951706.1554] vpn-connection[0x55ce8e0d02e0,1afd25e7-f3cd-472d-9a3b-31f1ad390479,"VPN-NAME",0]: Saw the service appear; activating connection
debian NetworkManager[648]: <info>  [1609951706.1591] audit: op="statistics" arg="refresh-rate-ms" pid=2126 uid=1000 result="success"
debian NetworkManager[648]: <info>  [1609951706.2483] audit: op="statistics" arg="refresh-rate-ms" pid=2126 uid=1000 result="success"
debian NetworkManager[648]: <info>  [1609951711.8373] vpn-connection[0x55ce8e0d02e0,1afd25e7-f3cd-472d-9a3b-31f1ad390479,"VPN-NAME",0]: VPN plugin: state changed: starting (3)
debian nm-openvpn[6766]: OpenVPN 2.4.7 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Feb 20 2019
debian nm-openvpn[6766]: library versions: OpenSSL 1.1.1d  10 Sep 2019, LZO 2.10
debian nm-openvpn[6766]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
debian nm-openvpn[6766]: TCP/UDP: Preserving recently used remote address: [AF_INET]A.B.C.D:1194
debian nm-openvpn[6766]: UDP link local: (not bound)
debian nm-openvpn[6766]: UDP link remote: [AF_INET]A.B.C.D:1194
debian nm-openvpn[6766]: NOTE: chroot will be delayed because of --client, --pull, or --up-delay
debian nm-openvpn[6766]: NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
debian NetworkManager[648]: <warn>  [1609951772.4259] vpn-connection[0x55ce8e0d02e0,1afd25e7-f3cd-472d-9a3b-31f1ad390479,"VPN-NAME",0]: VPN connection: connect timeout exceeded.
debian nm-openvpn-serv[6763]: Connect timer expired, disconnecting.
debian NetworkManager[648]: <warn>  [1609951772.4316] vpn-connection[0x55ce8e0d02e0,1afd25e7-f3cd-472d-9a3b-31f1ad390479,"VPN-NAME",0]: VPN plugin: failed: connect-failed (1)
debian nm-openvpn[6766]: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
debian NetworkManager[648]: <info>  [1609951772.4317] vpn-connection[0x55ce8e0d02e0,1afd25e7-f3cd-472d-9a3b-31f1ad390479,"VPN-NAME",0]: VPN plugin: state changed: stopping (5)
debian nm-openvpn[6766]: TLS Error: TLS handshake failed
debian NetworkManager[648]: <info>  [1609951772.4317] vpn-connection[0x55ce8e0d02e0,1afd25e7-f3cd-472d-9a3b-31f1ad390479,"VPN-NAME",0]: VPN plugin: state changed: stopped (6)
debian nm-openvpn[6766]: SIGTERM[hard,tls-error] received, process exiting

OS環境:
Debian 10 (buster)
カーネルLinux debian 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 GNU/Linux
ネットワーク マネージャー: network-manager/stable,now 1.14.6-2+deb10u1 amd64
OpenVPN プラグイン: network-manager-openvpn/stable,now 1.8.10-1 amd64
OpenVPN スタンドアロン クライアント (openvpnコマンド):

OpenVPN 2.4.7 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Feb 20 2019
library versions: OpenSSL 1.1.1d  10 Sep 2019, LZO 2.10

からsyslog判断すると、Network Manager 用の OpenVPN プラグインは、すでにインストールされている基盤を使用するopenvpnか、プラグイン自体のインストールに付属するスタンドアロン クライアントを備えており、スタンドアロン クライアントと同じ機能とバージョンを備えているようですopenvpn

すると、動作しなくなります (ただし、Network Manager からのみ動作し、スタンドアロンでは動作します)...

答え1

network-manager-openvpn (およびおそらく network-manager-openvpn-gnome) パッケージは、tls-auth フィールドを保存できません。私は Ubuntu 22.04.3 LTS と network-manager-openvpn 1.8.18-1 を使用しています。OpenVPN 構成ファイルをインポートし、tls-auth に関連するフィールドを除くすべてのフィールドが正しく入力されました。それらのフィールドを編集した後でも、値は保存されませんでした。ただし、nmcli を使用して VPN 接続を編集し、vpn.data に「ta」(TLS-Auth キー ファイル) と「ta-dir」(キー方向) の値を追加することはできました。その後、Network Manager は正常に接続します。構成ダイアログには正しい値も表示されますが、保存できないようです。

バグの状況についてはよくわかりません。2018 年に NetworkManager-openvpn-1.8.8-1.fc29 で問題が修正されたと主張するバグ レポートがこちらにあります。バグ報告

以下は、ほぼ同じパッケージ バージョンで発生した問題を説明した最近のバグ レポートです。https://gitlab.gnome.org/GNOME/NetworkManager-openvpn/-/issues/105

関連情報