在 LMDE (debian) 中設置加密交換
我想使用在啟動時由隨機密鑰加密的交換驅動器。不過,我不確定我是否安全地這樣做。
我目前有 /etc/crypttab 基於arch wiki 上的範例。與他們的文章不同,我從 mkswap 獲得了我的交換 UUID。它不允許我將我的交換放在超過 1MB ext2 分區的未分配空間中,如 arch wiki 範例中所示。因此,我對 arch wiki 範例有點警惕。
我目前的 crypttab 是:
cryptswap UUID=... /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256,offset=2048
這是設置加密交換的正確方法嗎?如果嘗試寫入驅動器的最後 1MB,我不確定 offset 的行為如何。
可能值得注意的是,在我的硬體上執行此操作之前,我在 VM 中執行所有這些以進行測試。
更新:
這是當我嘗試使用 ext2 格式化驅動器時出現的錯誤消息,完全按照拱教程中所示進行操作:
sudo /etc/init.d/cryptdisks reload [ ok ] Stopping remaining crypto disks...cryptswap (stopped)...done. [....] Starting remaining crypto disks...[info] cryptswap (starting)... [....] cryptswap: the precheck for '/dev/disk/by-label/cryptswap' failed: - The [warne /dev/disk/by-label/cryptswap contains a filesystem type ext2. ... (warning). [FAILswap (failed)...failed.
與他們的文章不同,我從 mkswap 獲得了我的交換 UUID。
這可能不是一個好主意。如果您在設備上有未加密的交換標頭,並使用同一設備以 1 MiB 偏移量進行加密交換,則無論出於何種原因您啟動了兩個交換分區,交換將覆蓋彼此的數據,因為它是同一設備。
1MB ext2 分區不存在這種歧義 - 因為 ext2 被限制為 1MB,即使您使用它(掛載它,寫入它,…)它仍然是安全的,並且不會將內容寫入使用的區域加密交換。這裡唯一危險的操作是
resize2fs
。它不允許我將我的交換放在超過 1MB ext2 分區的未分配空間中,如 arch wiki 範例中所示。
最後,Debian 和 ArchLinux 是不同的,所以他們的解決方案可能不一定適合你。如果它是 GPT,您可能會使用
PARTUUID
而不是UUID
. 僅,如果您想將該分區用於其他用途,則應刪除該分區並創建一個新分區(帶有 newPARTUUID
),以便下次重新啟動時不會無意中再次將其格式化為交換…如果您在這個方向上需要更具體的幫助,也許您應該詳細說明錯誤消息等……我猜在 Debian 中有一個過濾器腳本可以拒絕看起來像文件系統的東西以避免數據失去情況。您可能可以通過添加來禁用它
precheck=/bin/true
。這種 cryptswap 真的很危險(就意外格式化錯誤的設備而言),如果可能的話,完全避免它。對 LUKS 標頭使用適當的加密會更安全,即使這意味著必須輸入另一個密碼。
如果嘗試寫入驅動器的最後 1MB,我不確定 offset 的行為如何。
沒有問題,
offset
只是導致設備映射更小。因此,如果您有一個1000MiB
分區並使用偏移量為 1MiB 的普通 crypttab 映射,則生成的 crypt 設備999MiB
的大小。