Protezione dei container mediante SELinux

Questa pagina mostra come proteggere i container tramite SELinux. SELinux è supportato per RHEL e CentOS. Se nelle macchine host vengono eseguiti 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, è abilitato per il runtime di container.

Verifica se SELinux è abilitata

SELinux è abilitato su RHEL e CentOS per impostazione predefinita. Per verificarlo, esegui questo comando:

$ 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 usando 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 vengano mantenute tra i riavvii, devi aggiornare il file /etc/selinux/config.

Per passare alla modalità Enforcing, esegui questo comando:

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

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

  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 correttamente senza errori SELinux, puoi abilitare la modalità Enforcing:

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

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