LINUX.ORG.RU

gentoo, apparmor и libvirt (svirt)

 , , , svirt


1

1

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

Есть такое дело - sVirt, как я понимаю, может работать с использованием apparmor или selinux.
AppArmor есть, aa-status показывает, вроде работает.
Пишу в /etc/libvirt/qemu.conf: security_driver = «apparmor»

Демон не стартует:

2015-07-12 00:00:45.068+0000: 10388: error : virSecurityDriverLookup:93 : internal error: Security driver apparmor not found
2015-07-12 00:00:45.068+0000: 10388: error : qemuSecurityInit:449 : Failed to initialize security drivers
2015-07-12 00:00:45.068+0000: 10388: error : virStateInitialize:783 : Initialization of QEMU state driver failed: internal error: Security driver apparmor not found
2015-07-12 00:00:45.068+0000: 10388: error : daemonRunStateInit:908 : Driver state initialization failed
И нет, например, файла /usr/lib/virt-aa-helper, хотя для него есть правило apparmor (правила в данном случае из убунты).

Получается, это libvirt собран без поддержки apparmor? USE-флаг такой не вижу, в ебилде, судя по всему (насколько я могу понять) такое вообще не предусмотрено.

Как это исправить (ебилд)? В исходниках в configure такие параметры есть (--with-apparmor, --with-apparmor-mount, --with-secdriver-apparmor, --with-apparmor-profiles), но не make install же делать. И таки что конкретно из этого нужно включать, всё сразу?
Потом, куда зарепортить, чтобы в дереве пофиксили (поддержка apparmor в гентушке есть, даже статья в вики, а софт, который его поддерживает - без его поддержки)?

Ну так подправь в ебилде src_configure()

Meyer ★★★★★
()

Потом, куда зарепортить, чтобы в дереве пофиксили

http://bugs.gentoo.org, не? А там пусть уж мэйнтэйнер решает - выносить это в отдельный USE, вязать к USE=«hardened» или оставлять по умолчанию(в зависимости от того, насколько меняется логика работы ПО при отключенном apparmor)

Pinkbyte ★★★★★
()

Вот добавляю в локальный оверлей, просто, безо всяких USE флагов: +=" --with-apparmor --with-apparmor-profiles"
libvirt теперь стартует, но при попытке запуска виртуальной машины:

error: Failed to start domain win8.1
error: internal error: cannot load AppArmor profile 'libvirt-48e6af27-269d-4966-bcc8-5bd304c0a7fe'

в aa-status:
1 processes have profiles defined.
1 processes are in enforce mode.
   /usr/sbin/libvirtd (30402)

TheAnonymous ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

Спасибо, пожалуй, туда и напишу.
Вообще, USE-флаг «apparmor» есть, например, sys-apps/systemd

TheAnonymous ★★★★★
() автор топика

В общем, дело в том, что эти бинарники (напр. virt-aa-helper) почему-то устанавливаются не в /usr/lib/libvirt/, а в /usr/libexec/
После замены путей в профилях apparmor всё заработало.

Интересно, откуда тогда они берутся в /usr/lib/libvirt/ в других дистрибутивах (зачем в профилях apparmor по умолчанию этот путь)?

TheAnonymous ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.