Я хочу создать набор служб, требующих единого входа. По сути, вы входите в систему моего провайдера oAuth, и у вас есть доступ к openvpn-соединению (или к веб-сайту) без дополнительной безопасности, за возможным исключением исходной настройки.
Поэтому мой вопрос: как мне автоматизировать openVpn, чтобы я мог делать одно из двух:
Или
Читать человек openvpn. Это исчерпывающий источник информации об OpenVPN.
Позвольте мне просто скопировать и вставить часть этой страницы. Думаю, это должно полностью ответить на ваш вопрос:
--auth-token
жетонЭтот вариант нельзя использовать напрямую в каких-либо файлах конфигурации.
--client-connect
сценарий или--plugin
который цепляется заOPENVPN_PLUGIN_CLIENT_CONNECT
илиOPENVPN_PLUGIN_CLIENT_CONNECT_V2
звонки. Эта опция предоставляет возможность заменить пароль клиента на токен аутентификации в течение срока службы клиента OpenVPN.Каждый раз, когда соединение повторно согласовывается и
--auth-user-pass-verify
сценарий или--plugin
используяOPENVPN_PLUGIN_AUTH_USER_PASS_VERIFY
срабатывает ловушка, он передаст этот токен в качестве пароля вместо пароля, предоставленного пользователем. Маркер аутентификации может быть сброшен только путем полного переподключения, когда сервер может передать новые параметры клиенту. Пароль, введенный пользователем, никогда не сохраняется после установки токена аутентификации. Если сторона сервера OpenVPN отклоняет токен аутентификации, клиент получитAUTH_FAIL
и отключиться.Это позволяет использовать двухфакторные методы аутентификации, такие как HOTP или TOTP, без необходимости извлекать новый код OTP каждый раз при повторном согласовании соединения. Другой вариант использования - кэширование данных аутентификации на клиенте без необходимости кэширования пароля пользователя в памяти в течение всего сеанса.
Чтобы использовать эту функцию,
--client-connect
сценарий или--plugin
нужно положить
push "auth-token UNIQUE_TOKEN_VALUE"
в файл / буфер для данных динамической конфигурации. Затем это заставит сервер OpenVPN передать это значение клиенту, который заменит локальный пароль на
UNIQUE_TOKEN_VALUE
.
Я наткнулся на несколько ссылок, когда искал аналогичное требование единого входа для WireGuard. Я перечисляю их ниже.