Вот и настал момент, когда собственно и будет показано, как в моем случае настраивается OpenVPN клиент на рабочей системе дабы инициировать шифрованный туннель от клиентского места до VPS системы (OS: Windows server 2016 Std + OpenVPN Server v2.6.12). В ранее опубликованных заметках сделали:

Т.е. все готово, переходим к шагам ниже:

Шаг №1: На Windows 10 Pro устанавливаю OpenVPN Connect

https://openvpn.net/downloads/openvpn-connect-v3-windows.msi

когда скачал данный пакет, версия на момент написания данной заметки 3.6.0.4074

Устанавливаю его.

Шаг №2: Создаем на сервере OpenVPN сертификат для клиента и копирую на систему Windows 10 Pro следующие сертификаты, к примеру, для удобства OpenVPN клиент буду ставить в дефолтный каталог, а конфигурационный файл и сертификаты располагать C:\Users\ekzorchik\OpenVPN\Config и в нем же располагаю ниже указанные файлы

Win + X -> Командная строка (администратор)

C:\Windows\system32>if not exist C:\Users\ekzorchik\OpenVPN\Config mkdir C:\Users\ekzorchik\OpenVPN\Config

  • alektest.crt
  • alektest.key
  • dh.pem
  • ca.crt

Шаг №3: Создаю клиентский конфигурационный файл через редактор Notepad++ и размещаю его в каталоге C:\Users\ekzorchik\OpenVPN\Config\, как client.ovpn

client

dev tun

proto tcp

#proto udp

remote 172.33.33.127 1194

nobind

ca "C:\\Users\\ekzorchik\\OpenVPN\\Config\\ca.crt"

cert "C:\\Users\\ekzorchik\\OpenVPN\\Config\\alektest.crt"

key "C:\\Users\\ekzorchik\\OpenVPN\\Config\\alektest.key"

cipher AES-256-GCM

#verb [1-11] я полной диагностики

verb 10

Шаг №4: Запускаю на Windows 10 Pro программу OpenVPN Connect — перехожу в "UPLOAD FILE" и либо перетаскиванием указываю файл client.ovpn или через BROWSE указываю на файл client.ovpn

На заметку: Если вы вносите изменения в client.ovpn то нужно после из OpenVPN Connect удалить профиль подключения и заново его добавить, т.е. добавить обновленный client.ovpn

Импортируем клиентский ovpn в OpenVPN Connect.

и нажимаю "Connect"

Соединение успешно устанавливается

Нажав Connect по импортированному конфигу, соединение с OpenVPN сервером успешно устанавливается.

C:\Users\ekzorchik>ipconfig

Настройка протокола IP для Windows

Неизвестный адаптер Подключение по локальной сети:

DNS-суффикс подключения . . . . . :

Локальный IPv6-адрес канала . . . : fe80::60f0:e58d:eb13:785a%9

IPv4-адрес. . . . . . . . . . . . : 10.10.0.6

Маска подсети . . . . . . . . . . : 255.255.255.252

Основной шлюз. . . . . . . . . :

 

Адаптер Ethernet Ethernet:

DNS-суффикс подключения . . . . . :

IPv4-адрес. . . . . . . . . . . . : 172.33.33.143

Маска подсети . . . . . . . . . . : 255.255.255.0

Основной шлюз. . . . . . . . . : 172.33.33.100

C:\Users\ekzorchik>ping 10.10.0.1

Обмен пакетами с 10.10.0.1 по с 32 байтами данных:

Ответ от 10.10.0.1: число байт=32 время<1мс TTL=128

Статистика Ping для 10.10.0.1:

Пакетов: отправлено = 1, получено = 1, потеряно = 0

(0% потерь)

Приблизительное время приема-передачи в мс:

Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек

Control-C

^C

C:\Users\ekzorchik>

и я получил адрес из сети OpenVPN и вижу через адрес OpenVPN сервера: 10.10.0.1

Также в Windows 10 Pro появляется интерфейс:

Win + R -> control.exe - Просмотр: Мелкие значки - Центр управления сетями и общим доступом - Изменение параметров адаптера — вижу интерфейс "Подключение по локальной сети (TAP-Windows Adapter V9 for OpenVPN)" через правый клик на нем открываю "Состояние" - "Сведения"

Информация о сетевое соединении через OpenVPN.

Шаг №5: Проверять с Windows системы подключение в правильно составленном ovpn конфигурационном файле можно и через консоль подключение:

C:\Program Files\OpenVPN Connect>OpenVPNConnect.exe --config "C:\Users\ekzorchik\OpenVPN\Config\client.ovpn"

Шаг №6: Когда рабочая станция была перезагружена, OpenVPN соединение автоматические не устанавливается, в этом случае в трее возле часов нужно нажать на стрелочку вверх, отобразятся приложения, видим его, если навести на него появится всплывающее сообщение "OpenVPN Connect: DISCONNECTED"

В трее возле часов навожу курсор мыши на OpenVPN Connect, т.к. подключение не установлено его статус DISCONNECTED

нажимаем на нем правой кнопкой мыши и выбираем "Connect"

Нажимаем на нем правой кнопкой мыши и выбираем "Connect"

Если все указано верно и ничего нигде не блокируется OpenVPN соединение будет установлено, проверяем также как выбирали Connect, но в этот раз выбираем "Open app". Вот ниже что должно быть в случае успешно соединения.

Если все указано верно и ничего нигде не блокируется OpenVPN соединение будет установлено.

Шаг №7: Логи подключения на клиентской рабочей системе, в рамках текущей заметки:

OpenVPN Connect v3 stores the log data locally on the client device:

Windows: <User Folder>\AppData\Roaming\OpenVPN Connect\log\openvpn.log

macOS: ~/Library/Application Support/OpenVPN Connect/log/ovpn.log

OpenVPN Connect v2 stores the log data locally in these locations:

Windows: C:\Program Files (x86)\OpenVPN Technologies\OpenVPN Client\etc\log\openvpn_(uniquename).log

Вот мой лог подключения:

[Jan 15, 2025, 10:50:46] OpenVPN core 3.10.5 win x86_64 64-bit OVPN-DCO built on Dec 17 2024 12:24:32

⏎[Jan 15, 2025, 10:50:46] Frame=512/2112/512 mssfix-ctrl=1250

⏎[Jan 15, 2025, 10:50:46] EVENT: RESOLVE ⏎[Jan 15, 2025, 10:50:46] EVENT: WAIT ⏎[Jan 15, 2025, 10:50:46] WinCommandAgent: transmitting bypass route to 172.33.33.127

{

"host" : "172.33.33.127",

"ipv6" : false

}

 

⏎[Jan 15, 2025, 10:50:46] Connecting to [172.33.33.127]:1194 (172.33.33.127) via TCP

⏎[Jan 15, 2025, 10:50:46] EVENT: CONNECTING ⏎[Jan 15, 2025, 10:50:46] Tunnel Options:V4,dev-type tun,link-mtu 1523,tun-mtu 1500,proto TCPv4_CLIENT,cipher AES-256-GCM,auth [null-digest],keysize 256,key-method 2,tls-client

⏎[Jan 15, 2025, 10:50:46] Creds: UsernameEmpty/PasswordEmpty

⏎[Jan 15, 2025, 10:50:46] Sending Peer Info:

IV_VER=3.10.5

IV_PLAT=win

IV_NCP=2

IV_TCPNL=1

IV_PROTO=2974

IV_MTU=1600

IV_CIPHERS=AES-128-CBC:AES-192-CBC:AES-256-CBC:AES-128-GCM:AES-192-GCM:AES-256-GCM:CHACHA20-POLY1305

IV_AUTO_SESS=1

IV_GUI_VER=OCWindows_3.6.0-4074

IV_SSO=webauth,crtext

 

⏎[Jan 15, 2025, 10:50:46] SSL Handshake: peer certificate: CN=172.33.33.127, 2048 bit RSA, cipher: TLS_AES_256_GCM_SHA384         TLSv1.3 Kx=any      Au=any   Enc=AESGCM(256)            Mac=AEAD

 

⏎[Jan 15, 2025, 10:50:46] Session is ACTIVE

⏎[Jan 15, 2025, 10:50:46] EVENT: GET_CONFIG ⏎[Jan 15, 2025, 10:50:46] Sending PUSH_REQUEST to server...

⏎[Jan 15, 2025, 10:50:46] OPTIONS:

0 [redirect-gateway] [def1]

1 [dhcp-option] [DNS] [8.8.8.8]

2 [route] [10.10.0.0] [255.255.255.0]

3 [topology] [net30]

4 [ping] [10]

5 [ping-restart] [120]

6 [ifconfig] [10.10.0.6] [10.10.0.5]

7 [peer-id] [0]

8 [cipher] [AES-256-GCM]

9 [protocol-flags] [cc-exit] [tls-ekm] [dyn-tls-crypt]

10 [tun-mtu] [1500]

 

⏎[Jan 15, 2025, 10:50:46] PROTOCOL OPTIONS:

cipher: AES-256-GCM

digest: none

key-derivation: TLS Keying Material Exporter [RFC5705]

compress: NONE

peer ID: 0

control channel: dynamic tls-crypt enabled

 

⏎[Jan 15, 2025, 10:50:46] EVENT: ASSIGN_IP ⏎[Jan 15, 2025, 10:50:46] CAPTURED OPTIONS:

Session Name: 172.33.33.127

Layer: OSI_LAYER_3

MTU: 1500

Remote Address: 172.33.33.127

Tunnel Addresses:

10.10.0.6/30 -> 10.10.0.5 [net30]

Reroute Gateway: IPv4=1 IPv6=0 flags=[ ENABLE REROUTE_GW DEF1 IPv4 ]

Block IPv4: no

Block IPv6: no

Block local DNS: no

Add Routes:

10.10.0.0/24

Exclude Routes:

DNS Servers:

8.8.8.8

 

⏎[Jan 15, 2025, 10:50:47] SetupClient: transmitting tun setup list to \\.\pipe\agent_ovpnconnect

{

"allow_local_dns_resolvers" : false,

"confirm_event" : "4c0e000000000000",

"destroy_event" : "480e000000000000",

"tun" :

{

"adapter_domain_suffix" : "",

"add_routes" :

[

{

"address" : "10.10.0.0",

"gateway" : "",

"ipv6" : false,

"metric" : -1,

"net30" : false,

"prefix_length" : 24

}

],

"block_ipv6" : false,

"block_outside_dns" : false,

"dns_options" :

{

"servers" : {}

},

"dns_servers" :

[

{

"address" : "8.8.8.8",

"ipv6" : false

}

],

"layer" : 3,

"mtu" : 1500,

"remote_address" :

{

"address" : "172.33.33.127",

"ipv6" : false

},

"reroute_gw" :

{

"flags" : 275,

"ipv4" : true,

"ipv6" : false

},

"route_metric_default" : -1,

"session_name" : "172.33.33.127",

"tunnel_address_index_ipv4" : 0,

"tunnel_address_index_ipv6" : -1,

"tunnel_addresses" :

[

{

"address" : "10.10.0.6",

"gateway" : "10.10.0.5",

"ipv6" : false,

"metric" : -1,

"net30" : true,

"prefix_length" : 30

}

]

},

"tun_type" : 0

}

POST np://[\\.\pipe\agent_ovpnconnect]/tun-setup : 200 OK

TAP ADAPTERS:

guid='{95634611-78F5-45DA-BCB7-72597AC90553}' index=7 name='Подключение по локальной сети'

Open TAP device "Подключение по локальной сети" PATH="\\.\Global\{95634611-78F5-45DA-BCB7-72597AC90553}.tap" SUCCEEDED

TAP-Windows Driver Version 9.27

ActionDeleteAllRoutesOnInterface iface_index=7

netsh interface ip set interface 7 metric=9000

ОК.

netsh interface ip set address 7 static 10.10.0.6 255.255.255.252 gateway=10.10.0.5 store=active

IPHelper: add route 10.10.0.0/24 7 10.10.0.5 metric=-1

netsh interface ip add route 0.0.0.0/1 7 10.10.0.5 store=active

ОК.

netsh interface ip add route 128.0.0.0/1 7 10.10.0.5 store=active

ОК.

netsh interface ip set dnsservers 7 static 8.8.8.8 register=primary validate=no

NRPT::ActionCreate pid=[3564] domains=[] dns_servers=[8.8.8.8] dnssec=[0] id=[OpenVPNDNSRouting-3564]

DNS::ActionApply: successful

ActionBase openvpn_app_path=C:\Program Files\OpenVPN Connect\OpenVPNConnect.exe tap_index=7 enable=1

permit IPv4 requests from OpenVPN app

permit IPv6 requests from OpenVPN app

block IPv4 requests from other apps

block IPv6 requests from other apps

allow IPv4 traffic from TAP

allow IPv6 traffic from TAP

block IPv4 DNS requests to loopback from other apps

block IPv6 DNS requests to loopback from other apps

ipconfig /flushdns

Настройка протокола IP для Windows

Кэш сопоставителя DNS успешно очищен.

TAP: ARP flush succeeded

TAP handle: 800e000000000000

⏎[Jan 15, 2025, 10:50:47] Connected via TUN_WIN

⏎[Jan 15, 2025, 10:50:47] EVENT: CONNECTED 172.33.33.127:1194 (172.33.33.127) via /TCP on TUN_WIN/10.10.0.6/ gw=[10.10.0.5/] mtu=1500⏎

Я бы сказал, что он очень информативен и опираясь на полученные с его помощью знания впредь буду понимать, как формируется подключение.

Итого: Успешно выполнена настройка OpenVPN Client on Windows 10 Pro тем самым инициированное подключение с OpenVPN сервером на Windows Server 2016 Std устанавливается и ресурсы на сервере доступны, как если бы ресурсы были в локальной сети где клиентская рабочая станция.

На этом текущая заметка завершена, с уважением автор блога Олло Александр aka ekzorchik.

От ekzorchik