Skip to main content

Інструкція користувача

Підключення OpenVPN до публічного провайдера VPN

OpenVPN є одним з найпопулярніших протоколів для VPN-з'єднань. Його можна використовувати для створення віртуальної приватної мережі або для з'єднання локальних мереж. OpenVPN є протоколом з відкритим вихідним кодом і розповсюджується безкоштовно під Ліцензією GNU GPL. Він забезпечує більш високу швидкість з'єднання, ніж інші протоколи VPN. Також, OpenVPN можна назвати одним з найбезпечніших протоколів. Всі передані дані надійно захищені шифруванням OpenSSL та протоколами SSLv3/TLSv1, що забезпечує високу безпеку і анонімність.

OpenVPN сервер і клієнт інтегровані в маршрутизатори Keenetic. Щоб налаштувати OpenVPN підключення, необхідно встановити системний компонент 'Клієнт і сервер OpenVPN'. З цим компонентом маршрутизатор Keenetic можна використовувати і як клієнт, і як Сервер OpenVPN. З докладним описом серверного режиму можна ознайомитися в статті 'Сервер OpenVPN'. Ви можете встановити цей компонент на сторінці 'Параметри системи' у розділі 'KeeneticOS Оновлення та параметри компонентів', натиснувши на 'Змінити набір компонентів'.

openvpn-client1-en.png

Важливо

Маршрутизатори Keenetic мають суворі вимоги до конфігурації OpenVPN. Нижче наведено деякі основні вимоги:

  • Конфігурація повинна бути в одному файлі.

  • У цей файл повинні бути включені сертифікати, ключі тощо.

  • Файли конфігурації з розширенням .ovpn зазвичай сумісні.

  • Якщо провайдер пропонує файли для різних маршрутизаторів або систем, у більшості випадків можна використовувати файл для Open WRT.

  • У конфігурації слід використовувати тільки ті параметри, що перераховані в документі: https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage

  • У конфігурації не повинно бути директив або невідомих команд, які не можуть бути оброблені.

    Деякі з описаних вище варіантів можуть не підтримуватися. Наприклад, наша реалізація OpenVPN, не підтримує опції, пов'язані з IPv6.

  • Порядок параметрів, сертифікатів і ключів, не має значення.

  • Файл конфігурації OpenVPN не зберігається у файлі конфігурації startup-config. Щоб мати резервну копію налаштувань інтерфейсу OpenVPN, необхідно зберегти її окремо.

For KN-1110, 1210, 1310, 1410, 1510, 1610, 1710, 1810 and 1910 models the number of client connections is limited by the allocated service memory partition size of 24 Kbytes for storing VPN configurations. This is especially important for OpenVPN connections because the total size of their configurations must not exceed 24 Kbytes. For modern Keenetic models with KN-XXXX index the size of the storage, where the startup-config configuration file and environment variables (including keys) are placed in compressed form, has been increased and ranges from 260 Kbytes to 2 Mbytes (depending on the model).

Провайдери VPN можуть запропонувати різні варіанти OpenVPN конфігурації. Нижче ми розглянемо деякі з них.

  1. Завантажте файл конфігурації з сайту Сервера OpenVPN , до якого ви плануєте підключитися.

    Наприклад, на www.vpngate.net, виберіть сервер і натисніть на 'Файл конфігурації OpenVPN'.

    openvpn-client2-en.png

    Далі виберіть одну з конфігурацій даного сервера, наприклад, з DDNS доменним ім'ям та TCP 1781.

    openvpn-client3-en.png

    Файл конфігурації з розширенням .ovpn буде завантажений на ваш комп'ютер. Відкрийте його в будь-якому текстовому редакторі (напр. Блокнот) і скопіюйте весь вміст в буфер обміну натисканням Ctrl-A а потім Ctrl-C клавіш на клавіатурі.

    Після цього перейдіть до сторінки 'Інші з'єднання' і натисніть 'Додати підключення' у розділі 'VPN-підключення'. У вікні 'Параметри VPN-підключення', виберіть 'OpenVPN' в полі 'Тип (протокол)'.

    Потім введіть назву з'єднання в поле 'Ім'я підключення', а в поле 'Конфігурація OpenVPN' вставте скопійовану конфігурацію з буфера обміну натисканням Ctrl-V. Збережіть налаштування.

    openvpn-client4-en.png

    Щоб налаштувати розклад роботи або визначити інтерфейс, через який буде працювати з'єднання, натисніть на 'Показати додаткові налаштування'.

    Після налаштування з'єднання встановіть повзунок в позицію 'Увімкнено'. Статус з'єднання також буде відображатися на цій сторінці.

    openvpn-client5-en.png

    Підказка

    Якщо ви хочете використовувати це з'єднання для доступу до Інтернету, призначте йому найвищий пріоритет. Ви знайдете інформацію про пріоритети в розділі статті 'Пріоритети підключень'.

  2. На деяких сайтах з налаштуваннями OpenVPN, окрім файлу конфігурації, ще вказані login і password. Наприклад, на vpnbook.com.

    openvpn-client6-en.png

    В цьому випадку перед копіюванням вмісту з конфігураційного файлу в буфер обміну необхідно видалити рядок:

    auth-user-pass

    і додати розділ, ввівши необхідні значення login і password. Наприклад:

    <auth-user-pass>
    vpnbook
    r3d23xs
    </auth-user-pass>
    openvpn-client7-en.png
  3. Інші провайдери, такі як altvpn.com, надають сертифікати та ключі у вигляді окремих файлів. В цьому випадку потрібно:

    1. Закоментувати рядки з іменами сертифікатів та файлів ключів за допомогою символу #:

      #ca ca.crt
      #cert xxxxxxxxxxxx.crt
      #key xxxxxxxxxxxx.crt
    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. privateinternet.com в своїй конфігурації має файли ca.rsa.2048.crt і crl.rsa.2048.pem, вміст яких слід вставити між розділами <crl-verify> </crl-verify> і <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>

Типові помилки та рішення:

  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. Виникає помилка при використанні опції /storage/key.txt:

    Error: private key password verification failed

    Це обмеження поточної реалізації OpenVPN в Keenetic. Ви можете використовувати тільки ключ без пароля або з фіксованим паролем: 'password'.

  5. Після оновлення маршрутизатора до KeeneticOS 3.9.1, тунель VPN до серверів OpenVPN для певних постачальників VPN більше не може бути встановлений. У системному журналі можна побачити такі повідомлення:

    W [Dec 15 16:52:58] OpenVPN6: DEPRECATED OPTION: --cipher set to 'AES-128-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305). 
    OpenVPN ignores --cipher for cipher negotiations.
    Error: private key password verification failed

    Проблема в застарілому форматі шифрування BF-CBC, який не підтримується, починаючи з клієнтської версії ОpenVPN2.5.0 (KeeneticOS 3.9 використовує версію клієнта OpenVPN2.6.0).

    Примітка

    BF-CBC шифр більше не підтримується в конфігурації за замовчуванням. Версія OpenVPN2.5.0 підтримує шифри AES-256-GCMіAES-128-GCM за замовчуванням. Ви можете змінити цю поведінку за допомогою опції data-ciphers, наприклад, вказавши в налаштуваннях data-ciphers AES-256-GCM:AES-128-GCM:BF-CBC. Для підтримки дуже старих вузлів OpenVPN, які не підтримують узгодження шифрів (режим "--cipher«), можна вказати data-ciphers-fallback BF-CBC.

    При оновленні до нової версії OpenVPN налаштування 'cipher BF-CBC' в старих файлах конфігурації буде перетворене з додаванням BF-CBC до data-ciphers сету. Крім того, буде увімкнений режим data-ciphers-fallback.

    Для успішної установки тунелю потрібно змінити директиву:

    cipher AES-128-CBC на data-ciphers AES-128-CBC або на data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305

    Якщо не працює, то змініть директиву:

    cipher AES-128-CBC на data-ciphers-fallback AES-128-CBC

    Для максимальної сумісності узгодження шифрів з віддаленим сервером вкажіть наступні директиви:

    data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305

    data-ciphers-fallback AES-128-CBC

    або

    data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305

    data-ciphers-fallback AES-256-CBC

    Важливо

    Шифрування залежить від віддаленого сервера OpenVPN. Перед зміною директиви cipher, будь ласка, подивіться системний журнал.

  6. Якщо в журналі записана наступна помилка розміру ключа:

    [E] Dec 16 19:01:38 OpenVPN0: Unrecognized option or missing or extra parameter(s) in configuration: (line 22): keysize (2.6_git)
    [E] Dec 16 19:01:38 OpenVPN0: Exiting due to fatal error
    [E] Dec 16 19:01:38 ndm: Service: "OpenVPN0": unexpectedly stopped.Error: private key password verification failed

    Тоді в конфігурації тунелю потрібно прибрати директиву опції keysize 256, яка застаріла для оновленого клієнта Опен-VPN 2.6.0, і ще раз перевірити підключення тунелю.

    Ви можете знайти детальну інформацію про опцію 'keysize' за цим посиланням.

Рекомендуємо ознайомитися з наступною інформацією: