Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
the-bastion — Аутентификация, авторизация, отслеживаемость и аудируемость для SSH-доступов. | Kitploit
Инструменты/GitHubGitHub/ovh/the-bastion
Аутентификация и авторизацияАудит конфигурацииСетевая безопасностьТестирование на ПроникновениеУтилиты и фреймворкиУправление идентификацией и доступом (IAM)Red Teaming
GitHubovh/the-bastion

the-bastion

Аутентификация, авторизация, отслеживаемость и аудируемость для SSH-доступов.

Репозиторий
2.2k131571 месяц назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Логотип The Bastion

🔒 The Bastion

Обзор

Бастионы — это кластер машин, используемый операционными командами (такими как системные администраторы, разработчики, администраторы баз данных и т. д.) в качестве единственной точки входа для безопасного подключения к устройствам (серверам, виртуальным машинам, облачным инстансам, сетевым устройствам и т. д.), обычно через ssh.

The Bastion предоставляет механизмы аутентификации, авторизации, отслеживания и аудита для всей вашей инфраструктуры.

Находясь между вашими пользователями и вашей инфраструктурой, The Bastion добавляет промежуточный уровень абстракции, чтобы вашей инфраструктуре не нужно было знать каждого члена операционной команды в отдельности.

Каждый член вашей команды имеет индивидуальную учётную запись в The Bastion и может быть участником одной или нескольких групп бастиона, которые могут предоставлять доступ к одной или нескольким инфраструктурам. Устройствам инфраструктуры нужно только знать и доверять группе (группам) бастиона, частью которых они могут быть.

Тонкая настройка RBAC в The Bastion позволяет делегировать некоторые обязанности любой учётной записи, в пределах группы или всего бастиона, включая учётные записи, которые могут использоваться вашей автоматизацией, например, для управления жизненным циклом учётных записей (связанных с вашей системой управления персоналом, LDAP или AD) или для обеспечения актуальности ACL группы (связанной с вашей CMDB). Автоматизированные процессы легко реализовать с помощью JSON API через SSH.

Полезные ресурсы

Хотите узнать больше, разглядывая красивые рисунки? Вот серия статей в блоге, которые глубже раскрывают основные функции и принципы The Bastion:

  • Часть 1 — Создание
  • Часть 2 — Головокружение от делегирования
  • Часть 3 — Безопасность в основе
  • Часть 4 — Новая эра

Другие ресурсы, которые могут быть интересны:

  • Онлайн-документация
  • (Видео на французском, слайды на английском) The Bastion на Very Tech Trip 2023, практический пример управления инфраструктурой с The Bastion и без него
  • (Видео на французском, слайды на английском) The Bastion на OSSIR, 2021, краткое объяснение основных принципов, затем подробное описание функциональности realm и, наконец, объяснение того, почему технические решения повышают безопасность (намеренное добавление уязвимости в код для доказательства!)
  • (Подкаст на французском) The Bastion на NoLimitSecu, 2021, интервью с вопросами и ответами

♻️ Нулевые предположения о вашем окружении

Для работы не требуется ничего необычного ни на стороне входа, ни на стороне выхода The Bastion.

Для подключения к нему нужен только ваш старый добрый клиент ssh, а с другой стороны подойдет любой стандартный сервер sshd. Это включает, например, сетевые устройства, на которых у вас может не быть возможности установить какое-либо собственное программное обеспечение.

Древние устройства, поддерживающие только криптографические алгоритмы с низким уровнем безопасности или telnet, можно скрыть от Интернета с помощью брандмауэра, разрешив доступ только для The Bastion, избегая таким образом компромисса с низким уровнем безопасности, допуская при этом только высокозащищённые соединения на стороне входа бастиона.

➰ Надёжность

  • Используется лишь несколько хорошо известных библиотек; меньше стороннего кода — меньше поверхность атаки
  • The Bastion спроектирован самодостаточным: никаких зависимостей, таких как базы данных, другие демоны, другие машины или сторонние облачные сервисы, ни для аутентификации, ни для авторизации — это статистически означает меньше времени простоя
  • Высокая доступность может быть настроена так, чтобы несколько экземпляров бастиона образовывали кластер из нескольких экземпляров, при этом любой экземпляр можно использовать в любое время (схема active/active)

:godmode: Неисчерпывающий список возможностей

  • Схемы личного и группового доступа с делегированием ролей в группах для обеспечения автономии команд без компромиссов в безопасности
  • Разрыв протокола SSH между входящим и исходящим соединениями
  • Запись интерактивных сессий (в стандартных файлах ttyrec)
  • Запись неинтерактивных сессий (stdout и stderr через ttyrec)
  • Расширенная поддержка логирования через syslog для удобного потребления SIEM
  • Возможности аутентификации включают поддержку MFA/2FA (пароль, TOTP) в дополнение к аутентификации по открытому ключу
  • Поддерживает проверку аттестации ключей Yubico PIV и принудительное её выполнение на стороне входящего соединения
  • Поддерживает mosh на стороне входящего соединения
  • Поддерживает пропуск scp, sftp и rsync для загрузки и/или скачивания файлов с/на удалённые серверы
  • Поддерживает пропуск подсистемы SSH netconf
  • Поддерживает realm'ы для создания доверия между двумя бастионами, возможно, разных компаний, разделяя фазы аутентификации и авторизации, сохраняя при этом локальные политики
  • Поддерживает автоматический вход по паролю SSH на стороне выхода для устаревших устройств, не поддерживающих аутентификацию по открытому ключу, при этом всё равно требуя правильную аутентификацию по открытому ключу на стороне входа
  • Поддерживает автоматический вход по паролю telnet на стороне выхода для древних устройств, не поддерживающих SSH, при этом всё равно требуя правильную аутентификацию по открытому ключу SSH на стороне входа
  • Поддерживает HTTPS-прокси с аутентификацией и авторизацией типа «человек посередине» для разделения паролей на вход и выход (в основном полезно для API сетевых устройств)

🔧 Установка, обновление, использование The Bastion

Пожалуйста, смотрите онлайн-документацию или соответствующую текстовую версию в папке doc/.

🎥 Быстрый пример подключения и воспроизведения

asciicast

⚡ TL;DR: протестируйте: одноразовая песочница с помощью Docker

Это хороший способ протестировать The Bastion за секунды, но прочитайте FAQ, если вы серьёзно рассматриваете использование контейнеризации в производстве.

Образ песочницы доступен для следующих архитектур: linux/386, linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64, linux/ppc64le, linux/s390x.

Давайте запустим docker-образ:

root@kitploit:~
docker run -d -p 22 --name bastiontest ovhcom/the-bastion:sandbox

Достаньте свой открытый SSH-ключ, затем настройте первую учётную запись администратора:

root@kitploit:~
docker exec -it bastiontest /opt/bastion/bin/admin/setup-first-admin-account.sh poweruser auto

Теперь мы запущены с конфигурацией по умолчанию! Давайте настроим удобный алиас для бастиона и протестируем команду info:

root@kitploit:~
PORT=$(docker port bastiontest | cut -d: -f2)
alias bastion="ssh [email protected] -tp $PORT -- "
bastion --osh info

Она должна приветствовать вас как администратора бастиона, что означает, что у вас есть доступ ко всем командам. Давайте войдём в интерактивный режим:

root@kitploit:~
bastion -i

Это полезно для вызова нескольких плагинов --osh подряд. Теперь мы можем запросить помощь, чтобы увидеть все плагины:

root@kitploit:~
$> help

Если у вас есть удалённая машина, к которой вы хотите подключиться через бастион, получите свой исходящий ключ:

root@kitploit:~
$> selfListEgressKeys

Скопируйте этот открытый ключ в файл authorized_keys удалённой машины в папке .ssh/ той учётной записи, к которой вы хотите подключиться, затем:

root@kitploit:~
$> selfAddPersonalAccess --host <remote_host> --user <remote_account_name> --port-any
$> ssh <remote_account_name>@<remote_host>

Обратите внимание, что вы можете подключиться напрямую без использования интерактивного режима, с помощью:

root@kitploit:~
bastion <remote_account_name>@<remote_machine_host_or_ip>

Вот и всё! Конечно, это далеко не всё; документация доступна в папке doc/ и онлайн. Обязательно ознакомьтесь со справкой самого бастиона (bastion --help) и справкой каждого плагина osh (bastion --osh command --help). Также не забудьте настроить файл bastion.conf, который находится в /etc/bastion/bastion.conf (для Linux).

🔀 Поддерживаемые ОС для установки

Перечисленные ниже дистрибутивы Linux тестируются с каждым релизом, но поскольку это продукт безопасности, вам настоятельно рекомендуется запускать его на последней актуальной стабильной версии вашей любимой ОС:

  • Debian 13 (Trixie), 12 (Bookworm), 11 (Bullseye)
  • RockyLinux 10.x, 9.x, 8.x
  • Ubuntu LTS 26.04, 24.04, 22.04
  • OpenSUSE Leap 16.0

Любые другие так называемые «современные» версии Linux не тестируются с каждым релизом, но должны работать с незначительными корректировками или без них.

Следующие ОС также тестируются с каждым релизом:

  • FreeBSD 15.1, 15.0, 14.4

FreeBSD имеет частичную поддержку MFA из-за ограниченного набора доступных модулей pam. Можно настроить поддержку либо дополнительного пароля, либо фактора TOTP, но не одновременно.

🆗 Качество кода

  • Код проверяется под perltidy
  • Код также проверяется под perlcritic
  • Перед каждым релизом проводятся функциональные тесты

🛂 Безопасность в основе

Даже при самом консервативном, осторожном и параноидальном процессе кодирования в коде есть ошибки, поэтому ему нельзя слепо доверять. Следовательно, бастион не доверяет собственному коду. Он использует примитивы безопасности операционной системы для получения дополнительной безопасности, как показано ниже.

  • Используется известный и проверенный дискреционный контроль доступа UNIX (DAC):

    • Пользователи бастиона сопоставляются с реальными системными пользователями
    • Группы бастиона сопоставляются с реальными системными группами
    • Весь код постоянно проверяет права перед тем, как разрешить какое-либо действие
    • UNIX DAC используется как страховочный пояс, чтобы предотвратить успешное выполнение действия, даже если код обманут и разрешил его
  • Основной скрипт бастиона объявлен как системная оболочка пользователя бастиона:

    • Ни один пользователь не имеет реального доступа к оболочке (bash-подобной) на системе
    • Весь код выполняется с правами непривилегированной системной учётной записи пользователя
    • Даже если бы пользователь смог выйти на реальную оболочку, он не смог бы подключиться к машинам, к которым у него нет доступа, потому что у него нет прав чтения на уровне файловой системы для SSH-ключей
  • Код является модульным

    • Основной код в основном проверяет права, регистрирует действия и предоставляет доступ ssh к другим машинам
    • Все дополнительные команды, называемые плагинами, находятся в модулях, отделённых от основного кода
    • Модули могут быть либо открытыми, либо ограниченными
      • Только учётные записи, которым было специально предоставлено право использования по необходимости, могут запускать определённый ограниченный плагин
      • Это проверяется кодом, а также обеспечивается UNIX DAC (плагин доступен для чтения и выполнения только системной группе, специфичной для плагина)
  • Весь код, требующий расширенных системных привилегий, отделён от основного кода в модулях, называемых helpers (помощники)

    • Помощники запускаются исключительно под sudo
    • Конфигурация sudoers привязана к системной группе, специфичной для команды, которая предоставляется учётным записям по мере необходимости
    • Помощники доступны для чтения и выполнения только системной группе, специфичной для команды

🔍 Аудируемость

  • Администраторы бастиона должны использовать логику самого бастиона для подключения к нему для администрирования (или, что ещё лучше, использовать другой бастион для этого), это гарантирует аудируемость во всех случаях
  • Каждый доступ и действие (как разрешённые, так и запрещённые) регистрируются с помощью:
    • syslog, который также следует отправлять на удалённый syslog-сервер, чтобы даже администраторы бастиона не могли подделать свои следы, и/или
    • локальных баз данных sqlite3 для удобного поиска
  • Каждая сессия записывается с помощью ttyrec, предоставляются вспомогательные скрипты для шифрования и передачи этих записей на удалённый депозитарий
  • Этот код используется в производстве в нескольких сертифицированных средах PCI-DSS, ISO 27001, SOC1 и SOC2

🔗 Связанные проекты

Зависимости

  • ovh-ttyrec — улучшенная, но совместимая версия ttyrec, терминального рекордера (tty)

Дополнительные инструменты

  • yubico-piv-checker — автономный бинарник на go для проверки валидности ключей и сертификатов PIV. Опционально, для включения функций, связанных с PIV, в The Bastion
  • puppet-thebastion (GitHub) — модуль Puppet для автоматизации и поддержки конфигурации машин The Bastion
  • the-bastion-ansible-wrapper — обёртка, позволяющая запускать плейбуки Ansible через The Bastion
  • debian-cis — скрипт для применения и мониторинга усиления защиты хостов Debian в соответствии с рекомендациями CIS

Инструменты сообщества

Неисчерпывающий список связанных инструментов, поддерживаемых сообществом:

  • chef-cookbook — рецепт Chef для установки the-bastion и настройки его конфигурации по умолчанию
  • ansible role — роль Ansible для установки и настройки the-bastion

📝 Лицензия

Лицензировано на условиях Apache License, Version 2.0 («Лицензия»); вы не можете использовать этот файл иначе как в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу

root@kitploit:~
http://www.apache.org/licenses/LICENSE-2.0

Если иное не предусмотрено применимым законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по Лицензии, предоставляется на условиях «КАК ЕСТЬ», БЕЗ ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых. См. Лицензию для ознакомления с конкретными разрешениями и ограничениями.

Скачать инструмент
  • Путь к помощникам и некоторые их неизменяемые параметры жёстко закодированы в конфигурации sudoers
  • Для всего кода, работающего под sudo, используется Perl-режим tainted (-T), предотвращающий любое влияние пользовательского ввода на логику путём немедленной остановки выполнения
  • Код, работающий под sudo, не доверяет вызвавшей стороне и повторно проверяет каждый ввод
  • Связь между непривилегированным и привилегированным кодом осуществляется с помощью JSON
  • Между входящей и исходящей сторонами выполняется разрыв протокола, что делает большинство уязвимостей на основе протоколов неэффективными