Организация защищенного удаленного доступа с использованием OpenVPN и Keycloak
Интеграция OpenVPN и Keycloak для усиления безопасности удаленного доступа: опыт одного из клиентов Yandex Cloud
В марте 2024 года Yandex Cloud опубликовал кейс, в котором один из клиентов реализовал решение для повышения безопасности удаленного доступа к внутренним сервисам, таким как Grafana, Prometheus и Elasticsearch, через VPN. Ранее в инфраструктуре клиента использовался Self-Hosted OpenVPN с аутентификацией по локальным учетным записям, что ограничивало масштабируемость и безопасность.
В рамках проекта клиент внедрил интеграцию OpenVPN с системой единой аутентификации Keycloak, поддерживающей протоколы OpenID Connect и SAML. В опубликованном кейсе отмечается, что базовый OpenVPN Community Edition не поддерживает нативную аутентификацию через OIDC/SAML, поэтому для организации единой аутентификации применялся внешний компонент — oauth2-proxy, который выступает в роли промежуточного сервера и обеспечивает аутентификацию пользователей через OpenID Connect с Keycloak.
Согласно описанию, возможная схема работы включает использование oauth2-proxy для аутентификации пользователей в браузере. После успешного входа проверенные учетные данные могут передаваться в OpenVPN через RADIUS-сервер или специализированный плагин внешней аутентификации. При этом сам OpenVPN-клиент не выполняет прямой веб-редирект на страницу входа Keycloak — обычно используется отдельный портал или механизм внешней аутентификации, интегрированный с VPN-сервером.
В результате реализации интеграции клиент получил следующие преимущества:
- Централизованное управление пользователями и правами доступа через Keycloak.
- Поддержка многофакторной аутентификации.
- Гибкая настройка политик доступа, включая ограничения по ролям и времени.
- Удобство для пользователей благодаря единому входу для всех сервисов, интегрированных с Keycloak.
В опубликованном материале также отмечается, что для успешной реализации важно уделить внимание архитектуре решения: определить, какие сервисы и пользователи будут подключаться, настроить соответствующие политики в Keycloak, а также обеспечить актуальность версий OpenVPN, Keycloak и используемых плагинов. Мониторинг и аудит аутентификационных событий рассматриваются как ключевые элементы для своевременного обнаружения аномалий.
Таким образом, кейс клиента Yandex Cloud демонстрирует, как с помощью интеграции OpenVPN и Keycloak через внешний компонент oauth2-proxy можно повысить безопасность удаленного доступа и упростить управление идентификацией в облачных инфраструктурах.
