每次啟動時使用新金鑰加密 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 安裝指南中的加密磁碟區部分。對於活動設備,請使用上述兩個驗證指令:映射器應處於作用中狀態,且其後備設備應與您選擇的分割區相符。

留下評論

使用 Systemd 定時器可靠地執行 ownCloud 後台作業

將按需作業運行替換為 systemd 定時器,該定時器每 15 分鐘執行一次 ownCloud 支援的 occ system:cron 命令。

透過尋找故障路由來恢復 ownCloud WebDAV 同步

透過 Apache、Nginx 或反向代理程式追蹤 WebDAV 請求,然後使用經過驗證的 PROPFIND 測試確認 ownCloud 同步功能正常。

設定 Nextcloud 的公共 URL,以便它可以存取自身。

透過設定其規範 URL 並從伺服器本身檢查 DNS、HTTPS 和反向代理路由,修復 Nextcloud 缺少出站位址警告的問題。

在 Ubuntu 24.04 上設定 Nextcloud Redis 快取

在 Ubuntu 24.04 上設定 Nextcloud Redis 快取

透過本機 Unix 套接字配置 APCu 和 Redis,以實現 Nextcloud 快取和檔案鎖定,並提供目前和舊版 Nextcloud 的步驟。

使用 Systemd 定時器自動執行 Nextcloud Cron

檢查 Nextcloud 的 cron 模式,修復其 systemd 服務和計時器,並驗證後台作業在啟動後以及每隔五分鐘運行一次。

使用 Redis 清除 Nextcloud 的檔案鎖定警告

啟用可靠的 Nextcloud 檔案鎖定,選擇適當的 Redis 或 Valkey 後端,並驗證警告是否清除,同時避免並發檔案變更的風險。

如何才能獲得 Nextcloud A+ 安全評級

如何才能獲得 Nextcloud A+ 安全評級

使用最新更新、HTTPS 和 HSTS、精確的反向代理信任以及針對公共伺服器的檢查,修復 Nextcloud 掃描中常見的錯誤。

啟用 Nextcloud 伺服器端加密,並評估其影響

為需要加密的儲存配置 Nextcloud SSE,保護加密金鑰,並在加密現有文件之前測量傳輸和 CPU 影響。

將 Elasticsearch 全文搜尋功能新增至 Nextcloud

將 Nextcloud 的檔案搜尋連接到 Elasticsearch,索引文件內容,並選擇適合您的伺服器和安全需求的設定。

為 Nextcloud 已刪除檔案設定可靠的過期策略

為 Nextcloud 已刪除檔案設定可靠的過期策略

配置 Nextcloud 在規定的保留期後刪除已刪除的文件,可靠地安排後台作業,並避免執行清除所有使用者回收站的命令。