SELinux
Fedora CoreOS viene fornito con SELinux abilitato in modalità enforcing.
Modifiche delle politicy
La modifica dei booleani delle politiche e l’aggiunta di moduli SELinux sono supportate in Fedora CoreOS. Tuttavia, non includiamo semanage e non esiste una funzionalità semplificata in Butane o supporto diretto in Ignition per eseguire queste operazioni. Vedi fedora-coreos-tracker#701 per maggiori dettagli.
Ecco un esempio per impostare un booleano SELinux tramite un’unità systemd che viene eseguita ad ogni avvio:
variant: fcos
version: 1.6.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
Ripristino della policy SELinux ai valori predefiniti
Se riscontri problemi imprevisti con SELinux, potrebbero essere dovuti a modifiche locali delle politicy.
systemd-resolved[755]: Failed to symlink /run/systemd/resolve/stub-resolv.conf: Permission denied
audit[755]: AVC avc: denied { create } for 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
Puoi controllare lo stato della policy 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
Se questo comando restituisce un elenco di voci, allora la tua politicy SELinux è stata modificata rispetto a quella predefinita.
Hai due opzioni per ripristinare la politicy SELinux a quella predefinita:
-
Ridistribuisci il sistema dagli ultimi artefatti Fedora CoreOS.
-
Ripristina manualmente la policy predefinita
Per ripristinare la politicy predefinita:
-
Crea un backup della tua policy corrente:
sudo cp -al /etc/selinux{,.bak} -
Ripristina la policy SELinux predefinita:
sudo rsync --archive --links --verbose --delete /usr/etc/selinux/ /etc/selinux/Dopo questo comando, l’output di
sudo ostree admin config-diff | grep -E 'selinux/.*/policy'non dovrebbe più indicare che la policy è stata modificata. -
Infine, ricarica la policy SELinux o riavvia il tuo sistema:
sudo semodule -R
Disabilitazione di SELinux
Non supportiamo la disabilitazione di SELinux in Fedora CoreOS. Vedi rpm-ostree#971. Vedi anche la discussione in fedora-coreos-docs#439.
Impostare SELinux in modalità permissiva
Non consigliamo di impostare l’intero sistema in modalità permissiva (cioè set enforce 0). Invece, puoi impostare SELinux in modalità permissiva per una singola applicazione creando un [modulo di politica CIL] (https://github.com/SELinuxProject/selinux-notebook/blob/main/src/cil_overview.md).
Ad esempio per il dominio wireguard_t:
$ cat permissive-wireguard.cil
(typepermissive wireguard_t)
Puoi quindi caricare questo modulo con:
sudo semodule -i permissive-wireguard.cil
E rimuoverlo una volta che non è più necessario con:
sudo semodule -r permissive-wireguard
Vedi anche la discussione in fedora-coreos-docs#439.
Want to help? Learn how to contribute to Fedora Docs ›