Protezione dei container mediante SELinux

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

Controllare se SELinux è abilitato

SELinux è attivo 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.

Abilitare SELinux

Se il comando getenforce restituisce Permissive, puoi passare alla modalità Enforcing utilizzando il comando setenforce. Il passaggio dalla modalità Permissive a quella Enforcing utilizzando setenforce non richiede il riavvio del sistema. Tuttavia, se vuoi che le modifiche siano permanenti dopo 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 l'avvio vada a buon fine. Se non sono presenti errori SELinux, puoi passare in sicurezza alla modalità Enforcing.

  1. (Facoltativo): abilita 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 attivare la modalità Enforcing:

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

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