Подробное руководство: /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:
- В каких пространствах имен искать подписи.
- Какое пространство имен является приоритетным.
- Как реагировать на наличие или отсутствие подписи в конкретных атрибутах (игнорировать, требовать, логировать).
Важно:
- Неправильная настройка этого файла может привести к тому, что система перестанет запускать подписанные приложения, не сможет обновлять пакеты или нарушит политику безопасности (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, но у файлов нет валидной подписи в указанном атрибуте.
Решение:
- Проверьте логи
dmesg. - Временно измените действие на
logилиignoreв/etc/digsig/xattr_control. - Переподпишите файлы или обновите ключи в ключнице ядра (
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. Рекомендации по безопасности
- Принцип наименьших привилегий: Используйте
enforceтолько для критических системных бинарников. - Аудит перед внедрением: Начинайте с режима
log, чтобы понять, какие файлы не подписаны, прежде чем блокировать их запуск. - Управление ключами: Регулярно обновляйте ключи подписи и отзывайте скомпрометированные.
- Защита самого файла: Установите строгие права на
/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) или протестировать изменения на изолированном стенде.