Гайд: Настройка KVM в Astra Linux 1.8: решение проблем с виртуализацией, МКД и сетью для CE/SE

Гайд по настройке KVM в Astra Linux 1.8. Разбор проблем с виртуализацией, МКД, сетью и правами доступа для CE и SE редакций.

2026.04.28                  


Гайд: Настройка KVM в Astra Linux 1.8: решение проблем с виртуализацией, МКД и сетью для CE/SEГайд: Настройка KVM в Astra Linux 1.8: решение проблем с виртуализацией, МКД и сетью для CE/SE Подробный гайд по типичным проблемам при настройке KVM в Astra Linux 1.8, разделённый на логические этапы. Особое внимание уделено особенностям редакций Common Edition (CE) и Special Edition (SE), так как в SE по умолчанию активна мандатная система безопасности (МКД/Parsec), которая является основной причиной сбоев.


0. Предварительная диагностика

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

virt-host-validate

Эта утилита покажет аппаратные, ядренные и конфигурационные проблемы хоста. Обратите внимание на строки [FAIL] и [WARN].


1. Аппаратные и BIOS/UEFI ограничения

Симптом Причина Решение
KVM: vmx is disabled / AMD-V not available Виртуализация отключена в BIOS/UEFI Зайдите в BIOS, включите Intel VT-x или AMD-V (SVM). В некоторых платах называется Virtualization Technology.
Secure Boot блокирует загрузку модулей UEFI проверяет сигнатуры драйверов Отключите Secure Boot или добавьте MOK-ключи (в Astra это редко требуется для штатных модулей, но актуально для сторонних ядер).
Проблемы с PCI-passthrough IOMMU/VT-d не активны В GRUB добавьте intel_iommu=on iommu=pt (или amd_iommu=on), обновите sudo update-grub, перезагрузитесь.

2. Ядро и модули KVM

Симптом Причина Решение
modprobe: FATAL: Module kvm not found Ядро собрано без поддержки KVM Проверьте: zgrep KVM /boot/config-$(uname -r). Должны быть CONFIG_KVM=y и CONFIG_KVM_INTEL/AMD=y. В официальных сборках Astra 1.8 KVM включён.
Модули не грузятся автоматически Отсутствуют в /etc/modules или заблокированы Добавьте в /etc/modules: kvm и kvm_intel (или kvm_amd). Выполните sudo update-initramfs -u.
dmesg показывает disabled by BIOS См. пункт 1 Включить виртуализацию в прошивке.

3. Репозитории и пакеты

Astra Linux 1.8 использует собственные репозитории. Штатные пакеты могут отличаться от Debian.

Симптом Причина Решение
E: Unable to locate package qemu-kvm Не подключён репозиторий или устаревшие индексы Выполните: sudo apt update. Убедитесь, что в /etc/apt/sources.list.d/astra-repo.list указаны корректные зеркала. Для CE/SE репозитории разные.
Конфликты зависимостей Смешивание сторонних PPA или Debian-репо Удалите сторонние источники. Используйте только официальные зеркала Astra. sudo apt -f install.
Нет пакета virt-manager В Server-редакции графические утилиты не предустановлены Установите вручную: sudo apt install virt-manager. Для работы без GUI используйте virsh и virt-install.

Минимальный набор пакетов:

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst ovmf

4. Система безопасности МКД (Parsec) – КРИТИЧНО для SE

В Astra Linux SE по умолчанию включён мандатный контроль доступа. Без корректной настройки libvirt/qemu не получат доступ к образам, сети и устройствам.

Симптом Причина Решение
Permission denied при запуске ВМ, хотя права 777 Конфликт мандатных уровней/категорий Проверьте метки: pdp -l /путь/к/образу.iso. Убедитесь, что процессы libvirtd и qemu работают в том же уровне/категориях.
virsh create падает с internal error МКД блокирует создание сокетов/TTY Временно отключите МКД для диагностики: sudo pdp -s 0. Не рекомендуется для prod. Для продакшена настройте единый контекст через fly-mac или CLI.
libvirt не видит сетевые мосты МКД ограничивает NET_ADMIN Добавьте мандатную категорию net_admin к сервису: sudo chpdp -m <уровень>:net_admin /usr/sbin/libvirtd (синтаксис зависит от версии Astra).

Рекомендуемый подход для SE:

  1. Все ресурсы ВМ (ISO, диски, конфиги) должны находиться в одной мандатной зоне.
  2. Создайте каталог для ВМ: sudo mkdir -p /var/lib/libvirt/images
  3. Назначьте метки: sudo chpdp -m 0:0 /var/lib/libvirt/images (пример, уровни настраиваются администратором безопасности).
4. В /etc/libvirt/qemu.conf укажите:
   security_driver = "none"  # Только если разрешено политикой ИБ
   # В Astra SE libvirt не имеет нативного драйвера Parsec, управление контекстами ручное

5. Сетевая конфигурация

Симптом Причина Решение
ВМ не получает IP / нет доступа в сеть Конфликт virbr0 с существующим мостом или firewall Отключите нативную сеть libvirt: sudo virsh net-destroy default, sudo virsh net-autostart default --disable. Настройте host-bridge.
brctl not found Утилита устарела, используется ip Используйте ip link add br0 type bridge, ip link set dev eth0 master br0. В Astra 1.8 предпочтительно редактировать /etc/network/interfaces или использовать nmcli.
iptables/nftables блокирует трафик ВМ libvirt добавляет правила, конфликтующие с политикой Astra Проверьте: sudo nft list ruleset. При необходимости добавьте правила разрешающие FORWARD для virbr0/br0.

Пример host-bridge в /etc/network/interfaces:

auto br0
iface br0 inet static
    address 192.168.1.10/24
    gateway 192.168.1.1
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0

6. Права доступа, контексты и хранилище

Симптом Причина Решение
could not open disk image: Permission denied QEMU запускается от libvirt-qemu:kvm, но файл принадлежит root sudo chown -R libvirt-qemu:kvm /var/lib/libvirt/images/
sudo chmod 660 /path/to/disk.qcow2
Ошибка монтирования ISO МКД или apparmor-профили (в CE может быть) В CE: sudo aa-complain /usr/sbin/libvirtd или отключите профиль. В SE: проверьте pdp -l.
Медленная работа дисков Использование raw без кэша или медленный хост Используйте qcow2 с cache=writeback или cache=none. Проверьте dmesg | grep -i kvm на ошибки IOMMU.

7. Настройка libvirt и QEMU

Файл Параметр Примечание
/etc/libvirt/libvirtd.conf unix_sock_group = "libvirt"
unix_sock_rw_perms = "0770"
Позволяет управлять ВМ без sudo пользователям в группе libvirt.
/etc/libvirt/qemu.conf user = "root"
group = "root"
Только для отладки! В продакшне оставьте libvirt-qemu:kvm и настройте права/МКД корректно.
/etc/default/libvirtd LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf Убедитесь, что демон читает правильный конфиг.

После изменений:

sudo systemctl restart libvirtd
sudo systemctl enable libvirtd

8. Создание и запуск гостевых машин

Проблема Причина Решение
internal error: process exited while connecting to monitor Некорректный XML, отсутствие OVMF, блокировка МКД Проверьте лог: /var/log/libvirt/qemu/<имя_вм>.log. Убедитесь, что для UEFI указан путь: <loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
Windows-гости не видят диск/сеть Отсутствие драйверов VirtIO Подключите virtio-win.iso с официального сайта Red Hat. Установите драйверы viostor, NetKVM, qemu-ga.
Графический интерфейс зависает spice/vnc конфликтуют с fly или Xorg Используйте virt-viewer или переключитесь на headless + virsh console. В Astra SE графический стек может иметь ограничения из-за сертификации.

Диагностика и логи

# Проверка демонов
systemctl status libvirtd
journalctl -u libvirtd -f

# Ядро и KVM
dmesg | grep -iE 'kvm|qemu|libvirt'
lsmod | grep kvm

# МКД (только SE)
pdp -s          # текущий режим
pdp -l /путь    # метки файла
fly-mac         # графический редактор контекстов

# Сеть
ip link show
brctl show      # если установлен bridge-utils
nft list ruleset

# Валидация хоста
virt-host-validate
virsh capabilities

Рекомендации по редакциям

Параметр Common Edition (CE) Special Edition (SE)
Безопасность Стандартные Linux-механизмы МКД (Parsec) + строгие политики
KVM-пакеты Штатные, совместимы с Debian Могут быть патчены, требуют astra-kvm (опционально)
Настройка По общим гайдам KVM/libvirt Обязательна настройка мандатных уровней, категорий, контекстов
Сертификация Не сертифицирована для ГИС/ККИ Сертифицирована ФСТЭК/ФСБ (требует соблюдения политик ИБ)

Важно для SE:

  • Любое отключение МКД или установка security_driver = "none" может нарушить аттестацию системы. Все изменения согласовывайте с администратором безопасности. Официальная документация: docs.astralinux.ru → раздел "Виртуализация".

Чек-лист успешного запуска

  1. virt-host-validate → все [PASS] или допустимые [WARN]
  2. lsmod | grep kvm → модули загружены
  3. pdp -s → режим соответствует политике ИБ
  4. Права на образы/диски → libvirt-qemu:kvm + корректные мандатные метки
  5. Сеть → мост работает, FORWARD разрешён
  6. virsh list --all → ВМ создана, virsh start <vm> → запускается без ошибок
  7. Лог /var/log/libvirt/qemu/<vm>.log → без denied или internal error