Для перемещения по дереву справки используйте строки заголовка.

Справка по NSG Linux 2.1.6
Дерево команд: tunnel.openvpn.…далее…

Что это такое?

Это настройка OpenVPN.

Зачем это нужно?

Для безопасной передачи пакетов IP либо Ethernet между сегментами корпоративной сети через сеть общего пользования.

Особенности туннеля OpenVPN и требования для его создания:

Как это настроить?

OpenVPN — развитая кросс-платформенная система туннелирования 4 уровня (в терминах модели OSI). Как и STunnel, для аутентификации сторон и защиты трафика она опирается на TLS/SSL и сертификаты X.509. (Возможна также аутентификация на основе симметричного ключа, но это менее безопасно, особенно при неизвестном заранее IP-адресе одной из сторон.) В отличие от STunnel, работающего как TCP-прокси, OpenVPN создаёт полноценные виртуальные интерфейсы, которые могут использоваться либо как аналог порта Ethernet (2 уровня), либо как IP-интерфейс 3 уровня. В качестве протокола нижележащего уровня для пакетов туннеля может использоваться UDP либо TCP.

Реализация OpenVPN в NSG Linux основана на стандартном демоне openvpn и поддерживает все его возможности. Подробную документацию собственно по OpenVPN см. в man pages, а также на сайте разработчика.

Для добавления туннелей используйте команды +, _new или _insert. Имя следует вводить в формате ovpnНомер или только целочисленный номер. Данный список является именованным и не упорядочивается автоматически. Для удаления используйте команду - или _remove. Далее каждый из туннелей настраивается, включается/выключается и отлаживается индивидуально.


Хранение сертификатов и ключей

Для работы OpenVPN требуется ряд объектов, которые обычно хранятся в отдельных файлах в формате PEM: ключи, сертификаты, параметры Диффи-Хеллмана (на сервере) и проч. Но есть интересная возможность. Большинство этих объектов (но не все!) можно хранить прямо в теле конфигурационного файла, в XML-подобных тегах. Например:

<cert>
тело сертификата
</cert>

Где тело сертификата — это всё от строки

-----BEGIN CERTIFICATE-----
до строки
-----END CERTIFICATE-----

включительно. Между этими строками содержится только текст в Base64. (Если сертификат содержит ещё и текстовую информацию в читаемом виде, её можно не копировать.)

Это удобно, чтобы держать все настройки в одном файле вместо нескольких. Например, администратор сервера может генерировать один файл и отдавать его пользователю, а уж тот как-нибудь найдёт куда его вставить в единственное место в клиенте VPN, например, на мобильном устройстве.

С другой стороны, если система не настраивается раз и навсегда, а предполагается, что в будущем придётся периодически менять ключи и сертификаты — то удобнее хранить их в отдельных файлах.

Напрямую манипулировать файлами в NSG Linux возможно, но не очень удобно. Разработчики намеренно не дают пользователю nsg полный доступ к файловой системе — это противоречит безопасности. Особенно если пользователь неопытный или небрежный, или любит пароли типа qwerty. Необходимо работать с устройством как суперпользователь root — но это крайняя мера, которая не рекомендуется без настоятельной необходимости ни в одной системе (и даже в Windows).

В частности, если имеется готовый файл конфигурации, то можно вставить в него все настройки, ключи и проч. как описано выше, и указать его в узле config-file. (Необходимо только исключить из него параметры dev и writepid, если они там есть — в NSG Linux они добавляются автоматически по имени туннеля ovpnNUM.) Но этот единственный файл всё равно надо будет как-то перенести на устройство.

Однако в случае OpenVPN есть способ менять ключи и т.п. средствами исключительно Web- или CLI-интерфейса NSG. Это — поле extra. Всё, что стоит в этом поле, дописывается в конец временного файла конфигурации без изменений. И это не обязательно должны быть именно строки "параметр значение" ! Там может быть любое содержимое, которое допускается openvpn.

Иначе говоря, в поле extra можно вставить содержимое всех дополнительных файлов:

<ca>
.................
</ca>
<key>
.................
</key>
<cert>
.................
</cert>
<tls-auth>
.................
</tls-auth>
<tls-cert>
.................
</tls-cert>

и т.п. Ограничений на длину этого поля нет. В итоге получится корректный файл конфигурации со всеми ключами и т.п. внутри него. Результат, после применения настроек, можно посмотреть командой actual-config.

Такую настройку можно также сделать или изменить при работе в CLI под именем пользователя nsg. Заполнять любые ветви дерева (в т.ч. его конечные листья) можно с помощью команды _get. Редактировать каждый конкретный параметр можно командами _edit или _fullscreen.


© Network Systems Group 2015–2024 Отдел документации