Подробный гайд: Secret Net Studio для Linux: поддержка ядер ОС и установка модулей защиты
1. Как определить текущее ядро ОС
Перед установкой или обновлением СНС всегда проверяйте активное ядро:
uname -r
uname -a
cat /etc/os-release | grep -E "NAME|VERSION"
Пример вывода:
6.1.0-28-amd64 на Debian-based или 5.15.0-91-generic на Ubuntu/Astra.
2. Где найти точный список поддерживаемых ядер
Secret Net Studio сертифицирован ФСТЭК России, поэтому поддержка ядер строго регламентирована и привязана к конкретной версии СНС и дистрибутиву ОС.
| Источник | Что содержит |
|---|---|
Таблица совместимости (официальный PDF/веб-страница на портале code.ru или в личном кабинете партнёра) |
Точные версии ОС + ядра, прошедшие валидацию для вашей сборки СНС (например, 9.0, 9.1, 9.2) |
README.DKMS или COMPATIBILITY.md в архиве дистрибутива СНС |
Локальная копия таблицы, поставляемая вместе с установочными файлами |
snsadm --check-kernel (если доступна в вашей версии) |
Быстрая проверка текущего ядра на совместимость |
Важно:
Версии ядер в открытых репозиториях (например, HWE-стеки Ubuntu, linux-lts в Astra) могут отставать или опережать валидированные списки.
Использование непроверенного ядра может привести к:
- отказу загрузки модулей СНС,
- потере контроля целостности/мандатного доступа,
- нарушению требований ФСТЭК при аттестации.
3. Подготовка ОС перед установкой модулей ядра
СНС использует DKMS (Dynamic Kernel Module Support) для автоматической сборки модулей под текущее ядро.
Для корректной работы необходимы:
Для Debian/Ubuntu/Astra Linux:
sudo apt update
sudo apt install -y dkms build-essential linux-headers-$(uname -r) kmod
Для RHEL/RED OS/CentOS/Alma:
sudo dnf install -y dkms kernel-devel-$(uname -r) kernel-headers-$(uname -r) gcc make kmod
Для ALT Linux:
sudo apt-get install dkms kernel-headers-$(uname -r) kernel-source-std-def kmod
Проверьте наличие заголовков:
ls -l /usr/src/linux-headers-$(uname -r) # Debian/Ubuntu
ls -l /usr/src/kernels/$(uname -r) # RHEL/RED
4. Установка и сборка модулей ядра
После установки пакета СНС (обычно secret-net-studio-core или аналогичный):
1. Автоматическая сборка через DKMS:
sudo dkms status
Если модуль не собран:
sudo dkms install -m secret_net -v <версия_модуля>
<версия_модуля> можно узнать из вывода dpkg -l | grep secret или rpm -qa | grep secret.
2. Проверка загрузки модулей:
lsmod | grep -E "sn_|secret"
dmesg | tail -n 20
Ожидаемый статус:
secret_net_core, secret_net_mac, secret_net_integrity и т.д. в выводе lsmod.
3. Включение сервисов СНС:
sudo systemctl enable --now sns-agent sns-monitor
sudo snsadm status
5. Проверка корректности работы
| Команда | Что проверяет |
|---|---|
snsadm kernel-check |
Соответствие ядра валидированному списку |
dkms status |
Состояние собранных модулей |
journalctl -u sns-agent --no-pager -n 50 |
Логи загрузки и политики |
cat /proc/modules | grep secret |
Наличие модулей в памяти ядра |
snsadm policy-test --dry-run |
Тестовое применение политик без перезагрузки |
6. Типичные проблемы и решения
| Симптом | Причина | Решение |
|---|---|---|
DKMS: make failed for module secret_net |
Отсутствуют заголовки или несоответствие версий GCC/clang | Установите linux-headers точно под uname -r, проверьте gcc --version |
Module secret_net_core: Invalid argument |
Ядро не в таблице совместимости | Обновите СНС до версии, поддерживающей ваше ядро, либо выполните downgrade ядра |
Secure Boot enabled, module not loaded |
Подпись модуля отсутствует или не соответствует MOK | Добавьте ключ в MOK: sudo mokutil --import /opt/secret_net/certs/sns_sign.der или отключите Secure Boot (только для тестовых сред) |
snsadm показывает ядро как unsupported |
Используется HWE/предпросмотрное ядро | Переключитесь на LTS-ядро: sudo apt install linux-image-generic (Ubuntu) или выберите профиль ядра в загрузчике |
Важные ограничения и рекомендации
- ФСТЭК и аттестация: Использование непроверенных ядер снимает действие сертификата соответствия. Для рабочих контуров применяйте только ядра из официальной таблицы совместимости.
- Обновления ОС: При плановом обновлении дистрибутива (
apt upgrade,dnf update) ядро может смениться. Всегда проверяйтеuname -rпосле перезагрузки и при необходимости запускайтеsudo dkms autoinstall. - Livepatch/Ksplice: Динамическое обновление ядра без перезагрузки не поддерживается СНС. Требуется полная перезагрузка после обновления ядра.
- Контейнеры и ядра: СНС контролирует хост-ядро. Контейнеры (Docker, LXC) работают поверх него, но изоляция контейнеров не заменяет мандатный контроль хоста.
Рекомендация:
Перед развёртыванием в production выполните стендовое тестирование на точной копии целевой ОС, включая имитацию обновления ядра и отката. Сохраните выводы uname -a, dkms status, snsadm status и journalctl в архив для аудита.