SiBears Hub#

Что нужно установить#

  • uv
  • ansible
  • sshpass
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install --with-executables-from ansible-core,ansible-lint ansible
sudo apt install sshpass

Настройка#

Перед запуском нужно подготовить репозиторий и inventory:

  1. Склонировать проект вместе с сабмодулями
git clone git@gitlab.com:sibears/infrastructure/sibears-hub.git --recurse-submodules
  1. Заполнить inventory/vulnbox.ini
  2. Заполнить все файлы в inventory/group_vars/all/
  3. Подготовить Telegram-чат для уведомлений и выгрузки сервисов

vulnbox.ini#

В inventory/vulnbox.ini указать IP-адрес и пароль

Что проверить в конфиге#

Основные секции в главном конфиге:

  • team: логин и пароль для инфраструктуры

  • farm: параметры фермы, которые берутся из игрового протокола

  • pkappa2: после подключения к VPN игры нужно определить, какой интерфейс и какой IP появились на локальной машине

  • pkappa2_pcap_ssh_key_path: путь до вашего приватного SSH-ключа. Он нужен, чтобы pcap-брокер подключался от вашего имени и забирал трафик из вулна

  • telegram: ID чата и данные бота для интеграции

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

  • services: путь до каталога с сервисами, который нужно посмотреть сначала ручками

SSH-ключи#

Поддерживает два сценария:

  • если ключи участников уже опубликованы на GitHub или GitLab, достаточно указать username;
  • если нет, ключи можно перечислить вручную в ssh_keys_inline_keys

Список команд#

Сейчас список заполняется вручную: поддержки генерации или циклов для этого сценария пока нет

Телеграм#

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

Если используется супергруппа с темами, укажите thread_id. Если темы не нужны, это поле можно не заполнять

Базовый порядок запуска#

Ниже минимальный сценарий, который соответствует текущему README.md проекта:

# Можно сделать до начала игры:
ansible-playbook -i inventory/local.ini playbooks/new_deploy_pkappa2_local.yml -K --skip-tags pkappa2_api
# Также можно запустить ферму с невалидным токеном, чтобы потом не ждать компиляцию и сборку докера

# После старта игры:
ansible-playbook -i inventory/vulnbox.ini playbooks/new_export_services.yml
ansible-playbook -i inventory/vulnbox.ini playbooks/new_prepare_services_git.yml
ansible-playbook -i inventory/vulnbox.ini playbooks/new_deploy_ssh.yml
ansible-playbook -i inventory/local.ini playbooks/new_deploy_pkappa2_local.yml -K --tags pkappa2_api
ansible-playbook -i inventory/local.ini playbooks/new_deploy_destructive_local.yml -K
ansible-playbook -i inventory/local.ini playbooks/new_deploy_farm_local.yml -K