Bug 2176939

Summary: libvirt is unable to start nbdkit process when SELinux is enforcing
Product: Red Hat Enterprise Linux 9 Reporter: Jonathon Jongsma <jjongsma>
Component: selinux-policyAssignee: Nikola Knazekova <nknazeko>
Status: NEW --- QA Contact: Milos Malik <mmalik>
Severity: medium Docs Contact:
Priority: high    
Version: 9.2CC: lvrabec, mmalik, rjones, zpytela
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2182505    
Bug Blocks: 2016527    

Description Jonathon Jongsma 2023-03-09 18:52:14 UTC
In bug 2016527, we want to add the ability for libvirt to use nbdkit to provide network disks to qemu. However, when selinux is in enforcing mode, libvirt is unable to start the nbdkit process. We need an selinux policy change that will allow this.

Comment 1 Richard W.M. Jones 2023-03-09 19:28:07 UTC
Is libvirt using the nbdkit --selinux-label option and doing chcon
on the socket?  The manual recommends:

 nbdkit -U /tmp/sock --selinux-label=system_u:object_r:svirt_socket_t:s0 [etc]
 chcon system_u:object_r:svirt_image_t:s0 /tmp/sock

See also https://libguestfs.org/nbdkit.1.html

Comment 2 Jonathon Jongsma 2023-03-09 19:39:56 UTC
The implementation has not been merged yet, but my branch does not currently use that option. Perhaps that's something else I'm missing. But we can't even get that far with selinux in enforcing mode since we're not allowed to run the binary.

Comment 3 Nikola Knazekova 2023-03-10 08:53:29 UTC
Hi,

Can you please reproduce the issue in permissive mode?
# setenforce 0

And then collect AVC denials:
# ausearch -i -m avc,user_avc,selinux_err,user_selinux_err -ts today

Thanks

Comment 4 Jonathon Jongsma 2023-03-14 21:15:23 UTC
type=AVC msg=audit(03/14/2023 16:09:22.652:2212) : avc:  denied  { entrypoint } for  pid=1019434 comm=rpc-libvirtd path=/usr/sbin/nbdkit dev="dm-1" ino=3145762 scontext=unconfined_u:unconfined_r:svirt_t:s0:c547,c919 tcontext=system_u:object_r:bin_t:s0 tclass=file permissive=1