Protezione dei container mediante SELinux

Questa pagina mostra come proteggere i container abilitando SELinux. SELinux è supportato per Red Hat Enterprise Linux (RHEL). Se le macchine host eseguono RHEL e vuoi attivare SELinux per il tuo cluster, devi abilitare SELinux su tutte le macchine host. A partire dalla release 1.9.0 di Google Distributed Cloud, puoi abilitare o disabilitare SELinux prima o dopo la creazione del cluster o gli upgrade del cluster. Quando SELinux è abilitato sull'host, è abilitato per il runtime del container.

Controlla se SELinux è abilitato

SELinux è abilitato su RHEL per impostazione predefinita.

  • Per verificare, 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 a Enforcing utilizzando setenforce non richiede il riavvio del sistema. Tuttavia, se vuoi che le modifiche siano permanenti 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 attivarlo, ti consigliamo di attivarlo prima in modalità Permissive e di riavviare il sistema per verificare che si avvii correttamente. Se non sono presenti errori di SELinux, puoi passare tranquillamente dalla modalità SELinux alla modalità 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
    

Una volta abilitato SELinux in modalità Enforcing, SELinux viene attivato per tutti i processi nell'host, incluso il runtime del container.