Подробный гайд: Мандатный контроль доступа (МКД) к ISO9660 в Astra Linux
Важное техническое ограничение
Файловая система ISO9660 (используется для CD/DVD и образов .iso) не поддерживает расширенные атрибуты (xattr), в которых Astra Linux хранит мандатные метки. Поэтому назначить индивидуальные метки конфиденциальности/целостности файлам внутри ISO9660 невозможно. Управление доступом реализуется на уровне точки монтирования и политик процессов. Для сертифицированной работы с мандатным контролем рекомендуется извлекать данные в файловые системы с поддержкой xattr (ext4, xfs, btrfs).
Ниже приведён рабочий сценарий для Astra Linux Special Edition (SE) 1.7/1.8 с включённым МКД.
Требования
- Astra Linux SE (в Common Edition МКД ограничен или отсутствует)
- Права
rootили пользователя с рольюadmin/security - Включённый режим мандатного контроля (
pdpактивен) - Установлены пакеты:
astra-mac,acl,attr
Шаг 1: Проверка состояния МКД
sudo pdpctl status
Ожидаемый вывод: Мандатный контроль доступа: включён
Если выключен:
sudo pdpctl enable
sudo reboot
Проверка текущих меток:
ls -Z /
Метка имеет формат уровень:категории (например, 0:0, 1:1,2).
Шаг 2: Безопасное монтирование ISO9660
sudo mkdir -p /mnt/iso_protected
sudo mount -t iso9660 -o loop,ro,noexec,nosuid,nodev /path/to/image.iso /mnt/iso_protected
Для физического носителя:
sudo mount -o ro,noexec,nosuid,nodev /dev/cdrom /mnt/iso_protected
Параметры
noexec,nosuid,nodevобязательны в мандатной среде для исключения повышения привилегий.
Шаг 3: Назначение мандатной метки точке монтирования
Поскольку ISO9660 не хранит xattr, метка применяется к каталогу точки монтирования. Ядро будет проверять её при доступе.
# Пример: метка "0:0" (общедоступный уровень, без категорий)
sudo chcat --level=0:0 /mnt/iso_protected
# Для конфиденциального уровня (пример: 2, категории 1 и 3)
sudo chcat --level=2:1,3 /mnt/iso_protected
Проверка:
ls -Zd /mnt/iso_protected
Файлы внутри /mnt/iso_protected/ не будут показывать метки через ls -Z, но ядро будет применять политику на основе метки каталога и уровня процесса.
Шаг 4: Настройка правил доступа (политики МКД)
Используйте macctl для явного разрешения/запрета доступа по меткам:
# Разрешить чтение процессам с уровнем ≥ метки точки монтирования
sudo macctl add_rule -d /mnt/iso_protected -r read -l 0:0 -m allow
# Запретить запись (для ISO9660 избыточно, но полезно для аудита)
sudo macctl add_rule -d /mnt/iso_protected -r write -l 0:0 -m deny
Применить политики:
sudo macctl apply
sudo pdpctl reload
Формат правил зависит от версии Astra Linux. В SE 1.8 используется синтаксис
macctl rule add .... Подробности:man macctl.
Шаг 5: Проверка и тестирование
1. Запустите процесс с конкретным мандатным уровнем:
sudo pdpctl run --level=0:0 cat /mnt/iso_protected/file.txt
2. Попробуйте доступ от процесса с несовместимым уровнем:
sudo pdpctl run --level=3:5 cat /mnt/iso_protected/file.txt
Ожидается: Permission denied (в журнале: audit: MAC access denied)
3. Проверка журнала:
sudo journalctl -u pdp -f
# или
sudo ausearch -m MAC_POLICY_DECISION
Альтернативный (рекомендуемый) метод: извлечение в MAC-совместимую ФС
Если требуется пофайловый мандатный контроль, используйте следующий подход:
# 1. Создайте раздел/каталог на ext4/xfs
sudo mkdir -p /srv/mac_data
sudo mount -t ext4 /dev/sdXN /srv/mac_data
# 2. Распакуйте ISO
sudo bsdtar -xf /path/to/image.iso -C /srv/mac_data/
# 3. Рекурсивно назначьте метки
sudo chcat -R --level=2:1 /srv/mac_data/*
# 4. Проверьте
ls -Z /srv/mac_data/
Теперь каждый файл будет хранить метку в xattr, и МКД будет работать штатно.
Важные замечания
| Параметр | Статус |
|---|---|
| Сохранение меток на ISO9660 | Невозможно (нет xattr) |
| Метка точки монтирования | Работает на уровне VFS |
| Персистентность после ребута | Требует fstab + macctl или systemd-сервиса |
| Совместимость с сертификацией | Только при использовании Astra Linux SE |
| Аудит доступа | Включается через auditd + pdp |
Для автоматического восстановления метки точки монтирования добавьте в /etc/fstab:
/path/to/image.iso /mnt/iso_protected iso9660 loop,ro,noexec,nosuid,nodev 0 0
И создайте systemd-сервис или правило udev/macctl, восстанавливающее метку после монтирования.
Источники и документация
man pdpctl,man macctl,man chcat- «Руководство администратора безопасности Astra Linux Special Edition» (раздел «Мандатный контроль доступа»)
- ФСТЭК России: «Требования по безопасности к ОС» (приказ №17)
- Официальный портал Astra Linux:
docs.astralinux.ru
Рекомендация:
В сертифицированных средах избегайте прямого использования ISO9660 для данных, требующих мандатного контроля. Используйте образы только как источник для распаковки в ext4/xfs с последующим назначением меток chcat -R. Это гарантирует соответствие требованиям ФСТЭК и стабильную работу pdp.