Как настроить AppArmor чтобы KVM мог запускать гостевую систему с резервной цепочкой файлов

Ubuntu основан на Debian, поэтому лучше всего переход на Debian.

Я уже давно им пользовался - неплохой дистрибутив. Он имеет множество функций, которые делают его хорошей настольной операционной системой (хотя теперь мы переходим к теме мнений).

Рассмотрим каждый пункт отдельно:

1. У Debian есть обновления безопасности и ответвления.

Вы получаете свои программы из так называемых репозиториев - это некоторые удаленные серверы, содержащие ваши программы. У вас может быть несколько доступных репозиториев. У Debian есть три основных ветки / потока - стабильная, тестовая и нестабильная.

Стабильный (в настоящее время называется «Jessie») предпочтителен для серверов и не рекомендуется для настольных компьютеров - пакеты, как правило, старые, но действительно стабильны и не часто ломаются (если вообще).

Тестирование (в настоящее время называется "stretch") - это новая ветка, которая содержит пакеты, которые некоторое время находились в нестабильном состоянии. Считается практически стабильным. Через некоторое время это станет новой стабильной веткой.

Нестабильный (называемый "Sid") - это то место, где находятся новейшие пакеты - это теоретически означает, что он должен время от времени ломаться, но практически я никогда не сталкивался с чем-то неправильным - я ' Пользуюсь им около года. Считаю это относительно безопасным.

Кроме того, существует отдельный репозиторий безопасности с обновлениями безопасности от команды разработчиков Debian, плюс исправления ошибок безопасности, как правило, проходят, независимо от ветки.

Если вас беспокоит безопасность, прочтите этот FAQ . Обратите внимание, что не все ошибки делают вас уязвимыми (хотя иметь ошибки в коде - не лучшая практика).


2. Когда вы получите новую ОС?

В Debian у вас есть три разных варианта.

Стабильное и Тестирование означает, что вы получаете обновления программного обеспечения (хотя и не автоматически; вам нужно обновить себя или настроить какой-либо сценарий / программу, чтобы напоминать вам об обновлении), но обновления системы не тоже не автоматический (хотя, если вы ссылаетесь на ветки по идентификатору, а не по имени, использование apt-get dist-upgrade обновит вашу систему). Обратите внимание, что они редки - Ubuntu имеет фиксированный цикл разработки, а Debian - нет. Они выпускают новый стабильный релиз раз в 2-3 года, но на этом все. Впрочем, в этом нет необходимости, поскольку в тестировании уже есть довольно новые пакеты.

Нестабильный - это совсем другая история - это так называемый скользящий выпуск - это означает, что у вас одна система и нет версий - всякий раз, когда вы обновляете свои пакеты, вы используете «последнюю версию ОС». У вас нет Debian Sid 1.0, 2.0 и т.д., как в Ubuntu. Просто обновите и продолжайте работать.


3. CentOS нуждается в дополнительном кодексе?

Это может быть правдой - есть несколько кодеков, которые запатентованы и требуют от вас принятия лицензий / загрузки надлежащего программного обеспечения (например, mp3).CentOS не предоставляет эти коды из коробки, поэтому вам нужно установить их самостоятельно - однако это не должно быть слишком сложно.

Я не знаком с CentOS - имел доступ только к серверам, никогда не устанавливался и не использовался в качестве моего предпочтительного дистрибутива - но учтите, что CentOS основан на RedHat и нацелен на создание серверного дистрибутива корпоративного качества - и хотя это совершенно нормально для использования серверного распределения для вашего рабочего стола, вы можете подумать об использовании чего-то, что создано для пользователей настольных компьютеров.

4
05.04.2018, 23:42
2 ответа

Похоже, это снова связано с AppArmor (У меня была похожая проблема несколько лет назад в Ubuntu 14.04, о которой я забыл ). Я смог заставить его работать:

Установка apparmor -утилит

sudo apt-get install apparmor-utils

Затем найдите идентификатор libvirt в самых последних системных журналах:

sudo cat /var/log/syslog | grep "apparmor" | grep "DENIED" | grep libvirt-

Затем используйте этот идентификатор с полным путем, чтобы установить его в «режим жалобы».

sudo aa-complain \
/etc/apparmor.d/libvirt/libvirt-b0cd5bdf-6dfc-4f75-bc0f-e38adff1cdd2

Затем запустите гостевую систему.

В лучшем случае это похоже на обходной путь и раздражает, если мне приходится делать это для каждого гостя индивидуально. Я был бы счастливее, если бы кто-то предложил лучшее решение.

4
27.01.2020, 20:55

Та же проблема в Debian Buster, дело в том, что профили libvirt apparmor динамически создаются и хранятся в /etc/apparmor.d/libvirt/ (спасибо @Programster ). В этом каталоге вы должны найти TEMPLATE.qemu, похожий на этот:

#
# This profile is for the domain whose UUID matches this file.
#

#include <tunables/global>

profile LIBVIRT_TEMPLATE flags=(attach_disconnected) {
  #include <abstractions/libvirt-qemu>
}

Вы должны добавить правила для каталога, в котором вы храните свой qcow2 в профиле:

#
# This profile is for the domain whose UUID matches this file.
#

#include <tunables/global>

profile LIBVIRT_TEMPLATE flags=(attach_disconnected) {
  #include <abstractions/libvirt-qemu>
  /media/ssd_storage2/kvm/vms/templates/template-ubuntu-docker2/**.qcow2 rk,
}

«r» — разрешение на чтение, а «k» — разрешение на блокировку.

Вы можете отслеживать сообщения аудита apparmor с помощью «dmesg -w» и получать похожие сообщения в зависимости от того, какие разрешения отсутствуют:

[ 4404.140981] audit: type=1400 audit(1566342100.488:254): apparmor="DENIED" operation="open" profile="libvirt-b24e7663-d71a-4970-9d6c-711d43629135" name="/home/libvirt/0.0.6-dev.19+20~811d1dc983b5.qcow2" pid=22384 comm="qemu-system-x86" requested_mask="r" denied_mask="r" fsuid=64055 ouid=64055
...
[ 4652.827860] audit: type=1400 audit(1566342349.172:263): apparmor="DENIED" operation="file_lock" profile="libvirt-b24e7663-d71a-4970-9d6c-711d43629135" name="/home/libvirt/0.0.6-dev.19+20~811d1dc983b5.qcow2" pid=23085 comm="qemu-system-x86" requested_mask="k" denied_mask="k" fsuid=64055 ouid=64055
1
27.01.2020, 20:55

Теги

Похожие вопросы