OpenVPN - Це набір програм з відкритим кодом, який заслужено є одним з найпопулярніших і простих рішень для впровадження безпечної мережі VPN. OpenVPN дозволяє поєднувати сервер та клієнтів в одну мережу (навіть розташовану для NAT або брандмауерів) або поєднувати мережі віддалених офісів. Частина сервера OpenVPN може бути розгорнута майже на всіх доступних операційних системах (приклад налаштувань OpenVPN на Linux). Ви можете встановити Server OpenVPN навіть на звичайному комп’ютері за допомогою настільного редакційного офісу Windows 10.
OpenVPN надзвичайно популярний у сегменті SOHO для організації віддалених працівників: вам не потрібно купувати окреме залізо, ліцензії на організацію VPN -сервера на основі сервера Window Пароль для RDP через RDP.У цій статті ми покажемо, як встановити сервер OpenVPN на комп'ютері з Windows 10, налаштувати клієнта OpenVPN на іншому хості Windows та встановити захищене з'єднання VPN.
Зміст:
- Встановлення сервера OpenVPN у Windows
- Створіть клавіші та сертифікати шифрування для OpenVPN
- Конфігурація сервера OpenVPN у Windows
- Встановлення клієнта OpenVPN у Windows
Встановлення сервера OpenVPN у Windows
Завантажте Installer MSI OpenVPN для вашої версії Windows з офіційного веб -сайту (https: // openvpn.Net/Community-завантаження/). У нашому випадку це так OpenVPN-2.п’ять.5-I602-AMD64.MSI (https: // swupdate.OpenVPN.Org/спільнота/випуски/OpenVPN-2.п’ять.5-I602-AMD64.MSI).
Запустіть установку.
Якщо ви плануєте, Server OpenVPN працював в автоматичному режимі, ви не можете встановити GUI OpenVPN. Обов’язково встановити Services OpenVPN.
Починаючи з версії OpenVPN 2.5, водій підтримується Вінтун Від розробників Wireguard. Вважається, що цей водій працює швидше, ніж класичний драйвер Tap OpenVPN. Встановіть драйвер Wintun, відмовляйся встановити Tap-Windows6.
Встановіть утиліту OpenSSL Сценарії управління сертифікатами Easyrsa.
Запустіть установку.
За замовчуванням OpenVPN встановлюється в каталозі C: \ Program Files \ OpenVPN.Після завершення встановлення з’явиться новий мережевий адаптер Тунель Wintun Userspace. Цей адаптер відключений, якщо послуга OpenVPN не запускається.
Створіть клавіші та сертифікати шифрування для OpenVPN
OpenVPN заснований на шифруванні OpenSSL. Це означає, що для обміну трафіком між серверами клієнта та VPN потрібно генерувати ключі та сертифікати за допомогою RSA3.
Відкрийте командний рядок і перейдіть до каталогу Easy-RSA:
CD C: \ Program Files \ OpenVPN \ Easy -RSA
Створіть копію файлу:
Скопіюйте VARS.Приклад VARS
Відкрийте файл VARS за допомогою будь -якого текстового редактора. Перевірте шляхи робочими директорами.
Не забудьте виправити змінну easyrsa_temp_dir наступним чином:
set_var easyrsa_temp_dir "$ easyrsa_pki/temp"
Ви можете заповнити поля для сертифікатів (необов'язково)
set_var easyrsa_req_country "ru" set_var easyrsa_req_provins "msk" set_var easyrsa_req_req_req_req_req_req_req_req_rg "it-company" set_var easyrsa_req_emmin "admin" admin "admin" admin "admin" admin "admin" admin "admin.VPN.ru "set_var easyrsa_req_ou" ІТ -відділ "
Дійсність сертифікатів встановлюється:
#Set_var easyrsa_ca_expire 3650 #set_var easyrsa_cert_expire 825
Збережіть файл і виконайте команду:
Easyrsa-Start.Кажан
Наступні команди виконуються серед Easyrsa Shell:
Ініціалізація PKI:
./Easyrsa init-pki
Напис повинен з’явитися:
Init-pki завершений; Тепер ви можете створити CA або запити. Ваш нещодавно Creed PKI DIR є: C:/Програмні файли/OpenVPN/Easy -RS/PKI
Тепер вам потрібно генерувати кореневий Ca:
./Easyrsa Build-CA
Двічі більше пароля для CA:
Створення CA завершено, і тепер ви можете імпортувати та підписувати запити CERT.
Ця команда сформувала:
- Кореневий сертифікат сертифікаційного центру: "C: \ Program Files \ OpenVPN \ Easy -RSA \ PKI \ CA.CRT "
- Ключ сертифікаційного центру "C: \ Program Files \ OpenVPN \ Easy -rsa \ pki \ private \ ca.Ключ "
Тепер вам потрібно створити запит на сертифікат та ключ для вашого сервера OpenVPN:
./Easyrsa gen-req server nopass
Утиліта генерує два файли:
Req: C:/Програмні файли/OpenVPN/Easy -RSA/PKI/reqs/Server.Клавіша Req: C:/Програмні файли/OpenVPN/Easy -RS/PKI/Private/Server.Ключ
Ми підпишемо запит на випуск сертифіката сервера за допомогою нашого CA:
./Сервер сервера easyrsa
Підтвердити правильність даних шляхом набору Так.
Потім введіть пароль CA з кореня ca.
Сертифікат сервера ("C: \ Program Files \ Easy -RSA \ PKI \ Випущений \ Сервер, з’явиться у виданому каталозі.CRT ")
Тепер ви можете створити ключі від Diffe Hellman (зайняти багато часу):./Easyrsa gen-dh
Для додаткового захисту сервера VPN доцільно включити TLS-Auth. Ця технологія дозволяє використовувати підписи HMAC для пакетів рукостискань SSL/TLS, ініціюючи додатковий тест цілісності. Пакети без такого підпису будуть відкинуті сервером VPN. Це захистить вас від сканування порту сервера VPN, DOS -атак, переповнення буфера SSL/TLS.
Генерувати ключ TLS-Auth:
CD C: \ Program Files \ OpenVPN \ bin
OpenVPN -Genkey Secret Ta.Ключ
Файл "C: \ Program Files \ OpenVPN \ bin \ ta повинен з’явитися.Ключ ". Перемістіть його до каталогу C: \ Program Files \ OpenVPN \ Easy -rsa \ pki
Тепер ви можете сформувати ключі для клієнтів OpenVPN. Для кожного клієнта, який підключиться до вашого сервера, вам потрібно створити власні ключі.
Існує кілька способів створити ключі та перенести їх клієнтам. У наступному прикладі ми створимо клієнтський ключ на сервері та захистить його паролем:
./Easyrsa gen-req kbuldogov
./Клієнт Easyrsa Sign-Req Кбулдогов
Цей ключ ("C: \ Program Files \ OpenVPN \ Easy -rsa \ pki \ private \ kbuldogov.ключ ") вам потрібно здати клієнта та повідомити про пароль. Клієнт може видалити захист ключа:
OpenSl RSA -in "C: \ Program File.Ключ "-ut" C: \ Program Files \ OpenVPN \ Easy -rsa \ pki \ private \ kbuldogov_use.Ключ "
Якщо ви хочете створити ключ, який не захищений паролем, вам потрібно виконати команду:
./easyrsa жанрек високий nopass
На сервері з OpenVPN ви можете створити необмежену кількість ключів та сертифікатів для користувачів. Аналогічно, формуйте ключі та сертифікати для інших клієнтів.
Ви можете розпалити компрометовані сертифікати клієнтів:CD C: \ Program Files \ OpenVPN \ Easy -RSA
Easyrsa-Start.Кажан
./Easyrsa відкликати Кбулдогова
Отже, ми створили набір клавіш та сертифікатів для сервера OpenVPN. Тепер ви можете налаштувати та запустити службу OpenVPN.
Конфігурація сервера OpenVPN у Windows
Скопіюйте типовий файл конфігурації сервера OpenVPN:
Скопіюйте "C: \ Program Files \ OpenVPN \ Sample-Config \ Server.OVPN "C: \ Program Files \ OpenVPN \ Config-Auto \ Server.Ovpn "
Відкрийте файл сервера.OVPN у будь -якому текстовому редакторі та влаштовуйте свої налаштування. Я використовую наступну конфігурацію для OpenVPN:
# Вкажіть порт, протокол та порт пристрою 1194 Proto UDP DEV TUN # Вкажіть шляхи до сертифікатів сервера CA "C: \\ Програмні файли \\ OpenVPN \\ Easy -rsa \\ pki \\ ca.CRT "CERT" C: \\ Program Files \\ OpenVPN \\ Easy -rsa \\ pki \\ issed \\ сервер.CRT "ключ" C: \\ Програмні файли \\ OpenVPN \\ Easy -rsa \\ pki \\ private \\ сервер.Ключ "DH" C: \\ Програмні файли \\ OpenVPN \\ Easy -rsa \\ pki \\ dh.PEM ".24.1.0 255.255.255.0. \ Pki \ pki \ pki \ ta.Ключ "0 шифру AES-256-GCM # Інші параметри Keepalive 20 60 Persist-Key Persist-Tun Status" C: \\ Програмні файли \\ OpenVPN \\ log \\ статус.Журнал "log" C: \\ files files \\ OpenVPN \\ log \\ OpenVPN.Журнал "Дієслово 3 МОТ 20 Windows-Driver Wintun
Збережіть файл.
OpenVPN дозволяє використовувати як TCP, так і UDP для підключення. У цьому прикладі я запустив OpenVPN за номером 1194 UDP. Рекомендується використовувати протокол UDP, Це оптимально як з точки зору продуктивності, так і з безпеки.Не забудьте відкрити порти на брандмауері для порту OpenVPN на клієнті та на сервері. Ви можете відкрити порти у Windows Defender за допомогою PowerShell.
Правило сервера:
New -netfirewallrule -displayname "awayopenvpn -in" -dection inbound -protocol udp -localport 1194 -CACTION дозволити
Правило клієнта:
New -netfirewallrule -displayname "awayopenvpn -out" -direction outbound -protocol udp -localport 1194 -Alllow
Тепер вам потрібно запустити службу OpenVPN та змінити тип запуску на автоматичне. Використовуйте такі команди PowerShell, щоб увімкнути послугу:
Набір -Service OpenVPNService -startuptype Automatic -passthru
Get-Service OpenVPNService | Стартовий сервіс
Відкрийте панель управління та переконайтесь, що адаптер віртуальної мережі OpenVPN Wintun тепер активний. Якщо ні, перегляньте журнал "C: \ Program Files \ OpenVPN \ log \ Server.Журнал "
Параметри Помилка: у C: \ Program Files \ OpenVPN \ Config-Auto \ Server.OVPN: 1: Максимальна довжина лінії варіанту (256) перевищена, лінія починається з ..
Зміна файлу сервера.Символи OVPN перенесення рядка в Windows CRLF (у блокноті ++ потрібно вибрати редагувати -> перетворення EOL -> Windows Cr LF). Збережіть файл, перезапустіть послугу OpEVVPNService.
Ця конфігурація дозволить віддаленим клієнтам отримати доступ лише до сервера, але інші комп’ютери та послуги в локальній мережі сервера для них недоступні. Щоб дозволити клієнтам OpenVPN отримати доступ до потреб внутрішньої мережі:
Увімкніть опцію IpenableRouter rе-rе-strе (flючаот ip marшrutyзацiю v windows, v tоm чislet klючaret marшrutiзiюiю mеdember remptemblet reams reams rampsember \ tcp mapm
Додайте маршрути до внутрішньої IP -мережі:
Натисніть "Маршрут 10.24.1.0 255.255.255.0 маршрут "поштовх" 192.168.сто.0 255.255.255.0
При необхідності призначіть адресу сервера клієнту:
Натиснути "DHCP-OPTION DNS 192.168.сто.11 "Push" DHCP-OPTION DNS 192.168.сто.12 "
Якщо вам потрібно обернути всі запити клієнтів (включаючи Інтернет -трафік) на ваш сервер OpenVPN, додайте опцію:
Натисніть "Перенаправлення-ворота Def1"Ці варіанти просто описують раніше розглянуті випадки: чому Інтернет зникає після підключення до VPN і чому DNS не працює з активним VPN.
Встановлення клієнта OpenVPN у Windows
Створіть файл конфігурації шаблону на клієнті VPN на сервері (на основі.OVPN) з наступними параметрами (ім'я файлу Кбулдова.Овпн)
Клієнт dev tun proto udp віддалений ваш _vpn_server_address 1194 Resolutv-retions Infinite nobind persist-key perist-tun ca ca ca ca ca ca ca ca ca ca ca ca ca.CRT CERT KBULDOGOV.CRT Key Kbuldogov.Ключ від віддаленого сервера-сервера tls-auth ta.Ключ 1 шифр AES-256-GCM Connect-ret-steric-max 25 дієслово 3Віддалена директива вказує на загальнодоступну IP -адресу або назву DNS вашого сервера OpenVPN.
Завантажте та встановіть клієнт OpenVPN Connect для Windows (https: // OpenVPN.NET/Завантаження/OpenVPN-Connect-V3-Windows.MSI).
Тепер вам потрібно скопіювати файли на комп’ютері з клієнтом OpenVPN:
- Стадія.КРТ
- Кбулдогов.КРТ
- Кбулдогов.Ключ
- DH.Pem
- І.Ключ
- Кбулдогов.Овпн
Тепер імпортуйте файл за допомогою профілю *.OVPN і спробуйте підключитися до вашого VPN -сервера.
Якщо все налаштовано правильно, з’явиться таке зображення.
Тепер перевірте журнал OpenVPN на клієнті "C: \ Program Files \ OpenVPN Connect \ Agent.Журнал "
Пн. 27 грудня 08:09:30 2021 Proxy_Auto_Config_Url пн, грудень 27 08:09:31 Налаштування туналу Торкніться адаптери: guid = "25ee4a55-be90-88fapaf24c42" індекс "Торкніться" Пристрій "Шлях" Шлях "=" \\.\ Global \ 25e4a55-by90-45a0-88a1-8fa8fef24c42.Торкніться "Успіх драйвера TAP-Windows версія 9.24 Дія deleteallrautesonininterface_index = 22 інтерфейс інтерфейсу Netsh IP -інтерфейс 22 метрику = 1 ОК. Набір інтерфейсу Netsh Address 22 Статичний 10.24.1.6 255.255.255.252 шлюз = 10.24.1.5 магазин = активний ipheeelper: Додайте маршрут 10.24.1.1/32 22 10.24.1.5 метрик = -1
Клієнт успішно підключиться до сервера OpenVPN та отримав IP -адресу 10.24.1.6.
Тепер перевірте журнал на сервері ("C: \ Program Files \ OpenVPN \ log \ OpenVPN.журнал "). Це також показує, що клієнт із сертифікатом Kbuldogov успішно підключиться до вашого сервера.
2021-12-27 08:09:35 192.168.13.202: 55648 [Кбулдогов] однорангове з'єднання, ініційоване з [AF_INET6] :: FFF: 192.168.13.202: 55648 2021-12-27 08:09:35 Кбулдогова/192.168.13.202: 55648 Multi_SVA: Повернутий пул IPv4 = 10.24.1.6, ipv6 = (не ввімкнено) 2021-12-27 08:09:35 Kbuldogov/192.168.13.202: 55648 Мульти: Навчіться: 10.24.1.6 -> Кбулдогова/192.168.13.202: 55648 2021-12-27 08:09:35 Кбулдогова/192.168.13.202: 55648 Мульти: Первинний віртуальний IP для Кбулдогова/192.168.13.202: 55648: 10.24.1.6