Перейти к содержимому

Установка

Продукт поставляется одним статическим бинарём: ни рантайма, ни библиотек, ни доступа в интернет при установке не требуется. Это же позволяет ставить его в закрытый контур копированием файла.

Окно терминала
# Astra Linux, ALT
dpkg -i sspr_<версия>_amd64.deb
# РЕД ОС
rpm -i sspr-<версия>.x86_64.rpm

Пакет заводит служебную учётную запись sspr (без домашнего каталога и без оболочки), создаёт /etc/sspr, /var/lib/sspr (включая пустой license.key с владельцем службы), /var/log/sspr и кладёт unit-файл. Служба не включается автоматически: до заполнения конфигурации запускать нечего, а неудачный старт в журнале выглядит как поломка установки.

Заполните /etc/sspr/config.yaml в любом текстовом редакторе (например, nano или vi), затем включите службу:

Окно терминала
systemctl enable --now sspr
systemctl status sspr

Обновление пакета не затирает /etc/sspr/config.yaml — он помечен как файл настроек.

Для узлов, где пакетный менеджер не используется:

Окно терминала
tar -xzf sspr-<версия>-linux-amd64.tar.gz
cd sspr-<версия>
sudo ./install.sh

Скрипт делает то же самое и учитывает переменные PREFIX, CONF_DIR, DATA_DIR, LOG_DIR, SERVICE_USER, если раскладка отличается от принятой.

КомпонентЗачемОбязателен
Терминатор TLS перед порталомпродукт собственной криптографии не реализуетда
LDAPS до контроллера доменадомен не меняет пароль по незащищённому каналуда
Служебная учётная запись в каталогетолько для восстановления забытого пароля и разблокировкинет
СМС-шлюзвторой фактор для тех, у кого нет приложениянет
Система сбора событийкопия журнала аудитанет

Портал слушает непривилегированный порт, права на :443 ему не выдаются: TLS в любом случае терминируется впереди стоящим сервером.

Минимальная конфигурация без привилегий в каталоге

Заголовок раздела «Минимальная конфигурация без привилегий в каталоге»

Разворачивание внутри периметра, где нужна только смена известного пароля. В этом режиме продукт физически не может сменить пароль постороннему — служебной учётной записи с правом сброса у него нет:

tenants:
- id: corp
allow_reset: false # ветка «забыл пароль» отключена
factor_on_change: true
directory:
type: ad
ad:
url: "ldaps://dc1.corp.example.ru:636"
base_dn: "DC=corp,DC=example,DC=ru"
upn_suffix: "corp.example.ru"
bind_dn: "" # привилегированная учётная запись не нужна
Окно терминала
sspr -version
systemctl status sspr
curl -s http://127.0.0.1:9090/metrics | head -3 # метрики на отдельном адресе
sspr totp list # кто подключил приложение (чтение, при работающей службе)

Журнал эксплуатации идёт в journald (journalctl -u sspr), журнал аудита — в /var/log/sspr/audit.jsonl со сцеплением записей хэшами.

Журнал аудита ротирует сам продукт (audit.rotate_mb, по умолчанию 64 МиБ; закрытые файлы — audit-<время>-<номер>.jsonl рядом). Не добавляйте его в logrotate: внешняя ротация не знает про цепочку хэшей и рвёт её. Сколько закрытых файлов хранить, задаёт audit.keep_files (по умолчанию все); удаление по этой политике тоже записывается в цепочку. Регламентная проверка целостности по всем файлам:

Окно терминала
sspr audit verify # код 0 — цела; 2 — нарушение или изъятые файлы

Unit-файл запускает службу с урезанными правами: ProtectSystem=strict, запись разрешена только в /var/log/sspr и /var/lib/sspr, системные вызовы ограничены профилем @system-service, повышение привилегий запрещено. Если в вашей инсталляции каталоги другие, поправьте ReadWritePaths — иначе служба не сможет писать журнал.

Продукт собран без внешних зависимостей, поэтому один и тот же файл работает на Astra Linux, РЕД ОС и ALT.