Después de las últimas actualizaciones de políticas de SELinux en Fedora 24, al arrancar ó crear una Máquina Virtual (vm) en virt-manager, envía el mensaje de error: virt-manager error: selinux policy denies access at starting domain.
En los logs encontramos:
Aug 23 21:45:45 isengard.mx.redhat.com systemd[1]: Started Network Manager Script Dispatcher Service. -- Subject: Unit NetworkManager-dispatcher.service has finished start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit NetworkManager-dispatcher.service has finished starting up. -- -- The start-up result is done. Aug 23 21:45:45 isengard.mx.redhat.com dbus-daemon[818]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' Aug 23 21:45:45 isengard.mx.redhat.com kernel: virbr0: port 1(vnet0) entered disabled state Aug 23 21:45:45 isengard.mx.redhat.com kernel: device vnet0 left promiscuous mode Aug 23 21:45:45 isengard.mx.redhat.com audit: ANOM_PROMISCUOUS dev=vnet0 prom=0 old_prom=256 auid=4294967295 uid=107 gid=107 ses=4294967295 Aug 23 21:45:45 isengard.mx.redhat.com kernel: virbr0: port 1(vnet0) entered disabled state Aug 23 21:45:45 isengard.mx.redhat.com virtlogd[10776]: End of file while reading data: Input/output error Aug 23 21:45:45 isengard.mx.redhat.com libvirtd[913]: Cannot open log file: '/var/log/libvirt/qemu/win7-2.log': Device or resource busy Aug 23 21:45:45 isengard.mx.redhat.com virtlogd[10776]: Cannot open log file: '/var/log/libvirt/qemu/win7-2.log': Device or resource busy Aug 23 21:45:45 isengard.mx.redhat.com virtlogd[10776]: End of file while reading data: Input/output error Aug 23 21:45:45 isengard.mx.redhat.com libvirtd[913]: SELinux policy denies access. Aug 23 21:45:45 isengard.mx.redhat.com systemd-machined[10793]: Failed to start machine scope: Access denied
Si configuramos SELinux en modo permisivo, la vm arranca correctamente y también nos permite crear nuevas vm’s.
Obviamente, la solución más rápida es deshabilitar SELinux, pero como apoyamos la campaña de Dan Walsh, después una rápida googleada encontré el workaround:
1. Hacer downgrade a la política de SELinux
[root@isengard ~]# dnf downgrade selinux-policy-targeted selinux-policy firewalld firewalld-filesystem python3-firewall
2. Generar política temporal que permita el uso de kvm
Crear archivo type enforcement
[root@isengard ~]# vi /tmp/virt-manager-temp.te module virt-manager-temp 1.0; require { type systemd_machined_t; type init_t; class system start; } #============= systemd_machined_t ============== allow systemd_machined_t init_t:system start; [root@isengard ~]#
Compilamos el módulo
[root@isengard ~]# checkmodule -M -m -o virt-manager-temp.mod virt-manager-temp.te [root@isengard ~]# semodule_package -o virt-manager-temp.pp -m virt-manager-temp.mod
Lo cargamos en la política
[root@isengard ~]# semodule -i virt-manager-temp.pp
Después de aplicar cualquier de estos procedimientos, virt-manager ya es capaz de funcionar con SELinux.
En el bugzilla mencionan que la actualización de la política se encuentra en los repositorios de testing:
[root@isengard ~]# dnf update selinux-policy --enablerepo=updates-testing
Sin embargo, aún no esta disponible:
[root@isengard ~]# dnf update selinux-policy --enablerepo=updates-testing Fedora 24 - x86_64 - Test Updates 229 kB/s | 2.8 MB 00:12 Last metadata expiration check: 0:00:06 ago on Tue Aug 23 21:55:43 2016. Dependencies resolved. Nothing to do. Complete! [root@isengard ~]# dnf list | grep selinux-policy selinux-policy.noarch 3.13.1-191.12.fc24 @updates selinux-policy-targeted.noarch 3.13.1-191.12.fc24 @updates selinux-policy-devel.noarch 3.13.1-191.12.fc24 updates selinux-policy-doc.noarch 3.13.1-191.12.fc24 updates selinux-policy-minimum.noarch 3.13.1-191.12.fc24 updates selinux-policy-mls.noarch 3.13.1-191.12.fc24 updates selinux-policy-sandbox.noarch 3.13.1-191.12.fc24 updates [root@isengard ~]#
Referencias:
Bug 1368745 – selinux-policy-3.13.1-191.12.fc24 prevents virtual machine usage
Espero les sirva…