Estoy configurando un servidor OpenVPN (versión 2.3.10) en un servidor Windows 2012 pero no puedo hacer que funcione.
El servidor está detrás de un enrutador y abrí el puerto 1194 y creé una regla para reenviar el tráfico de este puerto al servidor.
Aquí está el registro que veo en el servidor cuando intento conectarme desde un cliente:
Mon Mar 21 11:11:47 2016 XX.XX.XX.XX:57804 TLS: Initial packet from [AF_INET]XX.XX.XX.XX:57804, sid=fdf7a7ac 0264c7f3
Mon Mar 21 11:12:38 2016 XX.XX.XX.XX:55938 TLS: Initial packet from [AF_INET]XX.XX.XX.XX:55938, sid=1f242a3f e454a525
Mon Mar 21 11:12:48 2016 XX.XX.XX.XX:57804 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Mon Mar 21 11:12:48 2016 XX.XX.XX.XX:57804 TLS Error: TLS handshake failed
Mon Mar 21 11:12:48 2016 XX.XX.XX.XX:57804 SIGUSR1[soft,tls-error] received, client-instance restarting
Donde XX.XX.XX.XX es la ip del cliente. Por lo tanto, entiendo que al menos el cliente puede llegar al servidor, por lo que no hay problemas de enrutamiento o firewall.
Seguí la descripción provista aquí Guía fácil de Windows ¿Alguna idea?
XX.XX.XX.XX
representan la misma dirección ( considere no ofuscar tales cosas ), me interesa el cambio en los números de puerto de origen (57804, 55938). Eso me sugiere que hay un NAT poco confiable en el camino, que suele ser el caso de UDP. ¿Está utilizando el transporte UDP o TCP, y si es el primero, puede probar el último y ver si el problema desaparece?man openvpn
buscar algo que controle el protocolo. No olvide cambiarlo tanto en el cliente como en el servidor, si decide hacer la prueba.Respuestas:
Lo interesante es cómo cambia el número de puerto a mitad de la secuencia:
Esto me hace pensar que, en algún lugar entre el cliente y el servidor, hay un dispositivo NAT que se comporta mal, un dispositivo con entradas de tabla de estado de muy corta duración, que está cambiando el número de puerto de origen que se aplica a la secuencia establecida del cliente, haciendo que el servidor Piense que hay dos comunicaciones de corta duración en curso, en lugar de una continua.
Tales dispositivos generalmente solo hacen esto con UDP, por lo que le aconsejé que confirme que está usando UDP y que pruebe TCP en su lugar. Esto lo has hecho y descubriste que soluciona el problema. El siguiente paso es identificar el dispositivo NAT que se comporta mal, golpearlo con un martillo y reemplazarlo con uno que no cometa el error fundamental de suponer que todas las comunicaciones UDP son efímeras; pero ha indicado que está contento con cambiar a TCP como solución alternativa, por lo que el asunto está concluido.
fuente
Este es uno de los errores más comunes al configurar Openvpn y hay una entrada de preguntas frecuentes para esto. Voy a citar esto aquí:
Es muy probable que cualquiera de estos también esté causando el mismo problema en su caso. Así que solo revisa la lista uno por uno para resolverlo.
Ref: Error de TLS: la negociación de la clave TLS no pudo ocurrir en 60 segundos (verifique la conectividad de su red)
fuente
Estaba obteniendo tiempos de espera de negociación clave de TLS como este. Pero en mi caso me di cuenta de que el enlace remoto era una dirección IP local.
La VPN en nuestro firewall pfSense se colocó por error en la interfaz LAN en lugar de la interfaz WAN, por lo que la configuración exportada se configuró para intentar conectarse a la dirección IP LAN del firewall, que nunca funcionaría con el cliente naturalmente encendido Una LAN diferente.
Creo que las principales conclusiones de esto son:
Obtener un tiempo de espera de negociación clave no significa necesariamente que incluso haya logrado conectarse a cualquier cosa.
Por lo tanto, en esta etapa aún puede valer la pena verificar que realmente se está conectando al lugar correcto, y que no hay reglas de firewall que bloqueen la conexión, etc. Particularmente si su configuración se ha generado automáticamente.
Tenga en cuenta que obtener un mensaje de inicio de sesión no significa que esté conectado , ya que OpenVPN le pide sus credenciales antes de intentar conectarse.
Asegúrese de que su servidor VPN esté escuchando en la interfaz correcta.
(Por supuesto, esta es una de una serie de configuraciones incorrectas del lado del servidor que podrían ocurrir, como reglas de firewall, poner el número de puerto incorrecto, mezclar TCP y UDP, etc.)
fuente
Tuve el mismo error y ningún consejo me ayudó, todo parecía estar bien: IP, puertos, firewall, todo. Se volvió loco por 2 horas.
La solución fue cambiar el protocolo de UDP a TCP en la configuración del cliente (aparentemente deshabilité UDP a propósito hace mucho tiempo).
Espero que esto ayude a alguien :)
LE: esto resolvió mi problema, pero no es el mejor enfoque según los comentarios a continuación. Debe usar UDP en lugar de TCP. Me ayudó porque tenía diferentes configuraciones entre el cliente y las configuraciones del servidor.
fuente
Tenga en cuenta que puede obtener un error de negociación de clave TLS, sin conectarse con éxito al servidor OpenVPN, ¡ o incluso conectarse con éxito a cualquier cosa!
Modifiqué una configuración de VPN para conectarme a localhost, en un puerto que no escuchaba nada:
El error puede inducirlo a una falsa sensación de que está hablando con un servidor VPN.
Incluso es posible que primero se le soliciten las credenciales, pero nada fuera de su computadora realmente las ha solicitado.
fuente
Ninguna de las soluciones mencionadas anteriormente funcionó. En mi caso, aunque el registro del cliente mostró el mismo error
TLS Error: TLS key negotiation failed to occur within 60 seconds
, los registros del servidor mostraronVERIFY ERROR: depth=0, error=CRL has expired
.En el servidor, los siguientes pasos resolvieron el problema de conexión:
fuente
Me encontré con este error en AWS, donde OpenVPN se instaló en un servidor con una IP pública, pero en una instancia que estaba en una subred privada, es decir, una subred que no tenía una ruta a una puerta de enlace de Internet.
Una vez que implementé OpenVPN en un servidor dentro de una subred pública, todo funcionó bien :)
En subredes públicas / privadas en AWS: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html
fuente
También me encontré con el
TLS key negotiation failed to occur within 60 seconds
problema.Según la sugerencia oficial, como publicación de Diamant, debe haber algo mal en la conexión de red. Sin embargo, ni el firewall ni el NAT causan el problema.
En mi caso, primero verifiqué la conexión
nc -uvz xxx.xxx.xxx.xxx 1194
. El enlace esta bien.Además, varios otros clientes vpn dentro de la misma LAN funcionan bien.
Desde algún lugar noté que la conexión udp tiene algunos problemas en respuesta o puerto hacia adelante.
Así que detengo los clientes vpn en ejecución desde la ip más grande hasta el cliente colgado, por ejemplo, de "10.8.0.100" a "10.8.0.50".
Luego, inicie los clientes vpn detenidos a la inversa.
¡Explosión! Todos los clientes vpn trabajan de manera proactiva.
En conclusión, existe la posibilidad de que el
TLS key negotiation failed to occur within 60 seconds
problema sea que varios clientes vpn dentro de una LAN comiencen en una secuencia incorrecta.fuente
Una posible razón es si el servidor requiere una versión TLS más nueva que la TLS admitida por el cliente. es decir, 1.2 contra 1.0.
Lo obvio que debe intentar es actualizar el cliente OpenVPN o modificar el lado del servidor para aceptar TLS 1.0.
fuente