2017-11-17 23:24:52 +01:00
|
|
|
apparmor: allow libvirtd to send signals to unconfined processes
|
|
|
|
|
|
|
|
When confinement of QEMU/KVM domains is not enforced (security_default_confined = 0),
|
|
|
|
qemu processes run unconfined. Add a rule to the libvirtd apparmor profile allowing
|
|
|
|
sending signals to unconfined processes. Without the rule, libvirtd
|
|
|
|
is unable to signal QEMU/KVM domains. E.g. 'virsh destroy dom' results in the
|
|
|
|
following denial in audit.log
|
|
|
|
|
|
|
|
type=AVC msg=audit(1510951646.581:939): apparmor="DENIED" operation="signal"
|
|
|
|
profile="/usr/sbin/libvirtd" pid=18891 comm="libvirtd" requested_mask="send"
|
|
|
|
denied_mask="send" signal=term peer="unconfined"
|
|
|
|
|
2017-12-01 23:52:01 +01:00
|
|
|
Index: libvirt-3.10.0/examples/apparmor/usr.sbin.libvirtd
|
2017-11-17 23:24:52 +01:00
|
|
|
===================================================================
|
2017-12-01 23:52:01 +01:00
|
|
|
--- libvirt-3.10.0.orig/examples/apparmor/usr.sbin.libvirtd
|
|
|
|
+++ libvirt-3.10.0/examples/apparmor/usr.sbin.libvirtd
|
2017-11-17 23:24:52 +01:00
|
|
|
@@ -60,6 +60,9 @@
|
|
|
|
|
|
|
|
signal (send) peer=/usr/sbin/dnsmasq,
|
|
|
|
signal (read, send) peer=libvirt-*,
|
|
|
|
+ # When confinement is not enforced (security_default_confined = 0), qemu
|
|
|
|
+ # processes run unconfined, hence 'peer=unconfined'
|
|
|
|
+ signal send set=(hup,kill,term) peer=unconfined,
|
|
|
|
|
|
|
|
# Very lenient profile for libvirtd since we want to first focus on confining
|
|
|
|
# the guests. Guests will have a very restricted profile.
|