Перейти к содержанию

Диагностика ГОСТ-дисков и LUKS2 в НАЙС.ОС

Быстрая проверка встроенного шифрования

uname -r
KVER=$(uname -r)
grep '^CONFIG_CRYPTO_NICEOS_GOST_KUZNYECHIK=y' "/boot/config-$KVER"
cryptsetup --version
lsblk -o NAME,SIZE,TYPE,FSTYPE,UUID,MOUNTPOINTS

ГОСТ встроен в пакет ядра НАЙС.ОС. Проверяйте конфигурацию CONFIG_*=y, реестр /proc/crypto, доступность xts(kuznyechik) и реальную работу зашифрованного тома. Сведения о внешних модулях не показывают состояние встроенной криптографии.

Проверка шифра XTS

python3 - <<'PY'
import socket
with socket.socket(socket.AF_ALG,socket.SOCK_SEQPACKET) as sock:
    sock.bind(('skcipher','xts(kuznyechik)'))
print('XTS Кузнечик: доступен')
PY

Для реального испытания шифрования используйте AF_ALG-практикум. Проверка bind показывает доступность режима, но не заменяет шифрование и обратное восстановление данных.

Исследование существующего LUKS2

cryptsetup isLuks /ПУТЬ/К/LUKS && echo 'LUKS найден'
cryptsetup luksDump /ПУТЬ/К/LUKS
cryptsetup status ИМЯ_ОТКРЫТОГО_ТОМА

Для зашифрованного содержимого ищите строку cipher: kuznyechik-xts-plain64. Строки Keyslots: Cipher: aes-xts-plain64, PBKDF: argon2id, Hash: sha256 относятся к защите ключа и служебным операциям LUKS2, а не к шифру файловой системы.

Типовые проблемы

Ошибка Причина Исправление
Device does not exist не указан правильный путь к устройству проверить lsblk, losetup -j и /dev/disk/by-uuid
No key available with this passphrase неверный пароль/раскладка или не тот контейнер перепроверить пароль и UUID, не форматировать
Cipher ... not available не та версия ядра или шаблон отсутствует проверить CONFIG_CRYPTO_*, AF_ALG, журнал
Не монтируется ext4 том закрыт или устройство не отформатировано сначала cryptsetup open, затем проверять ФС
Система не открывает корень нарушено раннее окружение проверить lsinitrd, драйвер диска, LUKS и GRUB2
В /proc/crypto нет kuznyechik запущено другое ядро либо ошибка регистрации сверить uname -r, конфигурацию и журнал ядра

Проверка dracut

KVER=$(uname -r)
lsinitrd -m "/boot/initramfs-$KVER.img"
lsinitrd "/boot/initramfs-$KVER.img" |   grep -E 'systemd-cryptsetup|libcryptsetup|dracut-crypt-lib|dm_crypt' | head -40

Алгоритмы ГОСТ не требуют отдельной загрузки. Если dm_crypt собран модулем, он должен быть включён в раннее окружение с зависимостями; то же относится к драйверам накопителя и файловой системы, когда они не встроены.

Как передавать журналы для диагностики

Укажите uname -r, сведения о запущенном ядре, содержимое конфигурации, cryptsetup --version, cryptsetup status, фрагмент luksDump, lsinitrd -m и сообщение ошибки. Не передавайте пароль, содержимое секретных ключей и образ диска с рабочими данными.