Я использую настройку OpenVPN, где я реализую пользовательскую аутентификацию на сервере с помощью auth-user-pass-verify
скрипта. Этот скрипт обращается к удаленному серверу, поэтому процесс обычно занимает 10-40 секунд. Кроме того, я reneg-sec
настроил повторное согласование каждые 30 минут.
Проблема в том, что каждый раз, когда начинается повторное согласование, клиентское соединение не работает, пока не закончится reneg. Имеет смысл поддерживать соединение до некоторого настраиваемого тайм-аута на reneg. Я пробовал смотреть на конфигурации hand-window
или tran-window
, которые, казалось, связаны, но ничего не помогло.
Есть ли способ сохранить соединение во время процесса повторного согласования OpenVPN?
решение1
Попробуйте использовать auth-gen-token 0
опцию. Согласно документу
Сервер OpenVPN с этой опцией сгенерирует временный токен аутентификации и передаст его клиенту. При последующих повторных согласованиях клиент OpenVPN передаст этот токен вместо пароля пользователя. На стороне сервера сервер выполнит внутреннюю аутентификацию токена и НЕ будет выполнять никаких дополнительных аутентификаций против настроенных внешних механизмов аутентификации пользователя/пароля.
Таким образом, повторное согласование произойдет, но оно не вызовет длительный процесс аутентификации, поэтому соединение не будет прервано.