Вот и настал момент, когда собственно и будет показано, как в моем случае настраивается 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
и нажимаю "Connect"
Соединение успешно устанавливается
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)"
через правый клик на нем открываю "Состояние" - "Сведения"
Шаг №5:
Проверять с Windows
системы подключение в правильно составленном ovpn конфигурационном файле можно и через консоль подключение:
C:\Program Files\OpenVPN Connect>OpenVPNConnect.exe --config "C:\Users\ekzorchik\OpenVPN\Config\client.ovpn"
Шаг №6:
Когда рабочая станция была перезагружена, OpenVPN
соединение автоматические не устанавливается, в этом случае в трее возле часов нужно нажать на стрелочку вверх, отобразятся приложения, видим его, если навести на него появится всплывающее сообщение "OpenVPN Connect: DISCONNECTED"
нажимаем на нем правой кнопкой мыши и выбираем "Connect"
Если все указано верно и ничего нигде не блокируется OpenVPN
соединение будет установлено, проверяем также как выбирали Connect
, но в этот раз выбираем "Open app"
. Вот ниже что должно быть в случае успешно соединения.
Шаг №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.