Previous: Uso de la facilidad de delegación de trabajo, Up: Preparación del daemon [Contents][Index]
Guix incluye un archivo de política SELinux en etc/guix-daemon.cil que puede ser instalado en un sistema donde SELinux está activado, para etiquetar los archivos Guix y especificar el comportamiento esperado del daemon. Ya que el sistema Guix no proporciona una política base de SELinux, la política del daemon no puede usarse en el sistema Guix.
Para instalar la política ejecute esta orden como root:
semodule -i etc/guix-daemon.cil
Una vez hecho, vuelva a etiquetar el sistema de archivos con
restorecon
o con un mecanismo distinto que proporcione su sistema.
Una vez la política está instalada, el sistema de archivos ha sido
re-etiquetado, y el daemon ha sido reiniciado, debería ejecutarse en el
contexto guix_daemon_t
. Puede confirmarlo con la siguiente orden:
ps -Zax | grep guix-daemon
Monitorice los archivos de log de SELinux mientras ejecuta una orden como
guix build hello
para convencerse que SELinux permite todas las
operaciones necesarias.
Esta política no es perfecta. Aquí está una lista de limitaciones o comportamientos extraños que deben ser considerados al desplegar la política SELinux provista para el daemon Guix.
guix_daemon_socket_t
isn’t actually used. None of the socket
operations involve contexts that have anything to do with
guix_daemon_socket_t
. It doesn’t hurt to have this unused label, but
it would be preferable to define socket rules for only this label.
guix gc
no puede acceder enlaces arbitrarios a los perfiles. Por
diseño, la etiqueta del archivo del destino de un enlace simbólico es
independiente de la etiqueta de archivo del archivo en sí. Aunque todos los
perfiles bajo $localstatedir se etiquetan, los enlaces para estos perfiles
heredan la etiqueta del directorio en el que están. Para enlaces en el
directorio de la usuaria esto será user_home_t
. Pero para los enlaces
del directorio de root, o /tmp, o del directorio del servidor HTTP,
etc., esto no funcionará. guix gc
se verá incapacitado para leer y
seguir dichos enlaces.
/gnu/store.+-(gux-.+|profile)/bin/guix-daemon
tienen asignada
la etiqueta guix_daemon_exec_t
; esto significa que cualquier
archivo con ese nombre en cualquier perfil tendrá permitida la ejecución en
el dominio guix_daemon_t
. Esto no es ideal. Una atacante podría
construir un paquete que proporcione este ejecutable y convencer a la
usuaria para instalarlo y ejecutarlo, lo que lo eleva al dominio
guix_daemon_t
. Llegadas a este punto, SELinux no puede prevenir que
acceda a los archivos permitidos para los procesos en dicho dominio.
You will need to relabel the store directory after all upgrades to
guix-daemon, such as after running guix pull
. Assuming the
store is in /gnu, you can do this with restorecon -vR /gnu
, or
by other means provided by your operating system.
Podríamos generar una política mucho más restrictiva en tiempo de
instalación, de modo que solo el nombre exacto del archivo del
ejecutable de guix-daemon
actualmente instalado sea marcado como
guix_daemon_exec_t
, en vez de usar una expresión regular amplia. La
desventaja es que root tendría que instalar o actualizar la política en
tiempo de instalación cada vez que se actualizase el paquete de Guix que
proporcione el ejecutable de guix-daemon
realmente en ejecución.
Previous: Uso de la facilidad de delegación de trabajo, Up: Preparación del daemon [Contents][Index]