OpenVPN – один із найпопулярніших протоколів для організації VPN-з'єднання. З його допомогою можна створити приватну віртуальну мережу або об'єднувати локальні мережі. OpenVPN має відкритий вихідний код та безкоштовно поширюється під ліцензією GNU GPL. OpenVPN можна назвати одним із найбезпечніших протоколів. Всі дані, що передаються, надійно захищені за допомогою бібліотеки шифрування OpenSSL і протоколів SSLv3/TLSv1, що забезпечує високу безпеку та анонімність.
Підтримка клієнта OpenVPN інтегрована в маршрутизатори Keenetic. Для налаштування підключення OpenVPN необхідно встановити компонент системи «Клієнт і сервер OpenVPN». З цим компонентом маршрутизатор Keenetic можна використовувати і як клієнт, і як сервер OpenVPN. Детальний опис режиму сервера можна знайти в статті «Сервер OpenVPN». Ви можете встановити компонент системи на сторінці «Загальні налаштування системи» в розділі «Параметри компонентів системи», натиснувши «Змінити набір компонентів».
NOTE: Важливо! Маршрутизатори Keenetic використовують суворі вимоги щодо конфігурації OpenVPN. Нижче наведено деякі основні вимоги.
- Конфігурація має бути виконана у вигляді одного файлу.
- Сертифікати, ключі тощо, повинні міститись у цьому файлі.
- Як правило, підходять файли конфігурації з розширенням .ovpn
- Якщо провайдер пропонує файли для різних роутерів або систем, у більшості випадків можна скористатися файлом OpenWRT.
- У конфігурації необхідно використовувати лише опції, перелічені у документі: https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
- У конфігурації не повинно бути директив чи невідомі команд, які не можуть бути опрацьовані. Деякі опції, описані вище за посиланням, можуть не підтримуватися. Наприклад, у нашій реалізації OpenVPN не підтримуються опції, що стосуються IPv6.
- Порядок розташування опцій, вміщенних сертифікатів та ключів не має значення.
- Файл конфігурації OpenVPN не зберігається у резервній копії конфігурації пристрою startup-config. Щоб отримати резервну копію налаштувань інтерфейсу клієнта OpenVPN, його потрібно зберегти окремо.
Важливо! Число клієнтських підключень обмежується розміром виділеного службового розділу пам'яті об'ємом 24 Кбайта для зберігання конфігурацій VPN. Особливо це актуально для OpenVPN з'єднань, т.я. сумарний розмір їх конфігураціф не має перевищувати 24 Кбайта.
Провайдери VPN можуть запропонувати різні варіанти конфігурацій OpenVPN. Нижче ми розглянемо деякі з них.
Варіант 1. Завантажте файл конфігурації із сайту сервера OpenVPN, до якого плануєте підключатися.
До прикладу, на www.vpngate.net, оберіть сервер та клікніть 'OpenVPN Config file'.
Далі, виберіть одну з конфігурацій цього сервера, до прикладу, з доменним ім'ям DDNS і TCP 1781.
Файл конфігурації з розширенням .ovpn буде завантажено на ваш комп’ютер. Відкрийте його в будь-якому текстовому редакторі (наприклад, Блокнот) і скопіюйте весь вміст у буфер обміну, натиснувши клавіші Ctrl-A, а потім Ctrl-C на клавіатурі.
Після цього перейдіть на сторінку «Інші підключення» та натисніть «Додати підключення» в розділі «VPN-підключення». У вікні «Параметри VPN-підключення» у полі «Тип (протокол)» виберіть «OpenVPN». Потім введіть ім’я з’єднання в полі «Ім'я підключення», а в поле «Конфігурація OpenVPN» вставте скопійовану конфігурацію з буфера обміну, натиснувши Ctrl-V. Збережіть налаштування.
Для налаштування розкладу або вибору інтерфейсу, через який буде працювати підключення, натисніть «Показати додаткові налаштування».
Після створення з’єднання переведіть перемикач у положення «Увімк.». На цій сторінці також буде відображено статус підключення.
TIP: Порада: Якщо ви хочете використовувати це підключення для доступу до Інтернету, призначте йому найвищий пріоритет. Інформацію про пріоритети ви знайдете в статті 'Пріоритети підключень'.
Варіант 2. На деяких сайтах з налаштуваннями OpenVPN, крім конфігураційного файлу, вказується логін і пароль. Наприклад, на vpnbook.com.
У цьому випадку перед копіюванням вмісту конфігураційного файлу в буфер обміну необхідно видалити рядок:
auth-user-pass
і додати секцію, ввівши необхідні значення логіна та пароля. Наприклад:
<auth-user-pass>
vpnbook
r3d23xs
</auth-user-pass>
Варіант 3. Інші провайдери, наприклад altvpn.com, надають сертифікати та ключі як окремі файли. У цьому випадку необхідно:
3.1 Закоментуйте рядки з іменами файлів сертифіката та ключів символом #:
#ca ca.crt
#cert xxxxxxxxxxxx.crt
#key xxxxxxxxxxxx.crt
3.2 У кінці файлу конфігурації додайте розділи сертифіката та ключа та вставте вміст відповідних файлів:
<ca>
-----BEGIN CERTIFICATE-----
... <--insert the body of the certificate from the ca.crt file here
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
... <--insert the body of the certificate from the xxxx.crt file here
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN RSA PRIVATE KEY-----
... <--insert the key body from the xxxx.key file here
-----END RSA PRIVATE KEY-----
</key>
Варіант 4. Провайдер privateinternetaccess.com має файли ca.rsa.2048.crt та crl.rsa.2048.pem в його конфігурації, вміст яких слід вставити між секціями <crl-verify></crl-verify> and <ca></ca> відповідно.
Конфігураційний файл OpenVPN виглядатиме так:
client
dev tun
proto udp
remote sweden.privateinternetaccess.com 1198
resolv-retry infinite
nobind
persist-key
persist-tun
cipher aes-128-cbc
auth sha1
tls-client
remote-cert-tls server
<auth-user-pass>
xxxxxx <--insert your login here
xxxxxx <--insert your password here
</auth-user-pass>
comp-lzo
verb 1
reneg-sec 0
disable-occ
<crl-verify>
-----BEGIN X509 CRL-----
... <--insert the key body from the crl.rsa.2048.pem file here
-----END X509 CRL-----
</crl-verify>
<ca>
-----BEGIN CERTIFICATE-----
... <--insert the body of the certificate from the file ca.rsa.2048.crt here
-----END CERTIFICATE-----
</ca>
TIP: Типові помилки та рішення:
1. auth-user-pass without inline credentials data is not supported
Файл конфігурації містить рядок для онлайн-введення логіна/паролю, який Keenetic не підтримує. Помилка у файлі журналу Keenetic:
OpenVPN0 auth-user-pass without inline credentials data is not supported
OpenVPN0 Exiting due to fatal error
Видаліть або закоментуйте рядок:
auth-user-pass
2. Помилка опції block-outside-dns
Параметр block-outside-dns налаштований на сервері OpenVPN, який правильно обробляється лише у Windows. Помилка у файлі журналу Keenetic:
OpenVPN0 Unrecognized option or missing or extra parameter(s) in configuration: (line X): block-outside-dns (2.4.4)
OpenVPN0 Exiting due to fatal error
Додайте до файлу конфігурації клієнта OpenVPN рядок:
pull-filter ignore "block-outside-dns"
3. Помилка при підключенні до PrivateTunnel серверів
Помилка відображається при спробі підключення:
OpenVPN0 Unrecognized option or missing or extra parameter(s) in configuration: (line 3): client-ip (2.4.4)
Додайте до файлу конфігурації клієнта OpenVPN рядок:
ignore-unknown-option client-ip block-ipv6
4. Помилка виникає при використанні опції askpass /storage/key.txt option:
Error: private key password verification failed
Це обмеження поточної реаліхації OpenVPN в Keenetic. Ви можете використовувати лише ключ без пароля або з фіксованим паролем: 'password'.