Клиент OpenVPN
OpenVPN — один из самых популярных протоколов для организации VPN-соединения. С его помощью можно создать виртуальную частную сеть или объединять локальные сети. OpenVPN имеет открытый исходный код и бесплатно распространяется под лицензией GNU GPL. OpenVPN можно назвать одним из самых безопасных протоколов. Все передаваемые данные надежно защищены при помощи библиотеки шифрования OpenSSL и протоколов SSLv3/TLSv1, что обеспечивает высокую безопасность и анонимность.
В интернет-центре Keenetic интегрирована поддержка Клиент и сервер OpenVPN. Для подключения OpenVPN реализованы такие возможности как режим TCP и UDP, аутентификация TLS, использование сертификатов и ключей шифрования для повышения уровня безопасности VPN-подключения. Для настройки OpenVPN обязательно нужно установить компонент системы "Клиент и сервер OpenVPN". С этим компонентом интернет-центр Keenetic можно использовать как клиент и как сервер OpenVPN. Подробное описание режима сервера вы найдете в статье "Сервер OpenVPN". Установить компонент системы можно на странице "Общие настройки" в разделе "Обновления и компоненты", нажав "Изменить набор компонентов".
Важно
В интернет-центре Keenetic используются строгие требования к конфигурации OpenVPN. Ниже перечислены основные требования:
Конфигурация должна быть выполнена в виде одного файла.
Сертификаты, ключи и т.п. должны быть включены в этот файл.
Как правило подходят файлы конфигурации с расширением .ovpn
Если провайдер предлагает файлы для различных роутеров или систем, в большинстве случаев можно воспользоваться файлом для OpenWRT.
В конфигурации необходимо использовать только опции, перечисленные в документе: https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
В конфигурации не должны присутствовать директивы или неизвестные команды, которые не могут быть обработаны.
Некоторые опции, из описанных по ссылке выше, могут не поддерживаться. Например, в нашей реализации OpenVPN не поддерживаются опции, относящиеся к IPv6.
Порядок следования опций и включенных сертификатов и ключей не имеет значения.
Файл конфигурации OpenVPN не сохраняется в резервной копии конфигурации устройства
startup-config
. Для получения резервной копии настроек интерфейса клиента OpenVPN его нужно сохранить отдельно.
Число клиентских подключений ограничивается выделенным служебным размером раздела памяти объемом 24 Кбайта
для хранения VPN-конфигураций. Особенно это актуально для OpenVPN-соединений, т.к. суммарный размер их конфигураций не должен превышать 24 Кбайта
.
VPN-провайдеры могут предоставлять разные варианты конфигураций для OpenVPN-подключения. Ниже рассмотрим некоторые из них.
Скачайте файл конфигурации с сайта сервера OpenVPN, к которому планируете подключаться.
Например, на www.vpngate.net выберите сервер и нажмите на "OpenVPN Config file".
Далее выберите одну из конфигураций этого сервера. Например, с использованием доменного имени DDNS и
TCP 1781
.При этом на компьютер загрузится файл конфигурации с расширением
.ovpn
. Откройте его в любом текстовом редакторе (например, в Блокноте) и скопируйте всё содержимое в буфер обмена, нажав на клавиатуре последовательно комбинацию клавишCtrl A
иCtrl C
.После этого перейдите на страницу "Другие подключения" и в разделе "VPN-подключения" нажмите "Добавить подключение". В окне "Параметры VPN-подключения" в поле "Тип (протокол)" выберите значение "OpenVPN".
Затем в поле "Имя подключения" впишите имя соединения и в поле "Конфигурация OpenVPN" вставьте скопированную конфигурацию из буфера обмена, нажав
Ctrl V
. Сохраните настройки.Для настройки расписания работы или определения интерфейса, через который будет работать подключение, нажмите "Показать дополнительные настройки".
После создания подключения переведите переключатель в состояние Включено.На этой же странице будет отображаться статус данного подключения.
Подсказка
Если данное подключение нужно использовать для выхода в Интернет, назначьте этому соединению самый высокий приоритет. Информацию о приоритетах вы найдете в статье "Приоритеты подключений".
На некоторых сайтах с настройками OpenVPN, помимо файла конфигурации указывают
логин
ипароль
. Например, на vpnbook.com.В этом случае, прежде чем скопировать содержимое в буфер обмена из файла конфигурации, необходимо удалить строку:
auth-user-pass
и добавить секцию, вписав нужные значения
логина
ипароля
. Например:<auth-user-pass> vpnbook r3d23xs </auth-user-pass>
Другие провайдеры, например altvpn.com, предоставляют сертификаты и ключи в виде отдельных файлов. В этом случае нужно:
Закомментировать строки с именами файлов сертификатов и ключа символом
#
:#ca ca.crt #cert xxxxxxxxxxxx.crt #key xxxxxxxxxxxx.crt
В конец файла конфигурации добавить секции сертификатов и ключа, и вставить в них содержимое соответствующих файлов:
<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>
У провайдера 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>
Типовые ошибки и пути решения:
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
Ошибка опции
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"
Ошибка при соединении с серверами 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
При использовании опции askpass
/storage/key.txt
возникает ошибка:Error: private key password verification failed
Это ограничение текущей реализации OpenVPN в Keenetic. Можно использовать только ключ без пароля или с фиксированным паролем: "
password
".После обновления роутера до версии ПО 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
(в версии KeeneticOS3.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
, а для поддержки очень старых узлов, не поддерживающих согласование шифров (режим "--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
смотрите лог подключения.Если в логе зафиксирована следующая ошибка размера ключа:
[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
, которая устарела для обновленного клиента OpenVPN2.6.0
, после проверьте подключение туннеля.Подробную информацию по опции "
keysize
" вы найдете по ссылке.
Рекомендуем ознакомиться со следующей информацией: