
Полностью прозрачный SSH, HTTPS, Kubernetes, базы данных и RDP/VNC bastion/PAM, не требующий дополнительного клиентского ПО
Warpgate — это умный и полностью прозрачный бастион-хост для SSH, HTTPS, Kubernetes, MySQL, PostgreSQL, RDP и VNC, который не требует клиентского приложения или SSH-обёртки.
При поддержке:
Полная документация доступна на warpgate.null.page, включая:
|
|
|
Пожалуйста, используйте систему сообщений об уязвимостях GitHub.
Warpgate активно используется в корпоративных средах.
Что запланировано и над чем ведётся работа дальше, отслеживается на публичной дорожной карте.
Warpgate — это сервис, который вы разворачиваете на бастион-хосте/DMZ-хосте. Он принимает SSH, HTTPS, Kubernetes, MySQL, PostgreSQL, RDP и VNC-соединения и предоставляет (опциональный) веб-интерфейс администратора.
Запустите warpgate setup, чтобы в интерактивном режиме сгенерировать файл конфигурации, включая привязки портов. Подробности см. в разделе Getting started.
Он принимает соединения со специально отформатированными учётными данными, аутентифицирует пользователя локально, сам подключается к цели, а затем соединяет обе стороны вместе, (опционально) записывая сессию.
При подключении через HTTPS Warpgate показывает выбор доступных целей, а затем проксирует весь трафик сессии к выбранной цели. Вы можете переключаться между целями в любой момент.
Вы управляете списками целей и пользователей и назначаете их друг другу через интерфейс администратора, а история сессий хранится в базе данных SQLite (по умолчанию: в /var/lib/warpgate).
Вы также можете использовать веб-интерфейс администратора для просмотра списка активных сессий, записей сессий, журналов и многого другого.
В конце 2025 года проект начал принимать вклад с использованием ИИ. Участники обязаны раскрывать использование ИИ. Я считаю, что, применяя одинаково высокий стандарт качества ко всем PR, независимо от того, использовался ли ИИ, не нужно жертвовать качеством или безопасностью.
Поскольку ИИ — это спектр между бездумными энтузиастами и пользователями автодополнения, я считаю, что прозрачность в отношении его использования помогает установить и ограничить место ИИ в этом проекте.
Архитектурные решения и решения по безопасности в этом проекте на 100% принимаются людьми.
cargo install justjust npm installjust npm run buildcargo build (опционально --release)Бинарный файл находится в target/{debug|release}.
poem-websea-orm + sqlxrusshjust openapi-all.Спасибо этим замечательным людям (ключ эмодзи):
Этот проект соответствует спецификации all-contributors. Приветствуются любые виды вклада!
| Warpgate | SSH jump host | VPN | Teleport |
|---|
| ✅ Точное сопоставление 1:1 между пользователями и сервисами | (Обычно) полный доступ к сети за jump-хостом | (Обычно) полный доступ к сети | ✅ Точное сопоставление 1:1 между пользователями и сервисами |
| ✅ Не требуется специальный клиент | Требуется настройка jump-хоста | ✅ Не требуется специальный клиент | Требуется специальный клиент |
| ✅ 2FA из коробки | 🟡 2FA возможна с дополнительными PAM-плагинами | 🟡 Зависит от провайдера | ✅ 2FA из коробки |
| ✅ SSO из коробки | 🟡 SSO возможен с дополнительными PAM-плагинами | 🟡 Зависит от провайдера | Платно |
| ✅ Аудит на уровне команд | 🟡 Аудит на уровне соединений на jump-хосте, нет надёжного аудита на цели при предоставлении root-доступа | Нет надёжного аудита на цели при предоставлении root-доступа | ✅ Аудит на уровне команд |
| ✅ Полная запись сессий | Невозможна надёжная запись на цели при предоставлении root-доступа | Невозможна надёжная запись на цели при предоставлении root-доступа | ✅ Полная запись сессий |
| ✅ Неинтерактивные соединения | 🟡 Неинтерактивные соединения возможны, если клиенты поддерживают jump-хосты нативно | ✅ Неинтерактивные соединения | Неинтерактивные соединения требуют использования SSH-обёртки клиента или запуска туннеля |
| ✅ Self-hosted, данные принадлежат вам | ✅ Self-hosted, данные принадлежат вам | 🟡 Зависит от провайдера | SaaS |
| ✅ Встроенная защита от перебора паролей | 🟡 Требуется настройка fail2ban | 🟡 Зависит от провайдера | ✅ Встроенная защита от перебора паролей |
![]() Hariharan 💻 |
![]() kamilkrzeminski 💻 |
![]() Lars 💻 |
Hugues Granger 💻 |