Protezione dei container mediante SELinux

Questa pagina mostra come proteggere i container abilitando SELinux. SELinux è supportato da RHEL e CentOS. Se le tue macchine host eseguono RHEL o CentOS e vuoi abilitare SELinux per il tuo cluster, devi abilitare SELinux in tutte le macchine host. A partire dalla release 1.9.0 di GKE su Bare Metal, puoi abilitare o disabilitare SELinux prima o dopo la creazione o l'upgrade del cluster. Quando SELinux è abilitato sull'host, viene attivato per il runtime del container.

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. Il passaggio dalla modalità Permissive alla modalità Enforcing e viceversa utilizzando setenforce non richiede il riavvio del sistema. Tuttavia, se vuoi che le modifiche rimangano persistenti tra un riavvio e l'altro, 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 di riavviare il sistema per verificare che si avvii correttamente. Se non ci sono errori SELinux, puoi tranquillamente passare alla modalità Enforcing di SELinux.

  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 attivare la modalità Enforcing:

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

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