baseline-base
Каталог / baseline-base
Compiled local operating system baseline evaluation for ohtools.
Установка
sudo ohtools plugin install baseline-base
Назначение и поддерживаемые сценарии
baseline-base оценивает встроенный read-only baseline операционной системы.
Он проверяет платформу, time sync, безопасность account files, два kernel
control, OpenSSH posture, dpkg records и обязательные local services.
Оператор может включать и отключать только известные compiled checks и менять один package threshold. Версия 1 не принимает scripts, commands, paths, inline policy, organization profiles или remote targets.
Быстрый старт
Показать effective profile и checks:
ohtools baseline profile
Выполнить выбранные проверки:
ohtools baseline check
Минимальный strict config с отключением одной проверки:
profile: default
enabled_checks: []
disabled_checks:
- ssh-posture
max_pending_package_records: 0
Команды
baseline profile
Загружает и проверяет system configuration, определяет локальную платформу и
возвращает compiled profile, ordered check IDs, platform ID/version и
max_pending_package_records. Сами probes не выполняются.
baseline check
Выполняет checks в стабильном порядке:
supported-osподтверждает поддерживаемый Debian или Ubuntu.time-syncзапускаетtimedatectl show --property=NTPSynchronized --valueи ожидаетyes.filesystem-ownershipтребует regular/etc/passwdи/etc/shadowбез group/world write и с root owner при live Linux root.kernel-controlsожидаетkernel.randomize_va_space=2иnet.ipv4.conf.all.rp_filter=1через procfs.ssh-postureвыполняет fixed effective query и ожидает root loginnoилиprohibit-password, а password authentication —no.package-stateсравнивает число не полностью установленных dpkg records с configured maximum.required-servicesзапускаетsystemctl is-active -- sshи затемcron.
Mismatch даёт warning, небезопасные account-file metadata — critical. Unavailable optional probes дают skipped checks и structured errors.
Как это работает
Порядок детерминирован:
- Strict system YAML накладывается на compiled defaults.
- Проверяются profile ID, known check IDs, duplicates, exclusions и range.
- Платформа определяется из local root; unsupported release отклоняется.
- Непустой
enabled_checksслужит allowlist, иначе candidates — все checks. Затем вычитаетсяdisabled_checks. - Не менее одного check выполняется в fixed order.
- Только cancellation/timeout немедленно останавливают работу; обычная потеря probe выражается skipped и structured error.
- Result v1 получает profile, platform и stable check IDs.
Stdout/stderr каждого command probe ограничен 64 KiB, dpkg status — 32 MiB.
Доступ к данным
В зависимости от selections плагин читает:
/etc/os-release;- metadata
/etc/passwdи/etc/shadow; /proc/sys/kernel/randomize_va_space;/proc/sys/net/ipv4/conf/all/rp_filter;/var/lib/dpkg/status;/etc/ohtools/plugins/baseline-base.yaml.
Он может запускать trusted timedatectl, sshd и systemctl с fixed argv.
Shell, mutations и network не используются.
Результаты и коды завершения
Используется Result schema v1. Compliant checks проходят, deviation даёт warning, unsafe account files — critical, недоступный probe — skipped и structured error. Смесь usable и unavailable checks обычно даёт partial.
Configuration errors дают exit 10. Missing/unsupported platform — exit 4. Invalid invocation — exit 2. Cancellation/timeout пробрасываются. Missing probe executable остаётся внутри usable Result, не отменяя остальные checks.
Конфигурация
Фиксированный путь:
/etc/ohtools/plugins/baseline-base.yaml
Defaults:
profile: default
enabled_checks: []
disabled_checks: []
max_pending_package_records: 0
profile обязан быть default. Arrays содержат только семь перечисленных
check IDs без duplicates. Пустой enabled_checks включает все candidates,
disabled_checks всегда вычитает. Должен остаться хотя бы один check.
max_pending_package_records принимает 0..100000. YAML strict: unknown keys,
duplicates, multiple documents, wrong types, symlink, unsafe owner/mode и файл
больше 1 MiB дают exit 10.
Что можно изменить
Оператор выбирает subset checks и допустимое число incomplete dpkg records, а также исправляет локальное состояние и повторяет read-only evaluation.
Новый check, expected kernel values, platforms, services или SSH policy требуют изменения source и нового immutable release.
Зафиксированное поведение
Единственный profile — default. Реализация и order checks, paths,
executables, kernel values, ssh/cron и SSH expectations встроены. YAML не
может добавить path, command, expected value, script, include, remote endpoint
или arbitrary check.
baseline check только сообщает deviation и не применяет remediation.
Безопасность
Обе команды diagnostic, без root, confirmation, force и dry-run. YAML читается только из trusted fixed path. Local reads отклоняют traversal/symlink; account files отдельно проверяются на ownership и permissions.
Executables разрешаются до trusted absolute paths и запускаются напрямую с fixed argv и bounded output. Никакое содержимое YAML/profile не исполняется.
Диагностика проблем
- Exit 10 означает ошибку strict YAML или file trust; проверьте keys, IDs, duplicates, range, owner и mode.
- Если checks не осталось, устраните конфликт enable/disable.
- Exit 4 до checks обычно означает missing
/etc/os-releaseили unsupported OS. - Skipped time/SSH/service check указывает dependency в structured error.
- Critical filesystem check требует проверить owner, regular type, symlink и group/world write bits.
- Package warning сравнивает dpkg records, а не available upgrades.
Ограничения и TODO
Версия 1 local-only и compiled. Organization-authored/signed profiles, custom checks, remediation, fleet evaluation, remote commands/endpoints и credentials остаются TODO. Нужны signed schema, provenance, path allowlists, migration, authenticated inventory и bounded fan-out.
Совместимость и исходный код
Страница описывает baseline-base 1.0.0 и plugin protocol v1. Signed catalog
остаётся источником host compatibility и release metadata.
Реализация: internal/baseline.
Команды manifest
| Путь | Категория | Поведение | Безопасность |
|---|---|---|---|
baseline check | diagnostic | Evaluate the compiled local baseline | read-only |
baseline profile | diagnostic | Show the effective compiled baseline profile | read-only |
История версий
| Версия | Опубликована | Минимальный host | Артефакт |
|---|---|---|---|
| v1.0.0 | 28 июл. 2026 г. | v0.3.2 | 3.12 MiB22b723992970… |