A configuração do OpenVPN funciona na CLI, mas não no NetworkManager (falha no handshake TLS)

A configuração do OpenVPN funciona na CLI, mas não no NetworkManager (falha no handshake TLS)

sudo openvpn --config [VPN-NAME].ovpn: funciona
Configuração do NetworkManager: não funciona (embora seja o mesmo, configuração copiada)

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

Configuração do gerenciador de rede:

  • Certificados e chaves copiados .ovpnem arquivos discretos
  • Selecionado "Tipo de conexão", valor "Senha com certificados (TLS)"
  • Gateway copiado e caminho(s) de arquivo
  • Fui para "Avançado..."
  • Copiei e colei [VPN-NAME] na aba "Configurações de TLS" e selecionei "Verificar exatamente o nome"
  • Modo selecionado "TLS-Auth", tls-auth.keycaminho copiado, direção da chave "Cliente (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

Ambiente do sistema operacional:
Debian 10 (buster)
Kernel Linux debian 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 GNU/Linux
Network Manager: network-manager/stable,now 1.14.6-2+deb10u1 amd64
Plug-in OpenVPN: network-manager-openvpn/stable,now 1.8.10-1 amd64
Cliente autônomo OpenVPN ( openvpncomando):

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

Pelo que syslogparece, o plugin OpenVPN para Network Manager usa o subjacente openvpnjá instalado ou possui um cliente autônomo que traz com a instalação do próprio plugin, que possui os mesmos recursos/capacidades e até mesmo a versão do autônomo openvpn.

Então não funciona (mas apenas no Network Manager, autônomo) ...

Responder1

Os pacotes network-manager-openvpn (e possivelmente network-manager-openvpn-gnome) não podem salvar os campos tls-auth. Estou usando o Ubuntu 22.04.3 LTS com network-manager-openvpn 1.8.18-1. Importei um arquivo de configuração OpenVPN e todos os campos foram preenchidos corretamente, exceto aqueles relacionados ao tls-auth. Mesmo depois de editar esses campos, os valores não seriam salvos. No entanto, consegui editar a conexão VPN usando nmcli, adicionando valores para "ta" (arquivo de chave TLS-Auth) e "ta-dir" (direção da chave) ao vpn.data. Em seguida, o Network Manager se conecta com êxito. A caixa de diálogo de configuração mostra até os valores corretos; simplesmente não consigo salvá-los.

Não tenho certeza sobre o status do(s) bug(s). Aqui está um relatório de bug que afirma que o problema foi corrigido no NetworkManager-openvpn-1.8.8-1.fc29 em 2018:https://bugzilla.redhat.com/show_bug.cgi?id=1639811

Aqui está um relatório de bug mais recente que descreve o que vejo com quase as mesmas versões de pacotes:https://gitlab.gnome.org/GNOME/NetworkManager-openvpn/-/issues/105

informação relacionada