Назад | Перейти на главную страницу

Опция OpenVPN persist-tun - в чем смысл?

Согласно Поваренная книга OpenVPN 2:

Параметры persist-tun и persist-key используются для обеспечения автоматического восстановления соединения при нарушении работы базовой сети. Эти параметры необходимы при использовании пользователя nobody и group nobody (или group nogroup).

Что это значит на практике?

На стороне сервера есть устройство tun0. Процесс OpenVPN работает как никто и nogroup. Пока все нормально. Но что именно делает опция persist-tun? В зависимости от того, подключаюсь я или нет, то же устройство tun0 все еще там.

Из другого вопроса:

Избавьтесь от опции persist-tun. Без этой опции соединение VPN отключается, устройство tun закроется и будет удалено. Проблема, конечно же, в том, что удаление этой опции означает, что вам нужно запустить демон VPN как root, а не под ником. Поскольку никто не имеет учетной записи, OpenVPN не сможет создать новое устройство tun при восстановлении соединения.

После удаления опции persist-tun устройство tun по-прежнему работает без подключенного клиента.

Кто-нибудь, пожалуйста, подробно объясните процесс, в котором задействованы параметры persist-tun, persist-key, user nobody, group nogroup и keepalive.

Может быть 3 причины для использования persist-tun

1- Вам нужны права root, чтобы иметь возможность управлять интерфейсами. Если OpenVPN изменится на none / nogroup, он не сможет добавлять / удалять интерфейсы. Поэтому было бы необходимо сохранить интерфейс tun.

2- Если удалить интерфейс tun, вы потеряете указывающий на него маршрут. Это будет означать, что ваш трафик будет передаваться по маршруту по умолчанию в незашифрованном виде. Вероятно, что-то такое, чего вы не хотите.

3- Если интерфейс не удален (сохраняется), то скрипты вверх / вниз не будут выполняться. В руководстве говорится:

–Persist-tun Не закрывать и повторно открывать устройство TUN / TAP или запускать сценарии включения / выключения через SIGUSR1 или –ping-restart restarts. SIGUSR1 - это сигнал перезапуска, аналогичный SIGHUP, но предлагающий более детальный контроль над параметрами сброса.

Подобное также объясняется в 2.4 руководство для persist-key

–Persist-key Не перечитывать файлы ключей через SIGUSR1 или –ping-restart. Этот параметр можно комбинировать с –user nobody, чтобы разрешить перезапуск по сигналу SIGUSR1. Обычно, если вы отказываетесь от привилегий root в OpenVPN, демон не может быть перезапущен, поскольку теперь он не сможет повторно прочитать защищенные ключевые файлы.

Эта опция решает проблему, сохраняя ключи при сбросе SIGUSR1, поэтому их не нужно перечитывать.

Я считаю, что это скорее настройка на стороне клиента. Если клиент отключается, при некоторых условиях он удаляет, а затем заново создает туннель. Я не уверен, что он делает что-то полезное на стороне сервера. Поскольку серверная часть в основном работает все время.