
Estoy intentando configurar selinux para un sistema Debian de arranque en vivo.
SELinux no funciona debido a numerosos cambios durante la compilación y la configuración del sistema y requiere volver a etiquetar todo el sistema de archivos. Esto debe lograrse en la compilación con el sistema de archivos como archivo squashfs desempaquetado, desde dentro de chroot o systemd-nspawn o desde el sistema host.
Aún no se ha encontrado ninguna manera de lograr esto con éxito. Se supone que el archivo /etc/selinux/default/contexts/files/file_contexts.subs_dist asigna un alias a los objetivos del sistema de archivos detrás de las ubicaciones del sistema de archivos, pero un intento de usarlo para redirigir el sistema de archivos host al sistema squash desempaquetado durante el reetiquetado de SELinux no funcionó: SELinux Continuó reetiquetando el sistema de archivos host y el sistema de archivos squashfs fue citado como tipo de archivo desconocido.
¿Existe una forma sencilla de volver a etiquetar un sistema de archivos para SELinux en squashfs?
Respuesta1
Actualmente, este problema no tiene una solución conocida que haya podido encontrar, aunque estoy seguro de que debería ser posible operar SELinux en un squashfs desempaquetado y grabable.
De lo contrario, una solución de compilación en vivo es compilar manualmente usando debootstrap, sin isolinux en esta etapa y, por lo tanto, sin squashfs o iso, agregando kernel y paquetes; luego inicie este Debian grabable en una llave USB o inicie en un invitado virtual; luego ejecute el reetiquetado de SELinux para el sistema de archivos. Una vez hecho esto, el proceso de construcción puede continuar desde isolinux a squashfs, iso y el sistema híbrido habitual que no se puede escribir.
El método de escritura se describe aquí:
https://vdmit.org/linux/debian-live-usb-debootstrap.html
La ventajosa compilación manual híbrida que no se puede escribir (el método manual que de otro modo se intentaría automatizar con el script de compilación en vivo de Debian) se describe aquí:
https://l3net.wordpress.com/2013/09/21/how-to-build-a-debian-livecd/
El único inconveniente de este método es que la configuración completa debe estar presente en la etapa de debootstrap, como lo estará en el sistema híbrido de arranque, para que el etiquetado sea correcto, y que no hay ningún método disponible para volver a etiquetar una calabaza desempaquetada. lo cual considero inaceptable ya que es posible que sea necesario editar squashfs después de la compilación.
Los objetos adicionales importados con config-hooks, por supuesto, requieren contextos apropiados o personalizados o contextos permisivos etiquetados después del arranque, pero esta es una tarea menor que consume poco RAM.
De lo contrario, ésta sigue siendo una cuestión abierta.