No puedo conectarme al servidor OpenVPN, pero solo en Linux

No puedo conectarme al servidor OpenVPN, pero solo en Linux

Estoy usandoPiVPNen mi servidor Xubuntu para crear una VPN. Soy consciente de que PiVPN fue diseñado especialmente para Raspberry Pis, sin embargo, es muy fácil de configurar y trabajar, así que decidí usarlo también en mi máquina Xubuntu x64.

La conexión a través de archivos .ovpn funciona perfectamente en Windows usando OpenVPN Connect; sin embargo, cuando intento conectarme en cualquiera de mis tres máquinas Pop! _OS (Ubuntu 22.04), simplemente no se conecta.

Aquí está el archivo .ovpn:

client
dev tun
proto udp
remote myserv.org 1194
resolv-retry infinite
nobind
remote-cert-tls server
tls-version-min 1.2
verify-x509-name myveryspecialx509name name
cipher AES-256-CBC
auth SHA256
auth-nocache
verb 5
<ca>
-----BEGIN CERTIFICATE-----
s0m3c3rt1f1c4t3
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
s0m3d1ff3r3n7c3r71f1c473
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN ENCRYPTED PRIVATE KEY-----
s0m3pr1v473k3y
-----END ENCRYPTED PRIVATE KEY-----
</key>
<tls-crypt>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
s0m3st4t1ck3y
-----END OpenVPN Static key V1-----
</tls-crypt>

Aquí está mi resultado de syslog en mi cliente Pop!_OS cuando intento conectarme a través del administrador de red usando el archivo .ovpn usando la configuración predeterminada:

Aug 22 19:39:05 ben NetworkManager[821]: <info>  [1661189945.9755] vpn[0xd34db33f,blahblahblah,"blah"]: starting openvpn
Aug 22 19:39:05 ben NetworkManager[821]: <info>  [1661189945.9762] audit: op="connection-activate" uuid="blahblahblah" name="blah" pid=31467 uid=1000 result="success"
Aug 22 19:39:09 ben nm-openvpn[31529]: DEPRECATED OPTION: --cipher set to 'AES-256-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM). Future OpenVPN version will ignore --cipher for cipher negotiations. Add 'AES-256-CBC' to --data-ciphers or change --cipher 'AES-256-CBC' to --data-ciphers-fallback 'AES-256-CBC' to silence this warning.
Aug 22 19:39:09 ben nm-openvpn[31529]: OpenVPN 2.5.5 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Mar 22 2022
Aug 22 19:39:09 ben nm-openvpn[31529]: library versions: OpenSSL 3.0.2 15 Mar 2022, LZO 2.10
Aug 22 19:39:09 ben nm-openvpn[31529]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Aug 22 19:39:09 ben nm-openvpn[31529]: TCP/UDP: Preserving recently used remote address: [AF_INET6]some:ipv6:address:1194
Aug 22 19:39:09 ben nm-openvpn[31529]: UDP link local: (not bound)
Aug 22 19:39:09 ben nm-openvpn[31529]: UDP link remote: [AF_INET6]some:ipv6:address:1194
Aug 22 19:39:09 ben nm-openvpn[31529]: NOTE: chroot will be delayed because of --client, --pull, or --up-delay
Aug 22 19:39:09 ben nm-openvpn[31529]: NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
Aug 22 19:40:09 ben nm-openvpn[31529]: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Aug 22 19:40:09 ben nm-openvpn[31529]: TLS Error: TLS handshake failed
Aug 22 19:40:09 ben nm-openvpn[31529]: SIGUSR1[soft,tls-error] received, process restarting
Aug 22 19:40:09 ben NetworkManager[821]: <warn>  [1661190009.4674] vpn[0xd34db33f,blahblahblah,"blah"]: connect timeout exceeded
Aug 22 19:40:09 ben nm-openvpn-serv[31515]: Connect timer expired, disconnecting.
Aug 22 19:40:09 ben nm-openvpn[31529]: SIGTERM[hard,init_instance] received, process exiting

Básicamente, el cliente simplemente se desconecta después de 60 segundos quejándose de un protocolo de enlace TLS fallido.

Puedo confirmar que esto funciona perfectamente en una máquina con Windows usando OpenVPN Connect y que el puerto 1194/UDP está abierto y accesible en mi software, así como en el firewall de mi servidor de hardware.

Cualquier ayuda es muy apreciada.

Respuesta1

Si la negociación de la clave TLS no se produce en 60 segundos, mi primera suposición sería que los paquetes se están perdiendo en alguna parte. El archivo de configuración y el archivo de registro no revelarán eso. Deberá investigar con tcpdump y/o Wireshark.

información relacionada