Гайд по настройке KVM в Astra Linux 1.8. Разбор проблем с виртуализацией, МКД, сетью и правами доступа для CE и SE редакций.
2026.04.28
#KVM
#AstraLinux
#виртуализация
#Linux
#QEMU
#libvirt
#sysadmin
#DevOps
Гайд: Настройка 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:
- Все ресурсы ВМ (ISO, диски, конфиги) должны находиться в одной мандатной зоне.
- Создайте каталог для ВМ:
sudo mkdir -p /var/lib/libvirt/images
- Назначьте метки:
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 → раздел "Виртуализация".
Чек-лист успешного запуска
virt-host-validate → все [PASS] или допустимые [WARN]
lsmod | grep kvm → модули загружены
pdp -s → режим соответствует политике ИБ
- Права на образы/диски →
libvirt-qemu:kvm + корректные мандатные метки
- Сеть → мост работает, FORWARD разрешён
virsh list --all → ВМ создана, virsh start <vm> → запускается без ошибок
- Лог
/var/log/libvirt/qemu/<vm>.log → без denied или internal error