使用 SELinux 保護容器

本頁說明如何啟用 SELinux,確保容器安全無虞。Red Hat Enterprise Linux (RHEL) 支援 SELinux。如果主機執行的是 RHEL,且您想為叢集啟用 SELinux,就必須在所有主機上啟用 SELinux。從 Google Distributed Cloud 1.9.0 版開始,您可以在叢集建立或升級前後啟用或停用 SELinux。如果主機上已啟用 SELinux,容器執行階段也會啟用這項功能。

檢查 SELinux 是否已啟用

RHEL 預設會啟用 SELinux。

  • 如要驗證,請執行:

    getenforce
    

指令會傳回 EnforcingPermissiveDisabled。如果指令傳回 Enforcing,即可繼續升級或建立叢集。

啟用 SELinux

如果 getenforce 指令傳回 Permissive,您可以使用 setenforce 指令切換至 Enforcing 模式。使用 setenforcePermissiveEnforcing 模式之間切換時,不需要重新啟動系統。不過,如要讓變更在重新啟動後仍有效,請更新 /etc/selinux/config 檔案。

  • 如要切換至 Enforcing 模式,請執行下列指令:

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

如果 SELinux 為 Disabled,建議先在 Permissive 模式下啟用,然後重新啟動系統,確認系統順利啟動。如果沒有 SELinux 錯誤,即可安全地將 SELinux 切換為 Enforcing 模式。

  1. 選用:在 Permissive 模式下啟用 SELinux:

      sudo sed -i 's/SELINUX=disabled/SELINUX=permissive/g' /etc/selinux/config
      sudo reboot
    
  2. 如果系統順利重新啟動,且沒有發生 SELinux 錯誤,即可啟用 Enforcing 模式:

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

Enforcing 模式中啟用 SELinux 後,主機上的所有程序 (包括容器執行階段) 都會啟用 SELinux。