Назад | Перейти на главную страницу

Ошибка TLS: не удалось согласовать ключ TLS

У меня есть сервер OpenVPN. У меня проблемы с подключением к нему.

Я выполнил пошаговые (несколько раз) инструкции на Как настроить сервер OpenVPN в Ubuntu 18.04. Однако когда я бегу

sudo openvpn --config client1.ovpn

Я получил:

Sat Aug  8 21:45:34 2020 OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on May 14 2019
Sat Aug  8 21:45:34 2020 library versions: OpenSSL 1.1.1  11 Sep 2018, LZO 2.08
Sat Aug  8 21:45:34 2020 Outgoing Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Sat Aug  8 21:45:34 2020 Incoming Control Channel Authentication: Using 256 bit message hash 'SHA256' for HMAC authentication
Sat Aug  8 21:45:34 2020 TCP/UDP: Preserving recently used remote address: [AF_INET]185.2.52.91:1194
Sat Aug  8 21:45:34 2020 Socket Buffers: R=[212992->212992] S=[212992->212992]
Sat Aug  8 21:45:34 2020 UDP link local: (not bound)
Sat Aug  8 21:45:34 2020 UDP link remote: [AF_INET]185.2.52.91:1194
Sat Aug  8 21:46:34 2020 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sat Aug  8 21:46:34 2020 TLS Error: TLS handshake failed
Sat Aug  8 21:46:34 2020 SIGUSR1[soft,tls-error] received, process restarting
Sat Aug  8 21:46:34 2020 Restart pause, 5 second(s)
Sat Aug  8 21:46:39 2020 TCP/UDP: Preserving recently used remote address: [AF_INET]185.2.52.91:1194
Sat Aug  8 21:46:39 2020 Socket Buffers: R=[212992->212992] S=[212992->212992]
Sat Aug  8 21:46:39 2020 UDP link local: (not bound)
Sat Aug  8 21:46:39 2020 UDP link remote: [AF_INET]185.2.52.91:1194
Sat Aug  8 21:47:39 2020 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sat Aug  8 21:47:39 2020 TLS Error: TLS handshake failed
Sat Aug  8 21:47:39 2020 SIGUSR1[soft,tls-error] received, process restarting
Sat Aug  8 21:47:39 2020 Restart pause, 5 second(s)

Это было сделано из той же сети, в которой находится сервер. Я также пытался подключиться с устройства Android из другой сети, но без особого успеха.

Вопросы:

  1. Могу ли я подключиться к серверу из локальной сети в целях тестирования?
  2. Есть ли IP, который нужно ввести в client.conf должен быть общедоступным IP-адресом, который можно получить, например из https://api.ipify.org/?
  3. Поскольку к этой сети подключено несколько машин, как можно установить соединение просто через общедоступный IP-адрес? Разве мне не нужно указывать где-нибудь частный IP-адрес сервера в сети?
  4. Содержание client.ovpn кажется конкатенацией client.conf, файлы ключей, сертификатов и CA. Это правильно? Я ожидал, что конфигурация клиента будет больше похожа на ключ ssh.

Ваши вопросы:

  1. Конечно, вы можете подключиться из своей локальной сети.
  2. Вы можете указать любой IP-адрес в своей клиентской конфигурации - публичный, частный, какой угодно - если это правильный IP-адрес для подключения к вашему серверу! Поэтому, если ваш клиент находится в локальной сети, вы должны поместить в client.conf частный ip, а не публичный!
  3. Если вы хотите, чтобы ваш openvpn-сервер был доступен для публичного доступа в Интернет, вам нужна переадресация портов - вам нужно указать маршрутизатору «прослушивать порт udp 1194 и перенаправлять его на udp. <private ip>:1194"(при условии, что ваш сервер слушает udp 1194!)
  4. Это зависит от конфигурации. Обычно ca, cert, и key options хотят имя файла, но вы можете указать некоторые параметры в строке. Выдержка из справочной страницы:
INLINE FILE SUPPORT
       OpenVPN allows including files in the main configuration for the --ca, --cert,
       --dh, --extra-certs, --key, --pkcs12, --secret, --crl-verify, --http-proxy-user-pass, 
       --tls-auth and --tls-crypt options.
       Each inline file started by the line <option> and ended by the line </option>

PS: Ваш журнал клиента показывает только то, что ваш клиент не получает ответа от указанного IP-адреса и порта (возможно, отсутствует переадресация порта?)