Protezione dei container mediante SELinux

Questa pagina mostra come proteggere i container attivando SELinux. SELinux è supportato per RHEL e CentOS. Se le tue macchine host eseguono RHEL o CentOS e vuoi abilitare SELinux per il tuo cluster, devi abilitarlo in tutte le tue macchine host. A partire dai cluster Anthos su Bare Metal Release 1.9.0, puoi abilitare o disabilitare SELinux prima o dopo la creazione del cluster o gli upgrade del cluster. Se SELinux è abilitato sull'host, viene abilitato per il container runtime.

Controlla se SELinux è abilitato

SELinux è abilitato su RHEL e CentOS per impostazione predefinita. Per eseguire la verifica, esegui:

$ getenforce

Il comando restituisce Enforcing, Permissive o Disabled. Se il comando restituisce Enforcing, puoi procedere con l'upgrade o la creazione dei cluster.

Abilita SELinux

Se il comando getenforce restituisce Permissive, puoi passare alla modalità Enforcing utilizzando il comando setenforce. L'attivazione/disattivazione della modalità Permissive e Enforcing utilizzando setenforce non richiede il riavvio del sistema. Tuttavia, se vuoi che le modifiche siano persistenti tra i riavvii, devi aggiornare il file /etc/selinux/config.

Per passare alla modalità Enforcing, esegui:

$ sudo setenforce 1 # temporary
$ sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/g' /etc/selinux/config # persistent - after reboot

Se SELinux è Disabled, per abilitarlo, ti consigliamo di abilitarlo prima in modalità Permissive e riavviare il sistema per verificare che il sistema si avvii correttamente. Se non ci sono errori SELinux, puoi passare SELinux in modalità Enforcing in sicurezza.

  1. Facoltativo: attiva SELinux in modalità Permissive:

    $ sudo sed -i 's/SELINUX=disabled/SELINUX=permissive/g' /etc/selinux/config
    $ sudo reboot
    
  2. Se il sistema si riavvia senza errori SELinux, puoi abilitare la modalità Enforcing:

    $ sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config
    $ sudo reboot
    

Quando SELinux è abilitato in modalità Enforcing, SELinux è abilitato per tutti i processi sull'host, incluso il runtime del container.