Skip to content

Latest commit

 

History

History
51 lines (37 loc) · 3.5 KB

README.for_devs.md

File metadata and controls

51 lines (37 loc) · 3.5 KB

README для разработчиков

1. Чекеры и hostname

Чекеры в hostname должны уметь принимать как просто hostname без порта (например "127.0.0.1"), так и с указанием порта (например "10.118.0.20:2102"). Если порт не указан - использовать дефолтный для сервиса.

checker.py должен быть исполняемым (chmod +x checker.py).

Шебанг (первая строка в файле):

#!/usr/bin/env python3.9

Important: нужно указать именно 3.9, ибо там несколько python'ов на тачке с чексистемом... исправим когда-нибудь.

Important: чекер должен уметь запускаться из произвольной директории. НЕ ИСПОЛЬЗУЙТЕ ОТНОСИТЕЛЬНЫЕ ПУТИ https://stackoverflow.com/questions/3430372/how-do-i-get-the-full-path-of-the-current-files-directory вам в помощь.

2. Docker-compose

  • Использовать version не более 3.7
  • Если нужны ограничения по ресурсам - использовать version: 2.x
  • под каждый сервис даётся по целой виртуалке, так что можно не ограничивать ресурсы особо

3. Модель деплоя сервисов

Сервис копируется на отдельную виртуалку в /home/ctfcup. Делается systemd сервис, одноименный с названием сервиса (но в нижнем регистре). Он просто делает docker-compose up в папочке с сервисом.

4. Доступ к чексистем и виртуалкам команд в процессе тестирования

  • В папочке /teams этого репозитория лежат все пароли и явки
  • /teams/for_dev.ssh_key - ключ доступа ко всем виртуалкам. Пользователь - ctfcup (на командах) либо ubuntu (на серверах)
  • sudo openvpn ./teams/for_devs.ovpn - подключится через OpenVPN к сети игры как разработчик (будет сетевой доступ до всего).
  • 10.118.0.10 - чексистема
  • пароль от неё подсмотреть можно в ./ansible/cs, поле cs_admin_auth.
  • текущий пользователь/пароль: root:YswhZ2vWH7aJZl3r

5. Сеть и доступы

Сеть описана в ./teams/TEAM_README, там можно подсмотреть ip виртуалок

6. CI

См. сюда про свой сервис: https://github.com/HackerDom/ctfcup-2021-AD/actions Запускается при пуше в мастер.

2 этапа:

  • первоначальная проверка
  • деплой на стенд (только если первая часть зелёная)

Если красное - всё плохо, смотрите логи. Если непонятно что пошло не так - приходите к админам) Если первая часть зелёная, а всёравно ничего не работает - попробуйте зайти на виртуалку с сервисом у какой-нибудь команды и разобраться что не так.