ctf-ad-mirror-tool-rust/deploy/QUICKSTART.md

4.4 KiB
Raw Blame History

Mirror Tool — Linux x64

tar -xzf mirror-tool-linux-x64.tar.gz
cd mirror-tool-linux-x64
./run.sh

Панель: http://127.0.0.1:6700. В другом терминале из этой папки:

cat data/panel-password

Пароль генерируется случайно при первом запуске и сохраняется с правами0600. Можно передать собственный пароль через MIRROR_PASSWORD (не менее12 символов). Пароль не выводится в логи. Запускать от root не требуется для портов выше1023.

Для удалённого сервера откройте туннель со своего компьютера:

ssh -N -L 6700:127.0.0.1:6700 user@server

Затем откройте http://127.0.0.1:6700 на своём компьютере. Панель по умолчанию доступна только локально; не публикуйте её HTTP-порт в игровой сети.

Первый запуск создаёт пустой mirror.toml. Добавьте команды и прокси в панели; нажмите название сервиса для настройки слушателя и upstream-порта. Выберите primary, реплики и включите сервис. Порты должны быть свободны. Подмена флагов выключена; системные маршруты/firewall не изменяются. Игровые адреса не угадываются.

mirror.example.toml содержит полный пример. Для ForcAD добавьте [scoreboard] в mirror.toml и перезапустите процесс. Подробности в docs/configuration.md. ./run.sh check проверяет конфиг, но не сетевую доступность или ключ кеша.

Остановка: Ctrl+C или SIGTERM. Для постоянной работы используйте tmux либо приложенный шаблон systemd (требует установки бинарника, пользователя и конфигов, как описано в исходном README проекта). С закрытием SSH foreground-процесс может завершиться. run.sh сам автозапуск и системную службу не устанавливает.

Сохраняйте mirror.toml и каталог data при обновлении. Архив их не содержит: распаковка обновления не заменяет рабочие настройки/пароль/состояние. Остановите процесс перед обновлением. Настройки команд/сервисов из data/state.json имеют приоритет над TOML. Резервную копию делайте при остановленном процессе.

Бинарник статический (musl), базовая архитектура x86-64, без требования AVX. Не нужны glibc, Rust, Python, Node, Docker или отдельная SQLite. Для run.sh нужны обычные /bin/sh, uname, dirname, mkdir, od, tr, cat и /dev/urandom. Для распаковки нужен tar с gzip. Linux kernel3.2+ — базовый минимум target Rust; конкретная старая система не считается проверенной только по номеру ядра. Ограничения контейнера, seccomp, права, доступная память, файловые дескрипторы и сеть всё равно действуют.

Проверка архива: sha256sum -c SHA256SUMS до распаковки. BUILD-COMMIT указывает исходный коммит. Репозиторий и Releases приватные: скачивание требует доступа к GitHub. С GitHub CLI: gh release download --repo mrvasil/ctf-ad-mirror-tool-rust --pattern 'mirror-tool-linux-x64.tar.gz' --pattern SHA256SUMS (одной строкой).

Перед игрой проверьте checker и переключение на своих сервисах: зеркалирование TCP-запросов не является репликацией БД. Подробнее: docs/flag-protection.md.