SELinux

Fedora CoreOS viene con SELinux habilitado en modo reforzado.

Cambios de directiva

Fedora CoreOS admite el cambio de valores booleanos de directiva y la adición de módulos SELinux. Sin embargo, no incluimos semanage y no hay ningún componente en Butane ni soporte directo en Ignition para realizar estas operaciones. Consulte fedora-coreos-tracker#701 para obtener más detalles.

Aquí hay un ejemplo para poner un booleano de SELinux a través de una unidad systemd que ejecuta en cada arranque:

Ejemplo del config de Butane para aplicar dinámicamente el SELinux booleano
variant: fcos
version: 1.7.0
systemd:
  units:
    - name: setsebool.service
      enabled: true
      contents: |
        [Service]
        Type=oneshot
        ExecStart=setsebool container_manage_cgroup true
        RemainAfterExit=yes
        [Install]
        WantedBy=multi-user.target

Restablecer la directiva SELinux a lo predeterminado

Si encuentras un defecto inesperado de SELinux, puede ser debido a la modificación de la directiva local.

Ejemplo de denegación de SELinux
systemd-resolved[755]: Enlace simbólico incorrecto /run/systemd/resolve/stub-resolv.conf: Permiso denegado
audit[755]: AVC avc:  denegado  { create } para  pid=755 comm="systemd-resolve" name=".#stub-resolv.confc418434d59d7d93a" scontext=system_u:system_r:systemd_resolved_t:s0 tcontext=system_u:object_r:systemd_resolved_var_run_t:s0 tclass=lnk_file permissive=0

Puede comprobar el estado de la directiva SELinux con:

$ sudo ostree admin config-diff | grep -E 'selinux/.*/policy'
M    selinux/targeted/active/policy.linked
M    selinux/targeted/active/policy.kern
M    selinux/targeted/policy/policy.31
A    selinux/targeted/policy/policy.30

Si esta instrucción devuelve un listado de apuntes entonces su directiva de SELinux ha sido modificada desde lo predeterminado.

Tiene dos opciones para restablecer la directiva de SELinux a lo predeterminado:

  • Re-desplegar el sistema desde el último artefacto de Fedora CoreOS.

  • Restaurar manualmente la directiva por defecto

Para restaurar a la directiva por defecto:

  1. Realice un respaldo de su directiva actual:

    sudo cp -al /etc/selinux{,.bak}
  2. Restaure la directiva por defecto de SELinux:

    sudo rsync --archive --links --verbose --delete /usr/etc/selinux/ /etc/selinux/

    Tras esta instrucción, la salida desde sudo ostree admin config-diff | grep -E 'selinux/.*/policy' no indicaría más que la directiva está modificada.

  3. Finalmente, recargue la directiva de SELinux o reinicie su sistema:

    sudo semodule -R

Inhabilitar SELinux

No admite inhabilitar SELinux en Fedora CoreOS. Consulte rpm-ostree#971. Consulte además la discusión en fedora-coreos-docs#439.

Ajustes de SELinux en modo permisivo

No recomendamos configurar todo el sistema en modo permisivo (i.e. set enforce 0). En su lugar, puede configurar SELinux como permisivo para una sola aplicación creando un Módulo de directivas de CIL.

Por ejemplo para el dominio wireguard_t:

$ cat permissive-wireguard.cil
(typepermissive wireguard_t)

Entonces puedes cargar este módulo con:

sudo semodule -i permissive-wireguard.cil

Y quitarlo una vez que este no se necesita más con:

sudo semodule -r permissive-wireguard

Además consulte la discusión en fedora-coreos-docs#439.