CIS Ubuntu 基準

本文說明 Google Distributed Cloud 符合 CIS Ubuntu 基準的程度。

存取基準

如要查看 CIS Ubuntu 基準,請前往 CIS 網站

設定檔

您可以在 CIS Ubuntu 基準文件中瞭解設定檔。Google Distributed Cloud 使用的 Ubuntu 映像檔經過強化,符合第 2 級 - 伺服器設定檔。

Google Distributed Cloud 評估

我們使用下列值指定 Google Distributed Cloud 中 Ubuntu 建議的狀態。

狀態 說明
傳遞 符合基準建議。
失敗 與基準建議不同。
notapplicable 與要評估的系統無關,因此不適合進行測試。

Google Distributed Cloud 狀態

Google Distributed Cloud 使用的 Ubuntu 映像檔經過強化,符合 CIS Level 2 - Server 設定檔。下表說明 Google Distributed Cloud 元件未通過特定建議的原因。下表不包含狀態為 Passed 的基準。

1.32

版本

本節適用於下列版本:

Google Distributed Cloud 版本 Ubuntu 版本 CIS Ubuntu 基準版本 CIS 層級
1.32 22.04 LTS 1.0.0 版 第 2 級伺服器

無法套用建議

下表列出 Google Distributed Cloud 偏離基準建議的建議事項。這些發現適用於叢集節點和管理員工作站。

# 建議 嚴重性 狀態
1.1.2.1 確保 /tmp 位於獨立分區 失敗
1.1.3.1 確認 /var 位於獨立分區 失敗
1.1.4.1 確認 /var/tmp 位於獨立分區 失敗
1.1.5.1 確認 /var/log 位於獨立分區 失敗
1.1.6.1 確保 /var/log/audit 位於獨立分區 失敗
1.1.7.1 確認 /home 位於獨立分區 失敗
1.4.1 在 grub2 中設定系統啟動載入程式密碼 失敗
1.4.3 確保單一使用者模式需要驗證 失敗
2.3.6 解除安裝 rpcbind 套件 失敗
3.2.2 停用 IPv4 介面上 IP 轉送的 Kernel 參數 失敗
3.3.7 啟用核心參數,預設在所有 IPv4 介面上使用反向路徑篩選 失敗
3.3.7 啟用核心參數,在所有 IPv4 介面上使用反向路徑篩選 失敗
3.5.2.8 確保 nftables 預設拒絕防火牆政策 失敗
3.5.2.10 確保 nftables 規則是永久規則 失敗
4.2.3 確認記錄檔的權限 失敗
5.2.4 限制使用者的 SSH 存取權 不明 失敗
5.3.4 確保使用者重新驗證權限提升 - sudo 失敗
5.5.1.2 設定密碼有效期限 失敗

已通過的建議

下表列出 Google Distributed Cloud 遵循基準建議的建議事項。

# 建議 嚴重性 狀態
1.1.1.1 停用 cramfs 掛載功能 傳遞
1.1.1.2 停用 squashfs 掛載功能 傳遞
1.1.1.3 停用 UDF 掛載功能 傳遞
1.1.8.1 將 nodev 選項新增至 /dev/shm 傳遞
1.1.8.2 在 /dev/shm 中新增 noexec 選項 傳遞
1.1.8.3 在 /dev/shm 中新增 nosuid 選項 傳遞
1.1.9 停用 Automounter 傳遞
1.1.10 停用 USB 儲存裝置驅動程式的 Modprobe 載入功能 傳遞
1.4.2 驗證 /boot/grub/grub.cfg 權限 傳遞
1.5.1 啟用虛擬位址空間隨機配置 傳遞
1.5.2 不得安裝「prelink」套件 傳遞
1.5.3 停用 Apport 服務 不明 傳遞
1.5.4 為所有使用者停用核心傾印 傳遞
1.5.4 停用 SUID 程式的 Core Dump 傳遞
1.6.1.1 確認已安裝 AppArmor 傳遞
1.6.1.2 確認系統啟動載入程式設定已啟用 AppArmor 傳遞
1.6.1.4 強制執行所有 AppArmor 設定檔 傳遞
1.7.1 修改系統每日訊息橫幅 傳遞
1.7.2 修改系統登入橫幅 傳遞
1.7.3 修改遠端連線的系統登入橫幅 傳遞
1.7.4 驗證每日訊息橫幅的群組擁有權 傳遞
1.7.4 驗證每日訊息橫幅擁有權 傳遞
1.7.4 驗證每日訊息橫幅的權限 傳遞
1.7.5 驗證系統登入橫幅的群組擁有權 傳遞
1.7.5 驗證系統登入橫幅的擁有權 傳遞
1.7.5 確認系統登入橫幅上的權限 傳遞
1.7.6 驗證遠端連線的系統登入橫幅群組擁有權 傳遞
1.7.6 驗證遠端連線的系統登入橫幅擁有權 傳遞
1.7.6 確認遠端連線的系統登入橫幅權限 傳遞
2.1.1.1 安裝 systemd_timesyncd 服務 傳遞
2.1.3.2 啟用 systemd_timesyncd 服務 傳遞
2.2.1 移除 X Windows 套件群組 傳遞
2.2.2 停用 Avahi 伺服器軟體 傳遞
2.2.2 解除安裝 avahi 伺服器套件 傳遞
2.2.3 停用 CUPS 服務 不明 傳遞
2.2.3 解除安裝 CUPS 套件 不明 傳遞
2.2.4 解除安裝 DHCP 伺服器套件 傳遞
2.2.5 解除安裝 openldap-servers 套件 傳遞
2.2.6 解除安裝 nfs-kernel-server 套件 傳遞
2.2.7 解除安裝繫結套件 傳遞
2.2.8 解除安裝 vsftpd 套件 傳遞
2.2.9 解除安裝 httpd 套件 不明 傳遞
2.2.9 解除安裝 nginx 套件 不明 傳遞
2.2.10 解除安裝 cyrus-imapd 套件 不明 傳遞
2.2.10 解除安裝 dovecot 套件 不明 傳遞
2.2.11 解除安裝 Samba 套件 不明 傳遞
2.2.12 解除安裝 squid 套件 不明 傳遞
2.2.13 解除安裝 net-snmp 套件 不明 傳遞
2.2.14 解除安裝 nis 套件 傳遞
2.2.15 確認郵件傳輸代理程式未監聽任何非迴路位址 傳遞
2.2.16 解除安裝 rsync 套件 傳遞
2.3.2 解除安裝 rsh 套件 不明 傳遞
2.3.3 解除安裝 Talk 套件 傳遞
2.3.4 移除 Telnet 用戶端 傳遞
2.3.5 確認未安裝 LDAP 用戶端 傳遞
3.1.2 停用無線網路介面 傳遞
3.2.1 預設停用在所有 IPv4 介面上傳送 ICMP 重新導向的 Kernel 參數 傳遞
3.2.1 在所有 IPv4 介面上停用傳送 ICMP 重新導向的 Kernel 參數 傳遞
3.2.2 停用 IPv6 轉送的核心參數 傳遞
3.3.1 在所有 IPv4 介面上停用核心參數,以接受來源路由封包 傳遞
3.3.1 在所有 IPv6 介面上停用核心參數,以接受來源路由封包 傳遞
3.3.1 預設停用核心參數,以接受 IPv4 介面上的來源路由封包 傳遞
3.3.1 預設停用核心參數,以在 IPv6 介面上接受來源路由封包 傳遞
3.3.2 停用所有 IPv4 介面的 ICMP 重新導向接受功能 傳遞
3.3.2 停用所有 IPv6 介面的 ICMP 重新導向接受功能 傳遞
3.3.2 在 IPv4 介面上,停用預設接受 ICMP 重新導向的 Kernel 參數 傳遞
3.3.2 在 IPv6 介面上,預設停用接受 ICMP 重新導向的 Kernel 參數 傳遞
3.3.3 設定核心參數,預設接受安全重新導向 傳遞
3.3.3 在所有 IPv4 介面上停用 Kernel 參數,以接受安全 ICMP 重新導向 傳遞
3.3.4 在所有 IPv4 介面上啟用核心參數,記錄火星封包 不明 傳遞
3.3.4 根據預設,啟用核心參數,在所有 IPv4 介面上記錄火星封包 不明 傳遞
3.3.5 啟用核心參數,忽略 IPv4 介面上的 ICMP 廣播回應要求 傳遞
3.3.6 啟用核心參數,忽略 IPv4 介面上的錯誤 ICMP 錯誤回應 不明 傳遞
3.3.8 啟用核心參數,在網路介面上使用 TCP 同步 Cookie 傳遞
3.3.9 在所有 IPv6 介面上設定接受路由器通告 傳遞
3.3.9 預設停用所有 IPv6 介面上的路由器通告 傳遞
3.4.1 停用 DCCP 支援 傳遞
3.4.2 停用 SCTP 支援 傳遞
3.4.3 停用 RDS 支援 傳遞
3.4.4 停用 TIPC 支援 傳遞
3.5.1.2 移除 iptables-persistent 套件 傳遞
3.5.2.1 安裝 nftables 套件 傳遞
3.5.2.4 確認 Nftables 有資料表 傳遞
3.5.2.5 確認 Nftables 是否有基本鏈 傳遞
3.5.2.9 確認 nftables 服務已啟用 傳遞
3.5.3.1.1 安裝 iptables 套件 傳遞
3.5.3.1.3 移除 ufw 套件 傳遞
4.1.1.1 確認已安裝稽核子系統 傳遞
4.1.1.2 啟用 auditd 服務 傳遞
4.1.1.4 延長稽核 Daemon 的稽核待處理事項限制 傳遞
4.1.2.1 設定 auditd 記錄檔大小上限 傳遞
4.1.2.2 設定 auditd max_log_file_action,在達到記錄檔大小上限時執行動作 傳遞
4.1.2.3 設定磁碟空間不足時的 auditd admin_space_left 動作 傳遞
4.1.2.3 在磁碟空間不足時設定 auditd mail_acct 動作 傳遞
4.1.2.3 設定磁碟空間不足時的 auditd space_left 動作 傳遞
4.1.3.1 確保 auditd 收集系統管理員動作 傳遞
4.1.3.2 在執行具特殊權限的可執行檔時記錄事件 傳遞
4.1.3.3 記錄嘗試執行維護活動的次數 傳遞
4.1.3.4 記錄變更 localtime 檔案的嘗試 傳遞
4.1.3.4 記錄透過 adjtimex 變更時間的嘗試 傳遞
4.1.3.4 記錄透過 clock_settime 變更時間的嘗試 傳遞
4.1.3.4 記錄透過 settimeofday 變更時間的嘗試 傳遞
4.1.3.4 嘗試透過 stime 變更時間的記錄 傳遞
4.1.3.5 記錄會修改系統網路環境的事件 傳遞
4.1.3.6 確保 auditd 收集權限指令 (su) 的使用資訊 傳遞
4.1.3.6 確保 auditd 收集權限指令 (sudo) 的使用資訊 傳遞
4.1.3.6 確保 auditd 收集有關使用權限指令 (sudoedit) 的資訊 傳遞
4.1.3.6 確保 auditd 收集使用權限指令 (umount) 的相關資訊 傳遞
4.1.3.6 確保 auditd 收集有關使用具備特殊權限指令的資訊 - unix_chkpwd 傳遞
4.1.3.7 記錄檔案存取嘗試失敗的次數 - creat 傳遞
4.1.3.7 記錄檔案的存取嘗試失敗次數 - ftruncate 傳遞
4.1.3.7 記錄檔案存取嘗試失敗的事件 - 開啟 傳遞
4.1.3.7 記錄檔案存取嘗試失敗的事件 - openat 傳遞
4.1.3.7 記錄檔案存取嘗試失敗的次數 - 截斷 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/group 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/gshadow 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/passwd 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/security/opasswd 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/shadow 傳遞
4.1.3.9 記錄修改系統任意存取控制項目的事件 - chmod 傳遞
4.1.3.9 記錄修改系統任意存取控制項的事件 - chown 傳遞
4.1.3.9 記錄會修改系統任意存取控制項的事件 - fchmod 傳遞
4.1.3.9 記錄修改系統任意存取控制項的事件 - fchmodat 傳遞
4.1.3.9 記錄會修改系統任意存取控制項的事件 - fchown 傳遞
4.1.3.9 記錄會修改系統任意存取控制項的事件 - fchownat 傳遞
4.1.3.9 記錄會修改系統任意存取控制項的事件 - fremovexattr 傳遞
4.1.3.9 記錄修改系統任意存取控制項的事件 - fsetxattr 傳遞
4.1.3.9 記錄修改系統任意存取控制項的事件 - lchown 傳遞
4.1.3.9 記錄會修改系統任意存取權控管的事件 - lremovexattr 傳遞
4.1.3.9 記錄修改系統任意存取權控管的事件 - lsetxattr 傳遞
4.1.3.9 記錄會修改系統任意存取權控管的事件 - removexattr 傳遞
4.1.3.9 記錄會修改系統任意存取權控管的事件 - setxattr 傳遞
4.1.3.10 確認 auditd 會收集匯出至媒體的資訊 (成功) 傳遞
4.1.3.11 記錄嘗試變更程序和會話啟動資訊的行為 傳遞
4.1.3.12 記錄嘗試變更登入和登出事件的行為 - faillog 傳遞
4.1.3.12 記錄嘗試變更登入和登出事件的行為 - lastlog 傳遞
4.1.3.12 記錄嘗試變更登入和登出事件的行為 - tallylog 傳遞
4.1.3.13 確保 auditd 會收集使用者刪除檔案的事件 - 重新命名 傳遞
4.1.3.13 確保 auditd 會收集使用者刪除檔案的事件 - renameat 傳遞
4.1.3.13 確保 auditd 會收集使用者刪除檔案的事件 - 取消連結 傳遞
4.1.3.13 確保 auditd 會收集使用者刪除檔案的事件 - unlinkat 傳遞
4.1.3.14 記錄會修改系統強制存取控制項的事件 傳遞
4.1.3.15 記錄任何執行 chcon 的嘗試 傳遞
4.1.3.16 記錄任何執行 setfacl 的嘗試 傳遞
4.1.3.17 記錄任何執行 chacl 的嘗試 傳遞
4.1.3.18 確保 auditd 收集權限指令的使用資訊 - usermod 傳遞
4.1.3.19 確保 auditd 收集核心模組載入 (init_module) 的相關資訊 傳遞
4.1.3.19 確保 auditd 會收集核心模組卸載資訊 - delete_module 傳遞
4.1.3.19 確保 auditd 收集權限指令的使用資訊 - insmod 傳遞
4.1.3.19 確保 auditd 收集權限指令的使用資訊 - modprobe 傳遞
4.1.3.19 確保 auditd 收集權限指令 (rmmod) 的使用資訊 傳遞
4.1.3.20 讓 auditd 設定不可變更 傳遞
4.1.4.1 系統稽核記錄的模式必須為 0640 或更嚴格 傳遞
4.1.4.2 系統稽核記錄必須由根目錄擁有 傳遞
4.1.4.3 系統稽核記錄必須由根目錄擁有的群組 傳遞
4.1.4.4 系統稽核記錄的模式必須為 0750 或更嚴格 傳遞
4.1.4.5 驗證 /etc/audit/auditd.conf 的權限 傳遞
4.1.4.5 驗證 /etc/audit/rules.d/*.rules 的權限 傳遞
4.1.4.6 稽核設定檔必須由根目錄擁有 傳遞
4.1.4.7 稽核設定檔必須由群組根目錄擁有 傳遞
4.1.4.8 確認稽核工具的模式為 0755 以下 傳遞
4.1.4.9 確認稽核工具是否由根目錄擁有 傳遞
4.1.4.10 確認稽核工具是否由群組根目錄擁有 傳遞
4.2.1.1.1 安裝 systemd-journal-remote 套件 傳遞
4.2.1.1.4 停用 systemd-journal-remote Socket 傳遞
4.2.1.2 啟用 systemd-journald 服務 傳遞
4.2.1.3 確認 journald 已設定為壓縮大型記錄檔 傳遞
4.2.1.4 確認 journald 已設定為將記錄檔寫入永久磁碟 傳遞
4.2.2.1 確認已安裝 rsyslog 傳遞
4.2.2.2 啟用 rsyslog 服務 傳遞
4.2.2.4 確認已設定 rsyslog 預設檔案權限 傳遞
4.2.2.7 除非做為記錄伺服器,否則請確保 rsyslog 不接受遠端訊息 傳遞
5.1.1 啟用 Cron 服務 傳遞
5.1.2 驗證擁有 Crontab 的群組 傳遞
5.1.2 在 crontab 上驗證擁有者 傳遞
5.1.2 驗證 crontab 的權限 傳遞
5.1.3 驗證擁有 cron.hourly 的群組 傳遞
5.1.3 在 cron.hourly 驗證擁有者 傳遞
5.1.3 驗證 cron.hourly 的權限 傳遞
5.1.4 驗證 cron.daily 的擁有群組 傳遞
5.1.4 在 cron.daily 上驗證擁有者 傳遞
5.1.4 驗證 cron.daily 的權限 傳遞
5.1.5 驗證 cron.weekly 的擁有者群組 傳遞
5.1.5 在 cron.weekly 驗證擁有權 傳遞
5.1.5 驗證 cron.weekly 的權限 傳遞
5.1.6 驗證擁有 cron.monthly 的群組 傳遞
5.1.6 在 cron.monthly 驗證擁有者 傳遞
5.1.6 驗證 cron.monthly 的權限 傳遞
5.1.7 驗證擁有 cron.d 的群組 傳遞
5.1.7 驗證 cron.d 的擁有者 傳遞
5.1.7 驗證 cron.d 的權限 傳遞
5.1.8 確認 /etc/cron.deny 不存在 傳遞
5.1.8 驗證擁有 /etc/cron.allow 檔案的群組 傳遞
5.1.8 驗證 /etc/cron.allow 檔案的權限 傳遞
5.1.8 驗證擁有 /etc/cron.allow 檔案的使用者 傳遞
5.1.9 確認 /etc/at.deny 不存在 傳遞
5.1.9 驗證擁有 /etc/at.allow 檔案的群組 傳遞
5.1.9 驗證 /etc/at.allow 檔案的權限 傳遞
5.1.9 驗證擁有 /etc/at.allow 檔案的使用者 傳遞
5.2.1 確認擁有 SSH 伺服器設定檔的群組 傳遞
5.2.1 確認 SSH 伺服器設定檔的擁有者 傳遞
5.2.1 驗證 SSH 伺服器設定檔的權限 傳遞
5.2.2 驗證安全殼層伺服器私密 *_key 金鑰檔案的權限 傳遞
5.2.3 驗證安全殼層伺服器公開 *.pub 金鑰檔案的權限 傳遞
5.2.5 將 LogLevel 設為 INFO 傳遞
5.2.6 啟用 PAM 傳遞
5.2.7 停用 SSH 根登入 傳遞
5.2.8 停用主機驗證 傳遞
5.2.9 停用透過空白密碼進行的 SSH 存取 傳遞
5.2.10 不允許使用 SSH 環境選項 傳遞
5.2.11 停用 .rhosts 檔案的 SSH 支援 傳遞
5.2.12 停用 X11 轉送 傳遞
5.2.13 僅使用高強度密碼 傳遞
5.2.14 只使用強 MAC 傳遞
5.2.15 僅使用高強度金鑰交換演算法 傳遞
5.2.16 停用 SSH TCP 轉送 傳遞
5.2.17 啟用 SSH 警告橫幅 傳遞
5.2.18 設定 SSH 驗證嘗試次數上限 傳遞
5.2.19 確認已設定 SSH MaxStartups 傳遞
5.2.20 設定 SSH MaxSessions 限制 傳遞
5.2.21 確認已設定 SSH LoginGraceTime 傳遞
5.2.22 設定 SSH 用戶端存留計數上限 傳遞
5.2.22 設定 SSH 用戶端存留間隔 傳遞
5.3.1 安裝 sudo 套件 傳遞
5.3.2 確保只有登入實際 tty 的使用者可以執行 Sudo - sudo use_pty 傳遞
5.3.3 確認 Sudo 記錄檔存在 - sudo logfile 傳遞
5.3.5 確保使用者重新驗證以提升權限 - sudo !authenticate 傳遞
5.3.6 使用 sudo 指令時要求重新驗證 傳遞
5.3.7 強制使用 pam_wheel 和群組參數進行 su 驗證 傳遞
5.3.7 確認系統上存在 pam_wheel 模組使用的群組,且該群組為空 傳遞
5.4.1 確保 PAM 強制執行密碼規定 - 允許每個工作階段的驗證重試提示 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 最少不同類別 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 最少位數 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 長度下限 傳遞
5.4.1 確保 PAM 強制執行密碼規定 - 小寫字元下限 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 特殊字元下限 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 大寫字元下限 傳遞
5.4.1 安裝 pam_pwquality 套件 傳遞
5.4.2 密碼輸入錯誤次數達到指定值時鎖定帳戶 傳遞
5.4.2 設定計算密碼輸入錯誤次數的時間間隔 傳遞
5.4.2 設定密碼輸入錯誤次數上限 傳遞
5.4.3 限制重複使用密碼 傳遞
5.4.4 在 /etc/login.defs 中設定密碼雜湊演算法 傳遞
5.5.1.1 設定現有密碼的最低使用時間 傳遞
5.5.1.1 設定密碼最短使用時間 傳遞
5.5.1.2 設定現有密碼的有效期限 傳遞
5.5.1.3 設定密碼警告期限 傳遞
5.5.1.4 設定帳戶在閒置一段時間後失效 傳遞
5.5.1.5 確認所有使用者上次變更密碼的日期都在過去 傳遞
5.5.2 確保系統帳戶不會在登入時執行 Shell 傳遞
5.5.3 確認根目錄具有主要 GID 0 傳遞
5.5.4 確認預設 Bash Umask 設定正確無誤 傳遞
5.5.4 確認互動式使用者的預設 Umask 設定正確無誤 傳遞
5.5.4 確認 /etc/profile 中的預設 Umask 設定正確 傳遞
5.5.4 確認 login.defs 中的預設 Umask 設定正確無誤 傳遞
5.5.5 設定互動工作階段逾時 傳遞
6.1.1 驗證擁有 passwd 檔案的群組 傳遞
6.1.1 驗證 passwd 檔案的權限 傳遞
6.1.1 驗證 passwd 檔案的擁有者 傳遞
6.1.2 驗證擁有備份 passwd 檔案的群組 傳遞
6.1.2 驗證備份 passwd 檔案的權限 傳遞
6.1.2 驗證備份 passwd 檔案的擁有者 傳遞
6.1.3 驗證擁有群組檔案的群組 傳遞
6.1.3 確認群組檔案的權限 傳遞
6.1.3 驗證群組檔案擁有者 傳遞
6.1.4 確認備份群組檔案的擁有者群組 傳遞
6.1.4 確認備份群組檔案的權限 傳遞
6.1.4 驗證備份群組檔案的擁有者 傳遞
6.1.5 驗證擁有影子檔案的群組 傳遞
6.1.5 驗證影子檔案的權限 傳遞
6.1.5 驗證擁有影子檔案的使用者 傳遞
6.1.6 驗證擁有備份陰影檔案的群組 傳遞
6.1.6 確認備份陰影檔案的權限 傳遞
6.1.6 驗證備份陰影檔案的擁有者 傳遞
6.1.7 驗證擁有 gshadow 檔案的群組 傳遞
6.1.7 驗證 gshadow 檔案的權限 傳遞
6.1.7 驗證擁有 gshadow 檔案的使用者 傳遞
6.1.8 確認擁有備份 gshadow 檔案的群組 傳遞
6.1.8 驗證備份 gshadow 檔案的權限 傳遞
6.1.8 驗證備份 gshadow 檔案的擁有者 傳遞
6.1.10 確保所有檔案都歸使用者所有 傳遞
6.2.1 確認所有帳戶密碼雜湊都已遮蔽 傳遞
6.2.2 確認沒有帳戶的密碼為空白或空值 傳遞
6.2.3 /etc/passwd 中參照的所有 GID 都必須在 /etc/group 中定義 傳遞
6.2.4 確認影子群組為空 傳遞
6.2.5 確認系統中的所有帳戶都有專屬使用者 ID 傳遞
6.2.6 確認系統中的所有群組都有專屬群組 ID 傳遞
6.2.7 確保系統中的所有帳戶都有專屬名稱 傳遞
6.2.8 確保系統上的所有群組都有專屬群組名稱 傳遞
6.2.9 確認根路徑不含相對路徑或空目錄 不明 傳遞
6.2.9 確認根路徑不包含可供世界或群組寫入的目錄 傳遞
6.2.10 僅驗證根目錄是否具有 UID 0 傳遞
6.2.11 所有互動式使用者的主目錄都必須存在 傳遞
6.2.12 所有互動式使用者主目錄都必須由主要群組擁有 傳遞
6.2.12 所有互動式使用者主目錄都必須由主要使用者擁有 傳遞
6.2.13 所有互動式使用者主目錄都必須採用 0750 模式或寬鬆程度較低的模式 傳遞
6.2.14 確認沒有 netrc 檔案 傳遞
6.2.15 確認沒有 .forward 檔案 傳遞
6.2.16 移除 Rsh 信任檔案 傳遞
6.2.17 使用者初始化檔案必須由主要群組擁有 傳遞
6.2.17 使用者初始化檔案必須由主要使用者擁有 傳遞
6.2.17 使用者初始化檔案不得執行可供全域寫入的程式 傳遞

不適用的建議

下表列出不適用於 Google Distributed Cloud 的建議。

# 建議 嚴重性 狀態
1.1.2.2 將 nodev 選項新增至 /tmp notapplicable
1.1.2.3 在 /tmp 中新增 noexec 選項 notapplicable
1.1.2.4 在 /tmp 中新增 nosuid 選項 notapplicable
1.1.3.2 在 /var 中新增 nodev 選項 notapplicable
1.1.3.3 在 /var 中新增 nosuid 選項 notapplicable
1.1.4.2 在 /var/tmp 中新增 noexec 選項 notapplicable
1.1.4.3 在 /var/tmp 中新增 nosuid 選項 notapplicable
1.1.4.4 將 nodev 選項新增至 /var/tmp notapplicable
1.1.5.2 在 /var/log 中新增 nodev 選項 notapplicable
1.1.5.3 在 /var/log 中新增 noexec 選項 notapplicable
1.1.5.4 在 /var/log 中新增 nosuid 選項 notapplicable
1.1.6.2 在 /var/log/audit 中新增 noexec 選項 notapplicable
1.1.6.3 將 nodev 選項新增至 /var/log/audit notapplicable
1.1.6.4 將 nosuid 選項新增至 /var/log/audit notapplicable
1.1.7.2 將 nodev 選項新增至 /home 不明 notapplicable
1.1.7.3 在 /home 中新增 nosuid 選項 notapplicable
1.10 設定 GNOME3 DConf 使用者設定檔 notapplicable
1.4.1 設定 UEFI 開機載入程式密碼 notapplicable
1.8.1 移除 GDM 檔案包群組 notapplicable
1.8.10 在 GDM 中停用 XDMCP notapplicable
1.8.4 啟用 GNOME3 螢幕保護程式,在閒置一段時間後鎖定螢幕 notapplicable
1.8.5 設定 GNOME3 螢幕保護程式在啟動時間過後鎖定裝置的延遲時間 notapplicable
1.8.6 停用 GNOME3 自動掛接開啟功能 notapplicable
1.8.6 停用 GNOME3 自動掛接功能 notapplicable
1.8.8 停用 GNOME3 自動掛接功能 notapplicable
2.1.4.1 設定 ntpd 的伺服器限制 notapplicable
2.1.4.3 設定 ntpd 以 ntp 使用者身分執行 notapplicable
2.1.4.4 啟用 NTP Daemon notapplicable
2.2.15 停用 Postfix 網路監聽 notapplicable
3.5.1.3 確認 ufw 已啟用 notapplicable
3.5.1.4 設定 UFW 迴路流量 notapplicable
3.5.1.6 確認所有開啟的通訊埠都有 ufw 防火牆規則 notapplicable
3.5.1.7 確保 ufw 預設拒絕防火牆政策 notapplicable
3.5.3.2.1 設定傳入封包的預設 iptables 政策 notapplicable
3.5.3.2.2 設定迴路流量 notapplicable
3.5.3.2.4 確認所有開啟的通訊埠都有 iptables 防火牆規則 notapplicable
3.5.3.3.1 設定傳入封包的預設 ip6tables 政策 notapplicable
3.5.3.3.4 確認所有開啟的通訊埠都有 ip6tables 防火牆規則 notapplicable

1.31

版本

本節適用於下列版本:

Google Distributed Cloud 版本 Ubuntu 版本 CIS Ubuntu 基準版本 CIS 層級
1.31 22.04 LTS 1.0.0 版 第 2 級伺服器

無法套用建議

下表列出 Google Distributed Cloud 偏離基準建議的建議事項。這些發現適用於叢集節點和管理員工作站。

# 建議 嚴重性 狀態
1.1.2.1 確保 /tmp 位於獨立分區 失敗
1.1.3.1 確認 /var 位於獨立分區 失敗
1.1.4.1 確認 /var/tmp 位於獨立分區 失敗
1.1.5.1 確認 /var/log 位於獨立分區 失敗
1.1.6.1 確保 /var/log/audit 位於獨立分區 失敗
1.1.7.1 確認 /home 位於獨立分區 失敗
1.4.1 在 grub2 中設定系統啟動載入程式密碼 失敗
1.4.3 確保單一使用者模式需要驗證 失敗
2.3.6 解除安裝 rpcbind 套件 失敗
3.2.2 停用 IPv4 介面上 IP 轉送的 Kernel 參數 失敗
3.3.7 啟用核心參數,預設在所有 IPv4 介面上使用反向路徑篩選 失敗
3.3.7 啟用核心參數,在所有 IPv4 介面上使用反向路徑篩選 失敗
3.5.2.8 確保 nftables 預設拒絕防火牆政策 失敗
3.5.2.10 確保 nftables 規則是永久規則 失敗
4.2.3 確認記錄檔的權限 失敗
5.2.4 限制使用者的 SSH 存取權 不明 失敗
5.3.4 確保使用者重新驗證權限提升 - sudo 失敗
5.5.1.2 設定密碼有效期限 失敗

已通過的建議

下表列出 Google Distributed Cloud 遵循基準建議的建議事項。

# 建議 嚴重性 狀態
1.1.1.1 停用 cramfs 掛載功能 傳遞
1.1.1.2 停用 squashfs 掛載功能 傳遞
1.1.1.3 停用 UDF 掛載功能 傳遞
1.1.8.1 將 nodev 選項新增至 /dev/shm 傳遞
1.1.8.2 在 /dev/shm 中新增 noexec 選項 傳遞
1.1.8.3 在 /dev/shm 中新增 nosuid 選項 傳遞
1.1.9 停用 Automounter 傳遞
1.1.10 停用 USB 儲存裝置驅動程式的 Modprobe 載入功能 傳遞
1.4.2 驗證 /boot/grub/grub.cfg 權限 傳遞
1.5.1 啟用虛擬位址空間隨機配置 傳遞
1.5.2 不得安裝「prelink」套件 傳遞
1.5.3 停用 Apport 服務 不明 傳遞
1.5.4 為所有使用者停用核心傾印 傳遞
1.5.4 停用 SUID 程式的 Core Dump 傳遞
1.6.1.1 確認已安裝 AppArmor 傳遞
1.6.1.2 確認系統啟動載入程式設定已啟用 AppArmor 傳遞
1.6.1.4 強制執行所有 AppArmor 設定檔 傳遞
1.7.1 修改系統每日訊息橫幅 傳遞
1.7.2 修改系統登入橫幅 傳遞
1.7.3 修改遠端連線的系統登入橫幅 傳遞
1.7.4 驗證每日訊息橫幅的群組擁有權 傳遞
1.7.4 驗證每日訊息橫幅擁有權 傳遞
1.7.4 驗證每日訊息橫幅的權限 傳遞
1.7.5 驗證系統登入橫幅的群組擁有權 傳遞
1.7.5 驗證系統登入橫幅的擁有權 傳遞
1.7.5 確認系統登入橫幅上的權限 傳遞
1.7.6 驗證遠端連線的系統登入橫幅群組擁有權 傳遞
1.7.6 驗證遠端連線的系統登入橫幅擁有權 傳遞
1.7.6 確認遠端連線的系統登入橫幅權限 傳遞
2.1.1.1 安裝 systemd_timesyncd 服務 傳遞
2.1.3.2 啟用 systemd_timesyncd 服務 傳遞
2.2.1 移除 X Windows 套件群組 傳遞
2.2.2 停用 Avahi 伺服器軟體 傳遞
2.2.2 解除安裝 avahi 伺服器套件 傳遞
2.2.3 停用 CUPS 服務 不明 傳遞
2.2.3 解除安裝 CUPS 套件 不明 傳遞
2.2.4 解除安裝 DHCP 伺服器套件 傳遞
2.2.5 解除安裝 openldap-servers 套件 傳遞
2.2.6 解除安裝 nfs-kernel-server 套件 傳遞
2.2.7 解除安裝繫結套件 傳遞
2.2.8 解除安裝 vsftpd 套件 傳遞
2.2.9 解除安裝 httpd 套件 不明 傳遞
2.2.9 解除安裝 nginx 套件 不明 傳遞
2.2.10 解除安裝 cyrus-imapd 套件 不明 傳遞
2.2.10 解除安裝 dovecot 套件 不明 傳遞
2.2.11 解除安裝 Samba 套件 不明 傳遞
2.2.12 解除安裝 squid 套件 不明 傳遞
2.2.13 解除安裝 net-snmp 套件 不明 傳遞
2.2.14 解除安裝 nis 套件 傳遞
2.2.15 確認郵件傳輸代理程式未監聽任何非迴路位址 傳遞
2.2.16 解除安裝 rsync 套件 傳遞
2.3.2 解除安裝 rsh 套件 不明 傳遞
2.3.3 解除安裝 Talk 套件 傳遞
2.3.4 移除 Telnet 用戶端 傳遞
2.3.5 確認未安裝 LDAP 用戶端 傳遞
3.1.2 停用無線網路介面 傳遞
3.2.1 預設停用在所有 IPv4 介面上傳送 ICMP 重新導向的 Kernel 參數 傳遞
3.2.1 在所有 IPv4 介面上停用傳送 ICMP 重新導向的 Kernel 參數 傳遞
3.2.2 停用 IPv6 轉送的核心參數 傳遞
3.3.1 在所有 IPv4 介面上停用核心參數,以接受來源路由封包 傳遞
3.3.1 在所有 IPv6 介面上停用核心參數,以接受來源路由封包 傳遞
3.3.1 預設停用核心參數,以接受 IPv4 介面上的來源路由封包 傳遞
3.3.1 預設停用核心參數,以在 IPv6 介面上接受來源路由封包 傳遞
3.3.2 停用所有 IPv4 介面的 ICMP 重新導向接受功能 傳遞
3.3.2 停用所有 IPv6 介面的 ICMP 重新導向接受功能 傳遞
3.3.2 在 IPv4 介面上,停用預設接受 ICMP 重新導向的 Kernel 參數 傳遞
3.3.2 在 IPv6 介面上,預設停用接受 ICMP 重新導向的 Kernel 參數 傳遞
3.3.3 設定核心參數,預設接受安全重新導向 傳遞
3.3.3 在所有 IPv4 介面上停用 Kernel 參數,以接受安全 ICMP 重新導向 傳遞
3.3.4 在所有 IPv4 介面上啟用核心參數,記錄火星封包 不明 傳遞
3.3.4 根據預設,啟用核心參數,在所有 IPv4 介面上記錄火星封包 不明 傳遞
3.3.5 啟用核心參數,忽略 IPv4 介面上的 ICMP 廣播回應要求 傳遞
3.3.6 啟用核心參數,忽略 IPv4 介面上的錯誤 ICMP 錯誤回應 不明 傳遞
3.3.8 啟用核心參數,在網路介面上使用 TCP 同步 Cookie 傳遞
3.3.9 在所有 IPv6 介面上設定接受路由器通告 傳遞
3.3.9 預設停用所有 IPv6 介面上的路由器通告 傳遞
3.4.1 停用 DCCP 支援 傳遞
3.4.2 停用 SCTP 支援 傳遞
3.4.3 停用 RDS 支援 傳遞
3.4.4 停用 TIPC 支援 傳遞
3.5.1.2 移除 iptables-persistent 套件 傳遞
3.5.2.1 安裝 nftables 套件 傳遞
3.5.2.4 確認 Nftables 有資料表 傳遞
3.5.2.5 確認 Nftables 是否有基本鏈 傳遞
3.5.2.9 確認 nftables 服務已啟用 傳遞
3.5.3.1.1 安裝 iptables 套件 傳遞
3.5.3.1.3 移除 ufw 套件 傳遞
4.1.1.1 確認已安裝稽核子系統 傳遞
4.1.1.2 啟用 auditd 服務 傳遞
4.1.1.4 延長稽核 Daemon 的稽核待處理事項限制 傳遞
4.1.2.1 設定 auditd 記錄檔大小上限 傳遞
4.1.2.2 設定 auditd max_log_file_action,在達到記錄檔大小上限時執行動作 傳遞
4.1.2.3 設定磁碟空間不足時的 auditd admin_space_left 動作 傳遞
4.1.2.3 在磁碟空間不足時設定 auditd mail_acct 動作 傳遞
4.1.2.3 設定磁碟空間不足時的 auditd space_left 動作 傳遞
4.1.3.1 確保 auditd 收集系統管理員動作 傳遞
4.1.3.2 在執行具特殊權限的可執行檔時記錄事件 傳遞
4.1.3.3 記錄嘗試執行維護活動的次數 傳遞
4.1.3.4 記錄變更 localtime 檔案的嘗試 傳遞
4.1.3.4 記錄透過 adjtimex 變更時間的嘗試 傳遞
4.1.3.4 記錄透過 clock_settime 變更時間的嘗試 傳遞
4.1.3.4 記錄透過 settimeofday 變更時間的嘗試 傳遞
4.1.3.4 嘗試透過 stime 變更時間的記錄 傳遞
4.1.3.5 記錄會修改系統網路環境的事件 傳遞
4.1.3.6 確保 auditd 收集權限指令 (su) 的使用資訊 傳遞
4.1.3.6 確保 auditd 收集權限指令 (sudo) 的使用資訊 傳遞
4.1.3.6 確保 auditd 收集有關使用權限指令 (sudoedit) 的資訊 傳遞
4.1.3.6 確保 auditd 收集使用權限指令 (umount) 的相關資訊 傳遞
4.1.3.6 確保 auditd 收集有關使用具備特殊權限指令的資訊 - unix_chkpwd 傳遞
4.1.3.7 記錄檔案存取嘗試失敗的次數 - creat 傳遞
4.1.3.7 記錄檔案的存取嘗試失敗次數 - ftruncate 傳遞
4.1.3.7 記錄檔案存取嘗試失敗的事件 - 開啟 傳遞
4.1.3.7 記錄檔案存取嘗試失敗的事件 - openat 傳遞
4.1.3.7 記錄檔案存取嘗試失敗的次數 - 截斷 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/group 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/gshadow 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/passwd 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/security/opasswd 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/shadow 傳遞
4.1.3.9 記錄修改系統任意存取控制項目的事件 - chmod 傳遞
4.1.3.9 記錄修改系統任意存取控制項的事件 - chown 傳遞
4.1.3.9 記錄會修改系統任意存取控制項的事件 - fchmod 傳遞
4.1.3.9 記錄修改系統任意存取控制項的事件 - fchmodat 傳遞
4.1.3.9 記錄會修改系統任意存取控制項的事件 - fchown 傳遞
4.1.3.9 記錄會修改系統任意存取控制項的事件 - fchownat 傳遞
4.1.3.9 記錄會修改系統任意存取控制項的事件 - fremovexattr 傳遞
4.1.3.9 記錄修改系統任意存取控制項的事件 - fsetxattr 傳遞
4.1.3.9 記錄修改系統任意存取控制項的事件 - lchown 傳遞
4.1.3.9 記錄會修改系統任意存取權控管的事件 - lremovexattr 傳遞
4.1.3.9 記錄修改系統任意存取權控管的事件 - lsetxattr 傳遞
4.1.3.9 記錄會修改系統任意存取權控管的事件 - removexattr 傳遞
4.1.3.9 記錄會修改系統任意存取權控管的事件 - setxattr 傳遞
4.1.3.10 確認 auditd 會收集匯出至媒體的資訊 (成功) 傳遞
4.1.3.11 記錄嘗試變更程序和會話啟動資訊的行為 傳遞
4.1.3.12 記錄嘗試變更登入和登出事件的行為 - faillog 傳遞
4.1.3.12 記錄嘗試變更登入和登出事件的行為 - lastlog 傳遞
4.1.3.12 記錄嘗試變更登入和登出事件的行為 - tallylog 傳遞
4.1.3.13 確保 auditd 會收集使用者刪除檔案的事件 - 重新命名 傳遞
4.1.3.13 確保 auditd 會收集使用者刪除檔案的事件 - renameat 傳遞
4.1.3.13 確保 auditd 會收集使用者刪除檔案的事件 - 取消連結 傳遞
4.1.3.13 確保 auditd 會收集使用者刪除檔案的事件 - unlinkat 傳遞
4.1.3.14 記錄會修改系統強制存取控制項的事件 傳遞
4.1.3.15 記錄任何執行 chcon 的嘗試 傳遞
4.1.3.16 記錄任何執行 setfacl 的嘗試 傳遞
4.1.3.17 記錄任何執行 chacl 的嘗試 傳遞
4.1.3.18 確保 auditd 收集權限指令的使用資訊 - usermod 傳遞
4.1.3.19 確保 auditd 收集核心模組載入 (init_module) 的相關資訊 傳遞
4.1.3.19 確保 auditd 會收集核心模組卸載資訊 - delete_module 傳遞
4.1.3.19 確保 auditd 收集權限指令的使用資訊 - insmod 傳遞
4.1.3.19 確保 auditd 收集權限指令的使用資訊 - modprobe 傳遞
4.1.3.19 確保 auditd 收集權限指令 (rmmod) 的使用資訊 傳遞
4.1.3.20 讓 auditd 設定不可變更 傳遞
4.1.4.1 系統稽核記錄的模式必須為 0640 或更嚴格 傳遞
4.1.4.2 系統稽核記錄必須由根目錄擁有 傳遞
4.1.4.3 系統稽核記錄必須由根目錄擁有的群組 傳遞
4.1.4.4 系統稽核記錄的模式必須為 0750 或更嚴格 傳遞
4.1.4.5 驗證 /etc/audit/auditd.conf 的權限 傳遞
4.1.4.5 驗證 /etc/audit/rules.d/*.rules 的權限 傳遞
4.1.4.6 稽核設定檔必須由根目錄擁有 傳遞
4.1.4.7 稽核設定檔必須由群組根目錄擁有 傳遞
4.1.4.8 確認稽核工具的模式為 0755 以下 傳遞
4.1.4.9 確認稽核工具是否由根目錄擁有 傳遞
4.1.4.10 確認稽核工具是否由群組根目錄擁有 傳遞
4.2.1.1.1 安裝 systemd-journal-remote 套件 傳遞
4.2.1.1.4 停用 systemd-journal-remote Socket 傳遞
4.2.1.2 啟用 systemd-journald 服務 傳遞
4.2.1.3 確認 journald 已設定為壓縮大型記錄檔 傳遞
4.2.1.4 確認 journald 已設定為將記錄檔寫入永久磁碟 傳遞
4.2.2.1 確認已安裝 rsyslog 傳遞
4.2.2.2 啟用 rsyslog 服務 傳遞
4.2.2.4 確認已設定 rsyslog 預設檔案權限 傳遞
4.2.2.7 除非做為記錄伺服器,否則請確保 rsyslog 不接受遠端訊息 傳遞
5.1.1 啟用 Cron 服務 傳遞
5.1.2 驗證擁有 Crontab 的群組 傳遞
5.1.2 在 crontab 上驗證擁有者 傳遞
5.1.2 驗證 crontab 的權限 傳遞
5.1.3 驗證擁有 cron.hourly 的群組 傳遞
5.1.3 在 cron.hourly 驗證擁有者 傳遞
5.1.3 驗證 cron.hourly 的權限 傳遞
5.1.4 驗證 cron.daily 的擁有群組 傳遞
5.1.4 在 cron.daily 上驗證擁有者 傳遞
5.1.4 驗證 cron.daily 的權限 傳遞
5.1.5 驗證 cron.weekly 的擁有者群組 傳遞
5.1.5 在 cron.weekly 驗證擁有權 傳遞
5.1.5 驗證 cron.weekly 的權限 傳遞
5.1.6 驗證擁有 cron.monthly 的群組 傳遞
5.1.6 在 cron.monthly 驗證擁有者 傳遞
5.1.6 驗證 cron.monthly 的權限 傳遞
5.1.7 驗證擁有 cron.d 的群組 傳遞
5.1.7 驗證 cron.d 的擁有者 傳遞
5.1.7 驗證 cron.d 的權限 傳遞
5.1.8 確認 /etc/cron.deny 不存在 傳遞
5.1.8 驗證擁有 /etc/cron.allow 檔案的群組 傳遞
5.1.8 驗證 /etc/cron.allow 檔案的權限 傳遞
5.1.8 驗證擁有 /etc/cron.allow 檔案的使用者 傳遞
5.1.9 確認 /etc/at.deny 不存在 傳遞
5.1.9 驗證擁有 /etc/at.allow 檔案的群組 傳遞
5.1.9 驗證 /etc/at.allow 檔案的權限 傳遞
5.1.9 驗證擁有 /etc/at.allow 檔案的使用者 傳遞
5.2.1 確認擁有 SSH 伺服器設定檔的群組 傳遞
5.2.1 確認 SSH 伺服器設定檔的擁有者 傳遞
5.2.1 驗證 SSH 伺服器設定檔的權限 傳遞
5.2.2 驗證安全殼層伺服器私密 *_key 金鑰檔案的權限 傳遞
5.2.3 驗證安全殼層伺服器公開 *.pub 金鑰檔案的權限 傳遞
5.2.5 將 LogLevel 設為 INFO 傳遞
5.2.6 啟用 PAM 傳遞
5.2.7 停用 SSH 根登入 傳遞
5.2.8 停用主機驗證 傳遞
5.2.9 停用透過空白密碼進行的 SSH 存取 傳遞
5.2.10 不允許使用 SSH 環境選項 傳遞
5.2.11 停用 .rhosts 檔案的 SSH 支援 傳遞
5.2.12 停用 X11 轉送 傳遞
5.2.13 僅使用高強度密碼 傳遞
5.2.14 只使用強 MAC 傳遞
5.2.15 僅使用高強度金鑰交換演算法 傳遞
5.2.16 停用 SSH TCP 轉送 傳遞
5.2.17 啟用 SSH 警告橫幅 傳遞
5.2.18 設定 SSH 驗證嘗試次數上限 傳遞
5.2.19 確認已設定 SSH MaxStartups 傳遞
5.2.20 設定 SSH MaxSessions 限制 傳遞
5.2.21 確認已設定 SSH LoginGraceTime 傳遞
5.2.22 設定 SSH 用戶端存留計數上限 傳遞
5.2.22 設定 SSH 用戶端存留間隔 傳遞
5.3.1 安裝 sudo 套件 傳遞
5.3.2 確保只有登入實際 tty 的使用者可以執行 Sudo - sudo use_pty 傳遞
5.3.3 確認 Sudo 記錄檔存在 - sudo logfile 傳遞
5.3.5 確保使用者重新驗證以提升權限 - sudo !authenticate 傳遞
5.3.6 使用 sudo 指令時要求重新驗證 傳遞
5.3.7 強制使用 pam_wheel 和群組參數進行 su 驗證 傳遞
5.3.7 確認系統上存在 pam_wheel 模組使用的群組,且該群組為空 傳遞
5.4.1 確保 PAM 強制執行密碼規定 - 允許每個工作階段的驗證重試提示 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 最少不同類別 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 最少位數 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 長度下限 傳遞
5.4.1 確保 PAM 強制執行密碼規定 - 小寫字元下限 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 特殊字元下限 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 大寫字元下限 傳遞
5.4.1 安裝 pam_pwquality 套件 傳遞
5.4.2 密碼輸入錯誤次數達到指定值時鎖定帳戶 傳遞
5.4.2 設定計算密碼輸入錯誤次數的時間間隔 傳遞
5.4.2 設定密碼輸入錯誤次數上限 傳遞
5.4.3 限制重複使用密碼 傳遞
5.4.4 在 /etc/login.defs 中設定密碼雜湊演算法 傳遞
5.5.1.1 設定現有密碼的最低使用時間 傳遞
5.5.1.1 設定密碼最短使用時間 傳遞
5.5.1.2 設定現有密碼的有效期限 傳遞
5.5.1.3 設定密碼警告期限 傳遞
5.5.1.4 設定帳戶在閒置一段時間後失效 傳遞
5.5.1.5 確認所有使用者上次變更密碼的日期都在過去 傳遞
5.5.2 確保系統帳戶不會在登入時執行 Shell 傳遞
5.5.3 確認根目錄具有主要 GID 0 傳遞
5.5.4 確認預設 Bash Umask 設定正確無誤 傳遞
5.5.4 確認互動式使用者的預設 Umask 設定正確無誤 傳遞
5.5.4 確認 /etc/profile 中的預設 Umask 設定正確 傳遞
5.5.4 確認 login.defs 中的預設 Umask 設定正確無誤 傳遞
5.5.5 設定互動工作階段逾時 傳遞
6.1.1 驗證擁有 passwd 檔案的群組 傳遞
6.1.1 驗證 passwd 檔案的權限 傳遞
6.1.1 驗證 passwd 檔案的擁有者 傳遞
6.1.2 驗證擁有備份 passwd 檔案的群組 傳遞
6.1.2 驗證備份 passwd 檔案的權限 傳遞
6.1.2 驗證備份 passwd 檔案的擁有者 傳遞
6.1.3 驗證擁有群組檔案的群組 傳遞
6.1.3 確認群組檔案的權限 傳遞
6.1.3 驗證群組檔案擁有者 傳遞
6.1.4 確認備份群組檔案的擁有者群組 傳遞
6.1.4 確認備份群組檔案的權限 傳遞
6.1.4 驗證備份群組檔案的擁有者 傳遞
6.1.5 驗證擁有影子檔案的群組 傳遞
6.1.5 驗證影子檔案的權限 傳遞
6.1.5 驗證擁有影子檔案的使用者 傳遞
6.1.6 驗證擁有備份陰影檔案的群組 傳遞
6.1.6 確認備份陰影檔案的權限 傳遞
6.1.6 驗證備份陰影檔案的擁有者 傳遞
6.1.7 驗證擁有 gshadow 檔案的群組 傳遞
6.1.7 驗證 gshadow 檔案的權限 傳遞
6.1.7 驗證擁有 gshadow 檔案的使用者 傳遞
6.1.8 確認擁有備份 gshadow 檔案的群組 傳遞
6.1.8 驗證備份 gshadow 檔案的權限 傳遞
6.1.8 驗證備份 gshadow 檔案的擁有者 傳遞
6.1.10 確保所有檔案都歸使用者所有 傳遞
6.2.1 確認所有帳戶密碼雜湊都已遮蔽 傳遞
6.2.2 確認沒有帳戶的密碼為空白或空值 傳遞
6.2.3 /etc/passwd 中參照的所有 GID 都必須在 /etc/group 中定義 傳遞
6.2.4 確認影子群組為空 傳遞
6.2.5 確認系統中的所有帳戶都有專屬使用者 ID 傳遞
6.2.6 確認系統中的所有群組都有專屬群組 ID 傳遞
6.2.7 確保系統中的所有帳戶都有專屬名稱 傳遞
6.2.8 確保系統上的所有群組都有專屬群組名稱 傳遞
6.2.9 確認根路徑不含相對路徑或空目錄 不明 傳遞
6.2.9 確認根路徑不包含可供世界或群組寫入的目錄 傳遞
6.2.10 僅驗證根目錄是否具有 UID 0 傳遞
6.2.11 所有互動式使用者的主目錄都必須存在 傳遞
6.2.12 所有互動式使用者主目錄都必須由主要群組擁有 傳遞
6.2.12 所有互動式使用者主目錄都必須由主要使用者擁有 傳遞
6.2.13 所有互動式使用者主目錄都必須採用 0750 模式或寬鬆程度較低的模式 傳遞
6.2.14 確認沒有 netrc 檔案 傳遞
6.2.15 確認沒有 .forward 檔案 傳遞
6.2.16 移除 Rsh 信任檔案 傳遞
6.2.17 使用者初始化檔案必須由主要群組擁有 傳遞
6.2.17 使用者初始化檔案必須由主要使用者擁有 傳遞
6.2.17 使用者初始化檔案不得執行可供全域寫入的程式 傳遞

不適用的建議

下表列出不適用於 Google Distributed Cloud 的建議。

# 建議 嚴重性 狀態
1.1.2.2 將 nodev 選項新增至 /tmp notapplicable
1.1.2.3 在 /tmp 中新增 noexec 選項 notapplicable
1.1.2.4 在 /tmp 中新增 nosuid 選項 notapplicable
1.1.3.2 在 /var 中新增 nodev 選項 notapplicable
1.1.3.3 在 /var 中新增 nosuid 選項 notapplicable
1.1.4.2 在 /var/tmp 中新增 noexec 選項 notapplicable
1.1.4.3 在 /var/tmp 中新增 nosuid 選項 notapplicable
1.1.4.4 將 nodev 選項新增至 /var/tmp notapplicable
1.1.5.2 在 /var/log 中新增 nodev 選項 notapplicable
1.1.5.3 在 /var/log 中新增 noexec 選項 notapplicable
1.1.5.4 在 /var/log 中新增 nosuid 選項 notapplicable
1.1.6.2 在 /var/log/audit 中新增 noexec 選項 notapplicable
1.1.6.3 將 nodev 選項新增至 /var/log/audit notapplicable
1.1.6.4 將 nosuid 選項新增至 /var/log/audit notapplicable
1.1.7.2 將 nodev 選項新增至 /home 不明 notapplicable
1.1.7.3 在 /home 中新增 nosuid 選項 notapplicable
1.4.1 設定 UEFI 開機載入程式密碼 notapplicable
1.8.1 移除 GDM 檔案包群組 notapplicable
1.8.4 啟用 GNOME3 螢幕保護程式,在閒置一段時間後鎖定螢幕 notapplicable
1.8.5 設定 GNOME3 螢幕保護程式在啟動時間過後鎖定裝置的延遲時間 notapplicable
1.8.6 停用 GNOME3 自動掛接開啟功能 notapplicable
1.8.6 停用 GNOME3 自動掛接功能 notapplicable
1.8.8 停用 GNOME3 自動掛接功能 notapplicable
1.8.10 在 GDM 中停用 XDMCP notapplicable
1.10 設定 GNOME3 DConf 使用者設定檔 notapplicable
2.1.4.1 設定 ntpd 的伺服器限制 notapplicable
2.1.4.3 設定 ntpd 以 ntp 使用者身分執行 notapplicable
2.1.4.4 啟用 NTP Daemon notapplicable
2.2.15 停用 Postfix 網路監聽 notapplicable
3.5.1.3 確認 ufw 已啟用 notapplicable
3.5.1.4 設定 UFW 迴路流量 notapplicable
3.5.1.6 確認所有開啟的通訊埠都有 ufw 防火牆規則 notapplicable
3.5.1.7 確保 ufw 預設拒絕防火牆政策 notapplicable
3.5.3.2.1 設定傳入封包的預設 iptables 政策 notapplicable
3.5.3.2.2 設定迴路流量 notapplicable
3.5.3.2.4 確認所有開啟的通訊埠都有 iptables 防火牆規則 notapplicable
3.5.3.3.1 設定傳入封包的預設 ip6tables 政策 notapplicable
3.5.3.3.4 確認所有開啟的通訊埠都有 ip6tables 防火牆規則 notapplicable

1.30

版本

本節適用於下列版本:

Google Distributed Cloud 版本 Ubuntu 版本 CIS Ubuntu 基準版本 CIS 層級
1.30 22.04 LTS 1.0.0 版 第 2 級伺服器

無法套用建議

下表列出 Google Distributed Cloud 偏離基準建議的建議事項。這些發現適用於叢集節點和管理員工作站。

# 建議 嚴重性 狀態
1.1.2.1 確保 /tmp 位於獨立分區 失敗
1.1.3.1 確認 /var 位於獨立分區 失敗
1.1.4.1 確認 /var/tmp 位於獨立分區 失敗
1.1.5.1 確認 /var/log 位於獨立分區 失敗
1.1.6.1 確保 /var/log/audit 位於獨立分區 失敗
1.1.7.1 確認 /home 位於獨立分區 失敗
1.4.1 在 grub2 中設定系統啟動載入程式密碼 失敗
1.4.3 確保單一使用者模式需要驗證 失敗
2.3.6 解除安裝 rpcbind 套件 失敗
3.2.2 停用 IPv4 介面上 IP 轉送的 Kernel 參數 失敗
3.3.7 啟用核心參數,預設在所有 IPv4 介面上使用反向路徑篩選 失敗
3.3.7 啟用核心參數,在所有 IPv4 介面上使用反向路徑篩選 失敗
3.5.2.8 確保 nftables 預設拒絕防火牆政策 失敗
3.5.2.10 確保 nftables 規則是永久規則 失敗
4.2.3 確認記錄檔的權限 失敗
5.2.4 限制使用者的 SSH 存取權 不明 失敗
5.3.4 確保使用者重新驗證權限提升 - sudo 失敗
5.5.1.2 設定密碼有效期限 失敗

已通過的建議

下表列出 Google Distributed Cloud 遵循基準建議的建議事項。

# 建議 嚴重性 狀態
1.1.1.1 停用 cramfs 掛載功能 傳遞
1.1.1.2 停用 squashfs 掛載功能 傳遞
1.1.1.3 停用 UDF 掛載功能 傳遞
1.1.8.1 將 nodev 選項新增至 /dev/shm 傳遞
1.1.8.2 在 /dev/shm 中新增 noexec 選項 傳遞
1.1.8.3 在 /dev/shm 中新增 nosuid 選項 傳遞
1.1.9 停用 Automounter 傳遞
1.1.10 停用 USB 儲存裝置驅動程式的 Modprobe 載入功能 傳遞
1.4.2 驗證 /boot/grub/grub.cfg 權限 傳遞
1.5.1 啟用虛擬位址空間隨機配置 傳遞
1.5.2 不得安裝「prelink」套件 傳遞
1.5.3 停用 Apport 服務 不明 傳遞
1.5.4 為所有使用者停用核心傾印 傳遞
1.5.4 停用 SUID 程式的 Core Dump 傳遞
1.6.1.1 確認已安裝 AppArmor 傳遞
1.6.1.2 確認系統啟動載入程式設定已啟用 AppArmor 傳遞
1.6.1.4 強制執行所有 AppArmor 設定檔 傳遞
1.7.1 修改系統每日訊息橫幅 傳遞
1.7.2 修改系統登入橫幅 傳遞
1.7.3 修改遠端連線的系統登入橫幅 傳遞
1.7.4 驗證每日訊息橫幅的群組擁有權 傳遞
1.7.4 驗證每日訊息橫幅擁有權 傳遞
1.7.4 驗證每日訊息橫幅的權限 傳遞
1.7.5 驗證系統登入橫幅的群組擁有權 傳遞
1.7.5 驗證系統登入橫幅的擁有權 傳遞
1.7.5 確認系統登入橫幅上的權限 傳遞
1.7.6 驗證遠端連線的系統登入橫幅群組擁有權 傳遞
1.7.6 驗證遠端連線的系統登入橫幅擁有權 傳遞
1.7.6 確認遠端連線的系統登入橫幅權限 傳遞
2.1.1.1 安裝 systemd_timesyncd 服務 傳遞
2.1.3.2 啟用 systemd_timesyncd 服務 傳遞
2.2.1 移除 X Windows 套件群組 傳遞
2.2.2 停用 Avahi 伺服器軟體 傳遞
2.2.2 解除安裝 avahi 伺服器套件 傳遞
2.2.3 停用 CUPS 服務 不明 傳遞
2.2.3 解除安裝 CUPS 套件 不明 傳遞
2.2.4 解除安裝 DHCP 伺服器套件 傳遞
2.2.5 解除安裝 openldap-servers 套件 傳遞
2.2.6 解除安裝 nfs-kernel-server 套件 傳遞
2.2.7 解除安裝繫結套件 傳遞
2.2.8 解除安裝 vsftpd 套件 傳遞
2.2.9 解除安裝 httpd 套件 不明 傳遞
2.2.9 解除安裝 nginx 套件 不明 傳遞
2.2.10 解除安裝 cyrus-imapd 套件 不明 傳遞
2.2.10 解除安裝 dovecot 套件 不明 傳遞
2.2.11 解除安裝 Samba 套件 不明 傳遞
2.2.12 解除安裝 squid 套件 不明 傳遞
2.2.13 解除安裝 net-snmp 套件 不明 傳遞
2.2.14 解除安裝 nis 套件 傳遞
2.2.15 確認郵件傳輸代理程式未監聽任何非迴路位址 傳遞
2.2.16 解除安裝 rsync 套件 傳遞
2.3.2 解除安裝 rsh 套件 不明 傳遞
2.3.3 解除安裝 Talk 套件 傳遞
2.3.4 移除 Telnet 用戶端 傳遞
2.3.5 確認未安裝 LDAP 用戶端 傳遞
3.1.2 停用無線網路介面 傳遞
3.2.1 預設停用在所有 IPv4 介面上傳送 ICMP 重新導向的 Kernel 參數 傳遞
3.2.1 在所有 IPv4 介面上停用傳送 ICMP 重新導向的 Kernel 參數 傳遞
3.2.2 停用 IPv6 轉送的核心參數 傳遞
3.3.1 在所有 IPv4 介面上停用核心參數,以接受來源路由封包 傳遞
3.3.1 在所有 IPv6 介面上停用核心參數,以接受來源路由封包 傳遞
3.3.1 預設停用核心參數,以接受 IPv4 介面上的來源路由封包 傳遞
3.3.1 預設停用核心參數,以在 IPv6 介面上接受來源路由封包 傳遞
3.3.2 停用所有 IPv4 介面的 ICMP 重新導向接受功能 傳遞
3.3.2 停用所有 IPv6 介面的 ICMP 重新導向接受功能 傳遞
3.3.2 在 IPv4 介面上,停用預設接受 ICMP 重新導向的 Kernel 參數 傳遞
3.3.2 在 IPv6 介面上,預設停用接受 ICMP 重新導向的 Kernel 參數 傳遞
3.3.3 設定核心參數,預設接受安全重新導向 傳遞
3.3.3 在所有 IPv4 介面上停用 Kernel 參數,以接受安全 ICMP 重新導向 傳遞
3.3.4 在所有 IPv4 介面上啟用核心參數,記錄火星封包 不明 傳遞
3.3.4 根據預設,啟用核心參數,在所有 IPv4 介面上記錄火星封包 不明 傳遞
3.3.5 啟用核心參數,忽略 IPv4 介面上的 ICMP 廣播回應要求 傳遞
3.3.6 啟用核心參數,忽略 IPv4 介面上的錯誤 ICMP 錯誤回應 不明 傳遞
3.3.8 啟用核心參數,在網路介面上使用 TCP 同步 Cookie 傳遞
3.3.9 在所有 IPv6 介面上設定接受路由器通告 傳遞
3.3.9 預設停用所有 IPv6 介面上的路由器通告 傳遞
3.4.1 停用 DCCP 支援 傳遞
3.4.2 停用 SCTP 支援 傳遞
3.4.3 停用 RDS 支援 傳遞
3.4.4 停用 TIPC 支援 傳遞
3.5.1.2 移除 iptables-persistent 套件 傳遞
3.5.2.1 安裝 nftables 套件 傳遞
3.5.2.4 確認 Nftables 有資料表 傳遞
3.5.2.5 確認 Nftables 是否有基本鏈 傳遞
3.5.2.9 確認 nftables 服務已啟用 傳遞
3.5.3.1.1 安裝 iptables 套件 傳遞
3.5.3.1.3 移除 ufw 套件 傳遞
4.1.1.1 確認已安裝稽核子系統 傳遞
4.1.1.2 啟用 auditd 服務 傳遞
4.1.1.4 延長稽核 Daemon 的稽核待處理事項限制 傳遞
4.1.2.1 設定 auditd 記錄檔大小上限 傳遞
4.1.2.2 設定 auditd max_log_file_action,在達到記錄檔大小上限時執行動作 傳遞
4.1.2.3 設定磁碟空間不足時的 auditd admin_space_left 動作 傳遞
4.1.2.3 在磁碟空間不足時設定 auditd mail_acct 動作 傳遞
4.1.2.3 設定磁碟空間不足時的 auditd space_left 動作 傳遞
4.1.3.1 確保 auditd 收集系統管理員動作 傳遞
4.1.3.2 在執行具特殊權限的可執行檔時記錄事件 傳遞
4.1.3.3 記錄嘗試執行維護活動的次數 傳遞
4.1.3.4 記錄變更 localtime 檔案的嘗試 傳遞
4.1.3.4 記錄透過 adjtimex 變更時間的嘗試 傳遞
4.1.3.4 記錄透過 clock_settime 變更時間的嘗試 傳遞
4.1.3.4 記錄透過 settimeofday 變更時間的嘗試 傳遞
4.1.3.4 嘗試透過 stime 變更時間的記錄 傳遞
4.1.3.5 記錄會修改系統網路環境的事件 傳遞
4.1.3.6 確保 auditd 收集權限指令 (su) 的使用資訊 傳遞
4.1.3.6 確保 auditd 收集權限指令 (sudo) 的使用資訊 傳遞
4.1.3.6 確保 auditd 收集有關使用權限指令 (sudoedit) 的資訊 傳遞
4.1.3.6 確保 auditd 收集使用權限指令 (umount) 的相關資訊 傳遞
4.1.3.6 確保 auditd 收集有關使用具備特殊權限指令的資訊 - unix_chkpwd 傳遞
4.1.3.7 記錄檔案存取嘗試失敗的次數 - creat 傳遞
4.1.3.7 記錄檔案的存取嘗試失敗次數 - ftruncate 傳遞
4.1.3.7 記錄檔案存取嘗試失敗的事件 - 開啟 傳遞
4.1.3.7 記錄檔案存取嘗試失敗的事件 - openat 傳遞
4.1.3.7 記錄檔案存取嘗試失敗的次數 - 截斷 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/group 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/gshadow 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/passwd 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/security/opasswd 傳遞
4.1.3.8 記錄修改使用者/群組資訊的事件 - /etc/shadow 傳遞
4.1.3.9 記錄修改系統任意存取控制項目的事件 - chmod 傳遞
4.1.3.9 記錄修改系統任意存取控制項的事件 - chown 傳遞
4.1.3.9 記錄會修改系統任意存取控制項的事件 - fchmod 傳遞
4.1.3.9 記錄修改系統任意存取控制項的事件 - fchmodat 傳遞
4.1.3.9 記錄會修改系統任意存取控制項的事件 - fchown 傳遞
4.1.3.9 記錄會修改系統任意存取控制項的事件 - fchownat 傳遞
4.1.3.9 記錄會修改系統任意存取控制項的事件 - fremovexattr 傳遞
4.1.3.9 記錄修改系統任意存取控制項的事件 - fsetxattr 傳遞
4.1.3.9 記錄修改系統任意存取控制項的事件 - lchown 傳遞
4.1.3.9 記錄會修改系統任意存取權控管的事件 - lremovexattr 傳遞
4.1.3.9 記錄修改系統任意存取權控管的事件 - lsetxattr 傳遞
4.1.3.9 記錄會修改系統任意存取權控管的事件 - removexattr 傳遞
4.1.3.9 記錄會修改系統任意存取權控管的事件 - setxattr 傳遞
4.1.3.10 確認 auditd 會收集匯出至媒體的資訊 (成功) 傳遞
4.1.3.11 記錄嘗試變更程序和會話啟動資訊的行為 傳遞
4.1.3.12 記錄嘗試變更登入和登出事件的行為 - faillog 傳遞
4.1.3.12 記錄嘗試變更登入和登出事件的行為 - lastlog 傳遞
4.1.3.12 記錄嘗試變更登入和登出事件的行為 - tallylog 傳遞
4.1.3.13 確保 auditd 會收集使用者刪除檔案的事件 - 重新命名 傳遞
4.1.3.13 確保 auditd 會收集使用者刪除檔案的事件 - renameat 傳遞
4.1.3.13 確保 auditd 會收集使用者刪除檔案的事件 - 取消連結 傳遞
4.1.3.13 確保 auditd 會收集使用者刪除檔案的事件 - unlinkat 傳遞
4.1.3.14 記錄會修改系統強制存取控制項的事件 傳遞
4.1.3.15 記錄任何執行 chcon 的嘗試 傳遞
4.1.3.16 記錄任何執行 setfacl 的嘗試 傳遞
4.1.3.17 記錄任何執行 chacl 的嘗試 傳遞
4.1.3.18 確保 auditd 收集權限指令的使用資訊 - usermod 傳遞
4.1.3.19 確保 auditd 收集核心模組載入 (init_module) 的相關資訊 傳遞
4.1.3.19 確保 auditd 會收集核心模組卸載資訊 - delete_module 傳遞
4.1.3.19 確保 auditd 收集權限指令的使用資訊 - insmod 傳遞
4.1.3.19 確保 auditd 收集權限指令的使用資訊 - modprobe 傳遞
4.1.3.19 確保 auditd 收集權限指令 (rmmod) 的使用資訊 傳遞
4.1.3.20 讓 auditd 設定不可變更 傳遞
4.1.4.1 系統稽核記錄的模式必須為 0640 或更嚴格 傳遞
4.1.4.2 系統稽核記錄必須由根目錄擁有 傳遞
4.1.4.3 系統稽核記錄必須由根目錄擁有的群組 傳遞
4.1.4.4 系統稽核記錄的模式必須為 0750 或更嚴格 傳遞
4.1.4.5 驗證 /etc/audit/auditd.conf 的權限 傳遞
4.1.4.5 驗證 /etc/audit/rules.d/*.rules 的權限 傳遞
4.1.4.6 稽核設定檔必須由根目錄擁有 傳遞
4.1.4.7 稽核設定檔必須由群組根目錄擁有 傳遞
4.1.4.8 確認稽核工具的模式為 0755 以下 傳遞
4.1.4.9 確認稽核工具是否由根目錄擁有 傳遞
4.1.4.10 確認稽核工具是否由群組根目錄擁有 傳遞
4.2.1.1.1 安裝 systemd-journal-remote 套件 傳遞
4.2.1.1.4 停用 systemd-journal-remote Socket 傳遞
4.2.1.2 啟用 systemd-journald 服務 傳遞
4.2.1.3 確認 journald 已設定為壓縮大型記錄檔 傳遞
4.2.1.4 確認 journald 已設定為將記錄檔寫入永久磁碟 傳遞
4.2.2.1 確認已安裝 rsyslog 傳遞
4.2.2.2 啟用 rsyslog 服務 傳遞
4.2.2.4 確認已設定 rsyslog 預設檔案權限 傳遞
4.2.2.7 除非做為記錄伺服器,否則請確保 rsyslog 不接受遠端訊息 傳遞
5.1.1 啟用 Cron 服務 傳遞
5.1.2 驗證擁有 Crontab 的群組 傳遞
5.1.2 在 crontab 上驗證擁有者 傳遞
5.1.2 驗證 crontab 的權限 傳遞
5.1.3 驗證擁有 cron.hourly 的群組 傳遞
5.1.3 在 cron.hourly 驗證擁有者 傳遞
5.1.3 驗證 cron.hourly 的權限 傳遞
5.1.4 驗證 cron.daily 的擁有群組 傳遞
5.1.4 在 cron.daily 上驗證擁有者 傳遞
5.1.4 驗證 cron.daily 的權限 傳遞
5.1.5 驗證 cron.weekly 的擁有者群組 傳遞
5.1.5 在 cron.weekly 驗證擁有權 傳遞
5.1.5 驗證 cron.weekly 的權限 傳遞
5.1.6 驗證擁有 cron.monthly 的群組 傳遞
5.1.6 在 cron.monthly 驗證擁有者 傳遞
5.1.6 驗證 cron.monthly 的權限 傳遞
5.1.7 驗證擁有 cron.d 的群組 傳遞
5.1.7 驗證 cron.d 的擁有者 傳遞
5.1.7 驗證 cron.d 的權限 傳遞
5.1.8 確認 /etc/cron.deny 不存在 傳遞
5.1.8 驗證擁有 /etc/cron.allow 檔案的群組 傳遞
5.1.8 驗證 /etc/cron.allow 檔案的權限 傳遞
5.1.8 驗證擁有 /etc/cron.allow 檔案的使用者 傳遞
5.1.9 確認 /etc/at.deny 不存在 傳遞
5.1.9 驗證擁有 /etc/at.allow 檔案的群組 傳遞
5.1.9 驗證 /etc/at.allow 檔案的權限 傳遞
5.1.9 驗證擁有 /etc/at.allow 檔案的使用者 傳遞
5.2.1 確認擁有 SSH 伺服器設定檔的群組 傳遞
5.2.1 確認 SSH 伺服器設定檔的擁有者 傳遞
5.2.1 驗證 SSH 伺服器設定檔的權限 傳遞
5.2.2 驗證安全殼層伺服器私密 *_key 金鑰檔案的權限 傳遞
5.2.3 驗證安全殼層伺服器公開 *.pub 金鑰檔案的權限 傳遞
5.2.5 將 LogLevel 設為 INFO 傳遞
5.2.6 啟用 PAM 傳遞
5.2.7 停用 SSH 根登入 傳遞
5.2.8 停用主機驗證 傳遞
5.2.9 停用透過空白密碼進行的 SSH 存取 傳遞
5.2.10 不允許使用 SSH 環境選項 傳遞
5.2.11 停用 .rhosts 檔案的 SSH 支援 傳遞
5.2.12 停用 X11 轉送 傳遞
5.2.13 僅使用高強度密碼 傳遞
5.2.14 只使用強 MAC 傳遞
5.2.15 僅使用高強度金鑰交換演算法 傳遞
5.2.16 停用 SSH TCP 轉送 傳遞
5.2.17 啟用 SSH 警告橫幅 傳遞
5.2.18 設定 SSH 驗證嘗試次數上限 傳遞
5.2.19 確認已設定 SSH MaxStartups 傳遞
5.2.20 設定 SSH MaxSessions 限制 傳遞
5.2.21 確認已設定 SSH LoginGraceTime 傳遞
5.2.22 設定 SSH 用戶端存留計數上限 傳遞
5.2.22 設定 SSH 用戶端存留間隔 傳遞
5.3.1 安裝 sudo 套件 傳遞
5.3.2 確保只有登入實際 tty 的使用者可以執行 Sudo - sudo use_pty 傳遞
5.3.3 確認 Sudo 記錄檔存在 - sudo logfile 傳遞
5.3.5 確保使用者重新驗證以提升權限 - sudo !authenticate 傳遞
5.3.6 使用 sudo 指令時要求重新驗證 傳遞
5.3.7 強制使用 pam_wheel 和群組參數進行 su 驗證 傳遞
5.3.7 確認系統上存在 pam_wheel 模組使用的群組,且該群組為空 傳遞
5.4.1 確保 PAM 強制執行密碼規定 - 允許每個工作階段的驗證重試提示 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 最少不同類別 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 最少位數 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 長度下限 傳遞
5.4.1 確保 PAM 強制執行密碼規定 - 小寫字元下限 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 特殊字元下限 傳遞
5.4.1 確保 PAM 會強制執行密碼規定 - 大寫字元下限 傳遞
5.4.1 安裝 pam_pwquality 套件 傳遞
5.4.2 密碼輸入錯誤次數達到指定值時鎖定帳戶 傳遞
5.4.2 設定計算密碼輸入錯誤次數的時間間隔 傳遞
5.4.2 設定密碼輸入錯誤次數上限 傳遞
5.4.3 限制重複使用密碼 傳遞
5.4.4 在 /etc/login.defs 中設定密碼雜湊演算法 傳遞
5.5.1.1 設定現有密碼的最低使用時間 傳遞
5.5.1.1 設定密碼最短使用時間 傳遞
5.5.1.2 設定現有密碼的有效期限 傳遞
5.5.1.3 設定密碼警告期限 傳遞
5.5.1.4 設定帳戶在閒置一段時間後失效 傳遞
5.5.1.5 確認所有使用者上次變更密碼的日期都在過去 傳遞
5.5.2 確保系統帳戶不會在登入時執行 Shell 傳遞
5.5.3 確認根目錄具有主要 GID 0 傳遞
5.5.4 確認預設 Bash Umask 設定正確無誤 傳遞
5.5.4 確認互動式使用者的預設 Umask 設定正確無誤 傳遞
5.5.4 確認 /etc/profile 中的預設 Umask 設定正確 傳遞
5.5.4 確認 login.defs 中的預設 Umask 設定正確無誤 傳遞
5.5.5 設定互動工作階段逾時 傳遞
6.1.1 驗證擁有 passwd 檔案的群組 傳遞
6.1.1 驗證 passwd 檔案的權限 傳遞
6.1.1 驗證 passwd 檔案的擁有者 傳遞
6.1.2 驗證擁有備份 passwd 檔案的群組 傳遞
6.1.2 驗證備份 passwd 檔案的權限 傳遞
6.1.2 驗證備份 passwd 檔案的擁有者 傳遞
6.1.3 驗證擁有群組檔案的群組 傳遞
6.1.3 確認群組檔案的權限 傳遞
6.1.3 驗證群組檔案擁有者 傳遞
6.1.4 確認備份群組檔案的擁有者群組 傳遞
6.1.4 確認備份群組檔案的權限 傳遞
6.1.4 驗證備份群組檔案的擁有者 傳遞
6.1.5 驗證擁有影子檔案的群組 傳遞
6.1.5 驗證影子檔案的權限 傳遞
6.1.5 驗證擁有影子檔案的使用者 傳遞
6.1.6 驗證擁有備份陰影檔案的群組 傳遞
6.1.6 確認備份陰影檔案的權限 傳遞
6.1.6 驗證備份陰影檔案的擁有者 傳遞
6.1.7 驗證擁有 gshadow 檔案的群組 傳遞
6.1.7 驗證 gshadow 檔案的權限 傳遞
6.1.7 驗證擁有 gshadow 檔案的使用者 傳遞
6.1.8 確認擁有備份 gshadow 檔案的群組 傳遞
6.1.8 驗證備份 gshadow 檔案的權限 傳遞
6.1.8 驗證備份 gshadow 檔案的擁有者 傳遞
6.1.10 確保所有檔案都歸使用者所有 傳遞
6.2.1 確認所有帳戶密碼雜湊都已遮蔽 傳遞
6.2.2 確認沒有帳戶的密碼為空白或空值 傳遞
6.2.3 /etc/passwd 中參照的所有 GID 都必須在 /etc/group 中定義 傳遞
6.2.4 確認影子群組為空 傳遞
6.2.5 確認系統中的所有帳戶都有專屬使用者 ID 傳遞
6.2.6 確認系統中的所有群組都有專屬群組 ID 傳遞
6.2.7 確保系統中的所有帳戶都有專屬名稱 傳遞
6.2.8 確保系統上的所有群組都有專屬群組名稱 傳遞
6.2.9 確認根路徑不含相對路徑或空目錄 不明 傳遞
6.2.9 確認根路徑不包含可供世界或群組寫入的目錄 傳遞
6.2.10 僅驗證根目錄是否具有 UID 0 傳遞
6.2.11 所有互動式使用者的主目錄都必須存在 傳遞
6.2.12 所有互動式使用者主目錄都必須由主要群組擁有 傳遞
6.2.12 所有互動式使用者主目錄都必須由主要使用者擁有 傳遞
6.2.13 所有互動式使用者主目錄都必須採用 0750 模式或寬鬆程度較低的模式 傳遞
6.2.14 確認沒有 netrc 檔案 傳遞
6.2.15 確認沒有 .forward 檔案 傳遞
6.2.16 移除 Rsh 信任檔案 傳遞
6.2.17 使用者初始化檔案必須由主要群組擁有 傳遞
6.2.17 使用者初始化檔案必須由主要使用者擁有 傳遞
6.2.17 使用者初始化檔案不得執行可供全域寫入的程式 傳遞

不適用的建議

下表列出不適用於 Google Distributed Cloud 的建議。

# 建議 嚴重性 狀態
1.1.2.2 將 nodev 選項新增至 /tmp notapplicable
1.1.2.3 在 /tmp 中新增 noexec 選項 notapplicable
1.1.2.4 在 /tmp 中新增 nosuid 選項 notapplicable
1.1.3.2 在 /var 中新增 nodev 選項 notapplicable
1.1.3.3 在 /var 中新增 nosuid 選項 notapplicable
1.1.4.2 在 /var/tmp 中新增 noexec 選項 notapplicable
1.1.4.3 在 /var/tmp 中新增 nosuid 選項 notapplicable
1.1.4.4 將 nodev 選項新增至 /var/tmp notapplicable
1.1.5.2 在 /var/log 中新增 nodev 選項 notapplicable
1.1.5.3 在 /var/log 中新增 noexec 選項 notapplicable
1.1.5.4 在 /var/log 中新增 nosuid 選項 notapplicable
1.1.6.2 在 /var/log/audit 中新增 noexec 選項 notapplicable
1.1.6.3 將 nodev 選項新增至 /var/log/audit notapplicable
1.1.6.4 將 nosuid 選項新增至 /var/log/audit notapplicable
1.1.7.2 將 nodev 選項新增至 /home 不明 notapplicable
1.1.7.3 在 /home 中新增 nosuid 選項 notapplicable
1.4.1 設定 UEFI 開機載入程式密碼 notapplicable
1.8.1 移除 GDM 檔案包群組 notapplicable
1.8.4 啟用 GNOME3 螢幕保護程式,在閒置一段時間後鎖定螢幕 notapplicable
1.8.5 設定 GNOME3 螢幕保護程式在啟動時間過後鎖定裝置的延遲時間 notapplicable
1.8.6 停用 GNOME3 自動掛接開啟功能 notapplicable
1.8.6 停用 GNOME3 自動掛接功能 notapplicable
1.8.8 停用 GNOME3 自動掛接功能 notapplicable
1.8.10 在 GDM 中停用 XDMCP notapplicable
1.10 設定 GNOME3 DConf 使用者設定檔 notapplicable
2.1.4.1 設定 ntpd 的伺服器限制 notapplicable
2.1.4.3 設定 ntpd 以 ntp 使用者身分執行 notapplicable
2.1.4.4 啟用 NTP Daemon notapplicable
2.2.15 停用 Postfix 網路監聽 notapplicable
3.5.1.3 確認 ufw 已啟用 notapplicable
3.5.1.4 設定 UFW 迴路流量 notapplicable
3.5.1.6 確認所有開啟的通訊埠都有 ufw 防火牆規則 notapplicable
3.5.1.7 確保 ufw 預設拒絕防火牆政策 notapplicable
3.5.3.2.1 設定傳入封包的預設 iptables 政策 notapplicable
3.5.3.2.2 設定迴路流量 notapplicable
3.5.3.2.4 確認所有開啟的通訊埠都有 iptables 防火牆規則 notapplicable
3.5.3.3.1 設定傳入封包的預設 ip6tables 政策 notapplicable
3.5.3.3.4 確認所有開啟的通訊埠都有 ip6tables 防火牆規則 notapplicable

設定 AIDE Cron 工作

AIDE 是檔案完整性檢查工具,可驗證是否符合 CIS L1 伺服器基準 1.4 Filesystem Integrity Checking。在 Google Distributed Cloud 中,AIDE 程序造成了資源用量過高的問題。

節點上的 AIDE 程序預設為停用,可避免資源問題。這會影響 CIS L1 伺服器基準 1.4.2 的法規遵循情形:Ensure filesystem integrity is regularly checked.

如要啟用 AIDE cron 工作,請完成下列步驟,重新啟用 AIDE:

  1. 建立 DaemonSet。

    以下是 DaemonSet 的資訊清單:

    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
    name: enable-aide-pool1
    spec:
    selector:
      matchLabels:
        app: enable-aide-pool1
    template:
      metadata:
        labels:
          app: enable-aide-pool1
      spec:
        hostIPC: true
        hostPID: true
        nodeSelector:
          cloud.google.com/gke-nodepool: pool-1
        containers:
        - name: update-audit-rule
          image: ubuntu
          command: ["chroot", "/host", "bash", "-c"]
          args:
          - |
            set -x
            while true; do
              # change daily cronjob schedule
              minute=30;hour=5
              sed -E "s/([0-9]+ [0-9]+)(.*run-parts --report \/etc\/cron.daily.*)/$minute $hour\2/g" -i /etc/crontab
    
              # enable aide
              chmod 755 /etc/cron.daily/aide
    
              sleep 3600
            done
          volumeMounts:
          - name: host
            mountPath: /host
          securityContext:
            privileged: true
        volumes:
        - name: host
          hostPath:
            path: /
    

    在上述資訊清單中:

    • 如 nodeSelector cloud.google.com/gke-nodepool: pool-1 所指定,AIDE cron 工作只會在節點集區 pool-1 上執行。您可以在 nodeSelector 欄位下方指定集區,視需要設定在多個節點集區上執行 AIDE 程序。如要在不同節點集區執行相同的 cron 工作排程,請移除 nodeSelector 欄位。不過,為避免主機資源壅塞,建議您維持個別排程。

    • 根據設定 minute=30;hour=5,系統會排定每天上午 5:30 執行 Cron 工作。您可以視需要為 AIDE Cron 工作設定不同時間表。

  2. 將資訊清單複製到名為「enable-aide.yaml」的檔案,然後建立 DaemonSet:

    kubectl apply --kubeconfig USER_CLUSTER_KUBECONFIG -f enable-aide.yaml
    

    其中 USER_CLUSTER_KUBECONFIG 是指使用者叢集的 kubeconfig 檔案路徑。

使用安全內容自動化通訊協定 (SCAP) 評估

建議您自行掃描安裝項目,評估其是否符合 Ubuntu Linux CIS 基準的第 2 級規範。您可以使用多種工具掃描叢集和管理員工作站。您可以按照下列步驟安裝及執行 OpenSCAP 開放原始碼工具集,進行第 2 級安全評估:

  1. 將下列指令碼複製到名為 cis-benchmark.sh 的檔案:

    #!/bin/bash
    
    set -x
    
    REPORTS_DIR="$1"
    
    mkdir -p "${REPORTS_DIR}"
    
    echo "Start CIS L2 benchmark evaluation..."
    apt update
    apt install libopenscap8
    sudo oscap xccdf eval \
        --profile cis_level2_server_customized \
        --tailoring-file /etc/cloud/usg/tailored-cis-level2-server-anthos-wmware.xml \
        --results "${REPORTS_DIR}"/cis-results.xml \
        --report "${REPORTS_DIR}"/cis-report.html \
        --verbose INFO \
        --verbose-log-file "${REPORTS_DIR}/cis-output-verbose.log" \
        /etc/cloud/usg/ssg-ubuntu2204-ds-1.2.xml > "${REPORTS_DIR}"/cis-output.log 2>&1
    chmod -R 755 "${REPORTS_DIR}/.."
    echo "Done CIS L2 benchmark evaluation"
    
  2. 將指令碼設定為可執行:

    chmod +x cis-benchmark.sh
    
  3. 執行指令碼:

    ./cis-benchmark.sh REPORTS_DIR
    

    請將 REPORTS_DIR 替換為現有目錄的路徑,您要將產生的評估報告儲存至該目錄。

    指令碼順利完成後,REPORTS_DIR 目錄會包含產生的 cis-report.html 檔案。