Skip to main content

Руководство пользователя

Клиент OpenVPN

OpenVPN — один из самых популярных протоколов для организации VPN-соединения. С его помощью можно создать виртуальную частную сеть или объединять локальные сети. OpenVPN имеет открытый исходный код и бесплатно распространяется под лицензией GNU GPLOpenVPN можно назвать одним из самых безопасных протоколов. Все передаваемые данные надежно защищены при помощи библиотеки шифрования OpenSSL и протоколов SSLv3/TLSv1, что обеспечивает высокую безопасность и анонимность.

В интернет-центре Keenetic интегрирована поддержка Клиент и сервер OpenVPN. Для подключения OpenVPN реализованы такие возможности как режим TCP и UDP, аутентификация TLS, использование сертификатов и ключей шифрования для повышения уровня безопасности VPN-подключения. Для настройки OpenVPN обязательно нужно установить компонент системы "Клиент и сервер OpenVPN". С этим компонентом интернет-центр Keenetic можно использовать как клиент и как сервер OpenVPN. Подробное описание режима сервера вы найдете в статье "Сервер OpenVPN". Установить компонент системы можно на странице "Общие настройки" в разделе "Обновления и компоненты", нажав "Изменить набор компонентов".

openvpn-client1-en.png

Важно

В интернет-центре 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".

    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, помимо файла конфигурации указывают логин и пароль. Например, на vpnbook.com.

    openvpn-client6-en.png

    В этом случае, прежде чем скопировать содержимое в буфер обмена из файла конфигурации, необходимо удалить строку:

    auth-user-pass

    и добавить секцию, вписав нужные значения логина и пароля. Например:

    <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. У провайдера privateinternetaccess.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. При использовании опции askpass /storage/key.txt возникает ошибка:

    Error: private key password verification failed

    Это ограничение текущей реализации OpenVPN в Keenetic. Можно использовать только ключ без пароля или с фиксированным паролем: "password".

  5. После обновления роутера до версии ПО KeeneticOS 3.9.1 может перестать устанавливаться VPN-туннель до серверов OpenVPN некоторых сервисов. В логе при этом можно увидеть следующие сообщения:

    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, который не поддерживается начиная с версии клиента OpenVPN 2.5.0 (в версии KeeneticOS 3.9 используется клиент OpenVPN 2.6.0).

    Примечание

    Из конфигурации по умолчанию убрана поддержка BF-CBC. В OpenVPN 2.5.0 по умолчанию теперь принимаются только шифры AES-256-GCM и AES-128-GCM. Изменить данное поведение можно при помощи опции data-ciphers, например, указав в настройках data-ciphers AES-256-GCM:AES-128-GCM:BF-CBC, а для поддержки очень старых узлов, не поддерживающих согласование шифров (режим "--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, которая устарела для обновленного клиента OpenVPN 2.6.0, после проверьте подключение туннеля.

    Подробную информацию по опции "keysize" вы найдете по ссылке.

Рекомендуем ознакомиться со следующей информацией: