每次啟動時使用新金鑰加密 Debian 12 交換分割區。

在 Debian 12 中,每次系統啟動時都可以使用新的隨機金鑰加密專用交換分割區。在 `/etc/debian/swap` 檔案中新增隨機金鑰映射/etc/crypttab,然後指向/etc/fstab映射的裝置;以下設定使用現有分區,無需重新安裝 Debian。

此過程適用於普通交換分割區,而非休眠(掛起到磁碟)。由於密鑰會在關機時被丟棄,因此休眠映像在下次啟動時無法解密。如果需要休眠功能,請改用具有獨立復原配置的持久性金鑰設計。

在更改交換配置之前

請確保您使用一個單獨的分割區,且該分割區的檔案系統類型為swap. 請勿使用根分割區、資料分割區或包含您所需檔案的磁碟。以下範例設備名稱僅供參考:請將其替換為您系統中的實際值。

檢查活動交換區域並將其與區塊設備清單進行比對:

swapon --show --output=NAME,TYPE,SIZE,USED,PRIO
lsblk -o NAME,PATH,TYPE,FSTYPE,UUID,PARTUUID,SIZE

TYPE找到包含 ` <path>`part和FSTYPE`<path>` 的行swap。記錄其值PARTUUID,並確認它與 `<path>` 顯示的分區相同swapon --show。 `<path>`PARTUUID標識分區本身,並且在重新建立交換區域時保持不變。交換檔案系統 UUID 可能會改變,因為加密映射會在啟動時重新初始化。

Debian 終端輸出列出了一個活動的交換分區,以及一條包含 FSTYPE swap 的 lsblk 語句。
終端輸出會識別活動交換設備,並將其分區行與根檔案系統和資料檔案系統區分開來。

編輯前請先備份/etc/fstab。如果分區正在使用中,請僅關閉該交換區域:

sudo cp -a /etc/fstab "/etc/fstab.before-cryptswap.$(date +%s)"
sudo swapoff /dev/nvme0n1p3

替換/dev/nvme0n1p3為已驗證的裝置。停用交換分區會將儲存在其中的所有頁面移回記憶體。如果命令失敗或機器記憶體壓力過大,請停止操作,關閉佔用大量記憶體的工作負載,並在有足夠的可用記憶體時重試。

Debian 終端機顯示對選定的交換分割區執行 swapoff 操作
在變更啟動時配置之前,請先停用已確認的交換分割區。

配置隨機密鑰加密映射

使用 root 權限編輯器開啟 crypttab 檔案:

sudoedit /etc/crypttab

新增一行,將內容替換為實際的分區標識符。在下一步中YOUR-PARTUUID保持映射名稱一致。cryptswap

cryptswap PARTUUID=YOUR-PARTUUID /dev/urandom plain,cipher=aes-xts-plain64,size=256,hash=sha1,swap

/etc/crypttab告訴 Debian 啟動時要建立哪個加密區塊裝置。PARTUUID=來源指向原始分割區;/dev/urandom提供一個新金鑰;plain選擇不含持久 LUKS 標頭的 dm-crypt 加密演算法;並swap要求 crypttab 輔助程式將對應的裝置初始化為交換分割區。密碼、金鑰長度和雜湊值均需明確指定,參考Debian Bookworm crypttab 範例。映射關係顯示為 ` <your-map>`。/dev/mapper/cryptswap此swap選項mkswap在啟動時作用於已對應的設備,因此其內容會在每次啟動時重新初始化。來源僅指向您已驗證的專用交換分割區;如果指向包含檔案的分割區,則此選項會造成破壞。

crypttab 檔案顯示了一個使用 PARTUUID、urandom、AES-XTS 和 swap 選項的 cryptswap 條目。
crypttab 條目使用穩定的分區識別碼和新的隨機金鑰進行映射,該映射名為 cryptswap。

現在打開/etc/fstab。註解掉或刪除啟用原始交換分割區的舊行,包括任何引用其目前交換分割區 UUID 的行。改為新增以下條目:

/dev/mapper/cryptswap none swap sw 0 0

請勿同時啟用這兩個條目:否則可能會同時啟用未加密分割區和加密對應。該fstab檔案描述了啟動時啟用的交換區域,而 Debian 的 systemd cryptsetup 生成器會讀取/etc/crypttab並建立相應的單元。請參閱Bookworm 的 systemd cryptsetup 產生器手冊和Debian 的 fstab 手冊。

fstab 檔案中的條目啟用了透過 /dev/mapper/cryptswap 進行交換,終端會將該對應列為活動狀態。
映射完成後,fstab 會啟用透過 /dev/mapper/cryptswap 而不是原始分區進行交換。

重新啟動並驗證加密交換分割區。

儲存這兩個檔案並重啟,以便 Debian 在啟動時建立映射:

sudo reboot

重新登入後,檢查活動交換路徑和 dm-crypt 映射:

swapon --show
sudo cryptsetup status cryptswap

交換分區清單應包含明文分區名稱/dev/mapper/cryptswap,而非原始分區名稱。 cryptsetup 狀態輸出應顯示活動的明文映射以及預期的底層分區。第二個檢查至關重要:swapon --show單獨出現在清單中的交換分區條目並不能證明它已加密。

如果對應缺失,請檢查路徑拼字是否PARTUUID正確lsblk,並使用 `config` 指令檢查啟動日誌sudo journalctl -b -u systemd-cryptsetup@cryptswap.service。確認舊的原始設備條目在 `config` 中不再處於活動狀態。設定映射後,/etc/fstab請勿直接在原始分區上執行`config` 命令。mkswap

了解這項變更保護的是什麼。

每次啟動時都會產生新的金鑰,因此在該會話期間寫入交換分割區的內容會在區塊裝置上進行加密,並且關機後不會保留上一個工作階段的金鑰。這在設備斷電後檢查其儲存時非常有用。但它不會加密磁碟的其餘部分,不會在 Debian 運行時保護數據,也不會自動擦除轉換前可能殘留在分割區上的明文。如果舊的交換分割區內容包含敏感訊息,請將其清理視為一項單獨的儲存特定任務;檔案系統層級的重新格式化並不能保證安全擦除,尤其是在固態硬碟 (SSD) 上。

Debian 的 Bookworm 安裝指南將隨機金鑰加密描述為適用於交換分割區,並指出它會導致重新啟動後無法復原休眠鏡像。請參閱Debian 12 安裝指南中的加密磁碟區部分。對於活動設備,請使用上述兩個驗證指令:映射器應處於作用中狀態,且其後備設備應與您選擇的分割區相符。

留下評論

在 Ubuntu Server 24.04 上加密 Pi-hole 上游 DNS

在 Ubuntu Server 24.04 上加密 Pi-hole 上游 DNS

在 Ubuntu 24.04 上將 dnscrypt-proxy 設定為 Pi-hole 的本地 DoH 橋,設定僅限 localhost 的監聽器、解析器選擇以及切換 DNS 前的檢查。

讓 Ubuntu 24.04 在 Wayland 上啟用觸控板手勢

讓 Ubuntu 24.04 在 Wayland 上啟用觸控板手勢

在排查應用程式或硬體故障之前,請檢查 Ubuntu 的觸控板設定、確認 Wayland 以及測試 GNOME 的內建滑動功能。

使用 mdadm 建置 Debian 12 RAID 1 鏡像

使用 mdadm 建置 Debian 12 RAID 1 鏡像

建立並驗證一個雙磁碟 Debian 12 RAID 1 資料陣列,安全地格式化它,並配置它在重新啟動後組裝和掛載。

每次啟動時使用新金鑰加密 Debian 12 交換分割區。

每次啟動時使用新金鑰加密 Debian 12 交換分割區。

為現有的 Debian 12 交換分區設定隨機金鑰加密,驗證活動的 dm-crypt 映射,並了解休眠的權衡。

如何在 Ubuntu 24.04 上限制 SSH 使用者只能存取特定目錄(SFTP Chroot 指南)

如何在 Ubuntu 24.04 上限制 SSH 使用者只能存取特定目錄(SFTP Chroot 指南)

使用 chroot、適當的權限、匹配規則和安全測試,將 Ubuntu 24.04 SSH 帳戶限製到指定的 SFTP 資料夾,而不授予 shell 存取權限。

安全釋放 Ubuntu 的 APT 鎖定並完成更新

安全釋放 Ubuntu 的 APT 鎖定並完成更新

找到擁有 Ubuntu dpkg 前端鎖定的進程,讓軟體包工作完成,並在不刪除鎖定檔案的情況下修復中斷的安裝。

如何在 Ubuntu 桌面系統上設定 Btrfs 自動快照

如何在 Ubuntu 桌面系統上設定 Btrfs 自動快照

使用 Timeshift 在 Ubuntu Desktop 上設定定時 Btrfs 系統快照,驗證 Ubuntu 子磁碟區佈局,選擇保留策略,並了解快照無法保護的內容。

如何在不破壞依賴關係的情況下將 Debian 12 遷移到 Testing 版本

如何在不破壞依賴關係的情況下將 Debian 12 遷移到 Testing 版本

規劃更安全的 Debian 12 到 Testing 遷移:透過 Stable 版本升級,備份,清理 APT 來源,模擬依賴項更改,並驗證更改的內容。

Ubuntu 伺服器啟動進入緊急模式:逐步救援指南

Ubuntu 伺服器啟動進入緊急模式:逐步救援指南

安全地診斷 Ubuntu 伺服器緊急模式。讀取啟動日誌,檢查根目錄和 fstab 掛載點,修復故障單元,處理檔案系統錯誤,並驗證是否乾淨重新啟動。

如何在 Debian 12 設定 WireGuard 點對點 VPN

如何在 Debian 12 設定 WireGuard 點對點 VPN

為一個遠端客戶端設定 Debian 12 WireGuard VPN 伺服器。設定金鑰、IPv4 轉送、nftables NAT、防火牆存取和連線檢查。