Rocky Linux 10 + TPM 自動解鎖完整標準流程(從裸機開始)

🔹 第一階段:BIOS 設定

進入 BIOS:

✅ 開啟:

  • TPM 2.0
  • Secure Boot(建議開啟)
  • UEFI 模式(不要 Legacy)

儲存離開。


🔹 第二階段:安裝 Rocky Linux 10(含 LUKS2)

用 Rocky Linux 10 ISO 開機。

在安裝畫面:

1️⃣ 選擇語言 → Installation Destination

2️⃣ Storage Configuration

選:

Custom

Automatic (然後勾選 Encrypt my data)

✅ 必須勾選:

Encrypt my data

3️⃣ 設定 LUKS 密碼

系統會要求設定:

👉 這個密碼非常重要
👉 這就是日後主機壞掉時的救援密碼

請妥善保存。


4️⃣ 建議分割方式(標準企業配置)

/boot        (1GB, 不加密)
EFI          (600MB)
/            (加密)

✅ root 分割區必須加密


5️⃣ 完成安裝並重開機

此時開機會:

👉 要求輸入 LUKS 密碼
(這是正常的)


🔹 第三階段:啟用 TPM 自動解鎖


登入 root。


✅ Step 1:安裝套件

dnf install -y clevis clevis-luks clevis-dracut clevis-systemd tpm2-tools

✅ Step 2:確認 TPM 存在

ls /dev/tpm*

應看到:

/dev/tpm0
/dev/tpmrm0

✅ Step 3:確認 LUKS 位置

lsblk -f

找到:

rl-root

然後確認版本:

cryptsetup luksDump /dev/mapper/rl-root | grep Version

必須是:

Version: 2

✅ Step 4:將 TPM 綁定到 LUKS

執行:

clevis luks bind -d /dev/mapper/rl-root tpm2 '{}'

會要求輸入:

👉 您安裝時的 LUKS 密碼

成功會顯示:

Successfully bound

✅ Step 5:重建 initramfs(非常重要)

dracut -f

這一步會把 clevis 打包進開機映像。



🔹 第四階段:測試


重新開機:

reboot

如果成功:

✅ 不會要求輸入密碼
✅ 自動開機



🔹 第五階段:測試備援


進 BIOS:

👉 暫時關閉 TPM

開機:

✅ 應要求輸入密碼
✅ 輸入後可進入系統

再重新開啟 TPM。



🔹 如果主機壞掉


把硬碟接到另一台 Linux:

cryptsetup luksOpen /dev/sdX rescue

輸入原本密碼即可。

TPM slot 會失效,但密碼 slot 還在 ✅


🔹最終安全架構

LUKS2
 ├─ Slot 0 → 密碼(備援)
 ├─ Slot 1 → TPM2 自動解鎖

🔹 安全等級說明

情境結果
硬碟被偷無法解鎖 ✅
主機被偷可開機 ⚠
主機壞掉可用密碼救援 ✅

🔹 進階強化(企業級)

如果您是(金融相關)

建議下一步:

  • 加入 PCR 綁定
  • 限制 Secure Boot 狀態變更即鎖死
  • 設定 TPM policy
  • 設定自動 recovery SOP

🔹您現在的狀況總結

✔ 已成功安裝
✔ 已啟用 LUKS2
✔ 結構正確
✔ 可以直接做 TPM 綁定