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 cluster, devi attivare SELinux su 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 dei cluster. Quando SELinux è abilitato sull'host, lo è anche per il runtime del contenitore.

Verificare se SELinux è attivo

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.

Abilita SELinux

Se il comando getenforce restituisce Permissive, puoi passare alla modalità Enforcing utilizzando il comando setenforce. Il passaggio dalla modalità Permissive alla modalità 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 attivarlo ti consigliamo di attivarlo prima in modalità Permissive e di riavviare il sistema per verificare che l'avvio sia andato a buon fine. Se non sono presenti errori SELinux, puoi passare in sicurezza a modalità SELinuxEnforcing.

  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 in modalità Enforcing, SELinux viene attivato per tutti i processi sull'host, incluso il runtime del contenitore.