NOTE: В данной статье показана настройка версий ОС NDMS 2.11 и более ранних. Настройка актуальной версии ПО представлена в статье "Клиент OpenVPN".
В ОС NDMS v2.10.B0 был добавлен OpenVPN-клиент. Для его использования необходимы следующие действия:
Убедитесь, что установлен компонент с названием Клиент OpenVPN.
Скачайте файл конфигурации с сайта сервера OpenVPN, к которому планируете подключаться.
Например, на www.vpngate.net выберите сервер и нажмите на OpenVPN Config file.
Далее выберите одну из конфигураций этого сервера, например с использованием доменного имени DDNS и TCP 995.
При этом на компьютер скачается файл конфигурации с расширением .ovpn. Откройте его в текстовом редакторе Блокнот (Notepad) и скопируйте все содержимое в буфер обмена (Ctrl A, Ctrl C). После чего в веб-конфигураторе Keenetic зайдите в раздел Интернет и на вкладке PPPoE/VPN добавьте соединение. В его настройках поставьте галочку Включить, добавьте Описание (например, vpngate), выберите Тип (протокол) — OpenVPN, а в поле Конфигурация OpenVPN вставьте скопированную конфигурацию из буфера обмена (Ctrl V) и нажмите Применить.
На этом настройка окончена.
Проверьте, что соединение установлено в разделе Интернет на вкладке Подключения.
Если необходимо выходить через данное подключение в Интернет, поставьте соединению самый высокий приоритет, например 1000, как в нашем примере.
На некоторых сайтах с настройками OpenVPN, помимо файла конфигурации указывают логин и пароль. Например, на vpnbook.com.
В этом случае, прежде чем скопировать в буфер обмена из файла конфигурации, необходимо удалить строку:
auth-user-pass
и добавить секцию, вписав нужные значения логина и пароля:
<auth-user-pass>
vpnbook
bgxz34
</auth-user-pass>
Другие провайдеры, например altvpn.com, предоставляют сертификаты и ключи в виде отдельных файлов. В этом случае понадобится:
1. Закомментировать строки с именами файлов сертификатов и ключа символом #:
#ca ca.crt
#cert xxxxxxxxxx.crt
#key xxxxxxxxxx.crt
2. В конец файла конфигурации добавить секции сертификатов и ключа и вставить в них содержимое соответствующих файлов:
<ca>
-----BEGIN CERTIFICATE-----
... <--сюда вставить тело серификат из файла ca.crt
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
... <--сюда вставить тело серификат из файла xxxxxxxxxx.crt
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN RSA PRIVATE KEY-----
... <--сюда вставить тело ключа из файла xxxxxxxxxx.key
-----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>
xxxxx - тут указать ваш логин сервиса
xxxxx - тут указать пароль сервиса
</auth-user-pass>
comp-lzo
verb 1
reneg-sec 0
disable-occ
<crl-verify>
-----BEGIN X509 CRL-----
... <--сюда вставить тело ключа из файла crl.rsa.2048.pem
-----END X509 CRL-----
</crl-verify>
<ca>
-----BEGIN CERTIFICATE-----
... <--сюда вставить тело серификата из файла ca.rsa.2048.crt
-----END CERTIFICATE-----
</ca>
Требования к конфигурации OpenVPN для использования в Keenetic:
Конфигурация должна быть выполнена в виде одного файла.
Сертификаты, ключи и т.п. должны быть включены в этот файл.
Как правило подходят файлы конфигурации с расширением .ovpn
Если провайдер предлагает файлы для различных роутеров или систем, в большинстве случаев можно воспользоваться файлом для OpenWRT.
В конфигурации необходимо использовать только опции, перечисленные здесь: https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
Некоторые опции из описанных по ссылке выше могут не поддерживаться. Например, у нас не поддерживаются опции, относящиеся к IPv6.
Порядок следования опций и включенных сертификатов и ключей не имеет значения.
Примечание
Файл конфигурации OpenVPN не сохраняется в резервной копии конфигурации устройства startup-config.txt. Для получения резервной копии настроек интерфейса клиента OpenVPN его нужно сохранить отдельно.
Типовые ошибки и пути решения:
1. auth-user-pass without inline credentials data is not supported
pull-filter ignore "block-outside-dns"
3. Ошибка при соединении с серверами PrivateTunnel.
ignore-unknown-option client-ip block-ipv6
4. При использовании опции askpass /storage/key.txt возникает ошибка:
Error: private key password verification failed
Это ограничение текущей реализации OpenVPN в Keenetic. Можно использовать только ключ без пароля или с фиксированным паролем: "password".
Дополнительная информация:
Документация по OpenVPN 2.4
https://ru.wikipedia.org/wiki/OpenVPN
KB-5251