Подробное руководство: /etc/digsig/xattr_control в дистрибутивах семейства ALT Linux

Файл политик digsig для проверки цифровых подписей в xattr. Настраивает контроль целостности и безопасности файлов в Alt Linux.

2026.04.01                  


Подробное руководство: /etc/digsig/xattr_control в дистрибутивах семейства ALT LinuxПодробное руководство: /etc/digsig/xattr_control в дистрибутивах семейства ALT Linux Файл /etc/digsig/xattr_control является специфическим конфигурационным файлом, который встречается преимущественно в дистрибутивах семейства ALT Linux (и некоторых других системах с усиленной защитой целостности), использующих подсистему ядра Digital Signature (digsig) в связке с расширенными атрибутами файлов (Extended Attributes, xattr).

Этот файл управляет тем, как система обрабатывает цифровые подписи, хранящиеся в расширенных атрибутах файлов. Ниже представлен подробный гайд по его назначению, синтаксису и управлению.

Подробное руководство: /etc/digsig/xattr_control

1. Назначение и контекст

Что такое digsig?

digsig (Digital Signature) — это подсистема ядра Linux, предназначенная для проверки цифровых подписей файлов. Она часто используется вместе с:

  • IMA (Integrity Measurement Architecture): Измерение целостности.
  • EVM (Extended Verification Metadata): Проверка метаданных.
  • Keyrings: Ключи ядра для проверки подписей.

Роль файла /etc/digsig/xattr_control

Цифровые подписи файлов обычно хранятся в расширенных атрибутах (xattr). В Linux существует несколько пространств имен (namespaces) для xattr: user., security., trusted., system..

Файл xattr_control указывает подсистеме digsig:

  1. В каких пространствах имен искать подписи.
  2. Какое пространство имен является приоритетным.
  3. Как реагировать на наличие или отсутствие подписи в конкретных атрибутах (игнорировать, требовать, логировать).

Важно:

  • Неправильная настройка этого файла может привести к тому, что система перестанет запускать подписанные приложения, не сможет обновлять пакеты или нарушит политику безопасности (MAC).

2. Структура и синтаксис

Файл представляет собой текстовый конфигурационный файл. Обычно он обрабатывается демонами целостности или модулями ядра при загрузке политики.

Общие правила

  • Комментарии: Строки, начинающиеся с #, игнорируются.
  • Пустые строки: Игнорируются.
  • Директивы: Обычно имеют формат ключ = значение или пространство_имен действие.
  • Чувствительность: Регистр букв может иметь значение (обычно нижний регистр).

Типовые директивы

Хотя точный синтаксис может незначительно отличаться в зависимости от версии пакета digsig в вашем дистрибутиве, основная логика следующая:

# Примерный синтаксис
<namespace>.<attribute> <action> [flags]
  • namespace: security, user, trusted.
  • attribute: Имя атрибута (например, ima, digsig, signature).
  • action:
    • enforce — Требовать валидную подпись. Если нет или она неверна — доступ запрещен.
    • allow — Разрешить выполнение/доступ, если подпись валидна.
    • ignore — Не проверять подпись в этом атрибуте.
    • log — Только логировать событие проверки, не блокировать.

3. Примеры конфигурации

Пример 1: Стандартная безопасная конфигурация

Использование стандартного атрибута IMA в пространстве безопасности.

# /etc/digsig/xattr_control

# Основной атрибут целостности
security.ima enforce

# Игнорировать пользовательские атрибуты для безопасности
user.digsig ignore

Пример 2: Режим отладки (Logging)

Полезно для аудита перед включением строгого режима.

# /etc/digsig/xattr_control

# Логировать все проверки, но не блокировать
security.ima log
user.digsig log

Пример 3: Мультисигнатурная политика

Если система использует несколько типов подписей.

# /etc/digsig/xattr_control

# Приоритет для подписей пакетного менеджера
trusted.pkg_signature enforce

# Резервная проверка через IMA
security.ima allow

4. Управление и применение изменений

1. Резервное копирование

Перед любым редактированием создайте резервную копию:

sudo cp /etc/digsig/xattr_control /etc/digsig/xattr_control.bak

2. Редактирование

Используйте текстовый редактор с правами root:

sudo nano /etc/digsig/xattr_control

3. Применение настроек

В зависимости от реализации в вашем дистрибутиве, изменения могут примениться:

Автоматически:

  • При следующем обращении к файлу (если модуль ядра перечитывает конфиг динамически).

Перезапуск службы:

    sudo systemctl restart digsig-service  # Имя службы может отличаться

Перезагрузка:

Чаще всего политики целостности загружаются на раннем этапе boot (initramfs).

Требуется пересборка initramfs и перезагрузка:

    sudo update-initramfs -u
    sudo reboot

4. Проверка статуса

Используйте утилиты для проверки атрибутов и логов:

Просмотр атрибутов файла:

    getfattr -d /path/to/file

Проверка подписи (утилита digsigctl, если доступна):

    digsigctl verify /path/to/file

Просмотр логов ядра:

    dmesg | grep -i digsig
    dmesg | grep -i ima

Аудит (auditd):

    ausearch -m INTEGRITY_DIGSIG

5. troubleshooting (Диагностика проблем)

Проблема: Файлы не запускаются, ошибки "Permission denied"

Причина:

  • Включен режим enforce, но у файлов нет валидной подписи в указанном атрибуте.

Решение:

  1. Проверьте логи dmesg.
  2. Временно измените действие на log или ignore в /etc/digsig/xattr_control.
  3. Переподпишите файлы или обновите ключи в ключнице ядра (keyctl).

Проблема:

  • Изменения не применяются

Причина:

  • Конфиг зашит в initramfs.

Решение:

  • Необходимо добавить файл в образ initramfs. В ALT Linux это часто делается через механизмы mkinitrd или специфические скрипты пакета digsig.

Проблема:

  • Ошибка синтаксиса при загрузке

Причина:

  • Опечатка в файле.

Решение:

  • Загрузитесь в режиме восстановления (single user mode) и восстановите файл из бэкапа. Система может не загрузиться в обычном режиме при критической ошибке политики целостности.

6. Взаимодействие с другими подсистемами

SELinux / Smack:

  • digsig работает на уровне проверки подписи, а LSM (SELinux/Smack) — на уровне доступа. Они могут конфликтовать. Убедитесь, что политики LSM разрешают чтение атрибутов security., которые проверяет digsig.

Ключи ядра (Keyrings):

Для работы подписей ключи должны быть загружены в ключницу `.ima` или `_sys`.

Проверка ключей:

    keyctl show @u
    keyctl show @s

Файловые системы:

  • Файловая система должна поддерживать расширенные атрибуты (ext4, xfs, btrfs). Для mount-опций может потребоваться user_xattr.

7. Рекомендации по безопасности

  1. Принцип наименьших привилегий: Используйте enforce только для критических системных бинарников.
  2. Аудит перед внедрением: Начинайте с режима log, чтобы понять, какие файлы не подписаны, прежде чем блокировать их запуск.
  3. Управление ключами: Регулярно обновляйте ключи подписи и отзывайте скомпрометированные.
  4. Защита самого файла: Установите строгие права на /etc/digsig/xattr_control:
    sudo chmod 600 /etc/digsig/xattr_control
    sudo chown root:root /etc/digsig/xattr_control

В идеале этот файл также должен быть подписан и защищен от записи (immutable flag), если политика позволяет:

    sudo chattr +i /etc/digsig/xattr_control

8. Заключение

  • Файл /etc/digsig/xattr_control — это мощный инструмент управления доверием к файлам в системе. Он является критическим компонентом инфраструктуры безопасности ALT Linux и подобных систем.

Предупреждение:

  • Поскольку документация по этому файлу может быть специфичной для версии вашего дистрибутива, настоятельно рекомендуется перед внесением изменений в производственной среде проконсультироваться с официальной документацией вашего дистрибутива (например, вики ALT Linux) или протестировать изменения на изолированном стенде.