Security

如何在 OpenBSD 上設置全盤加密?

  • June 16, 2015

dm-crypt在 OpenBSD 下是否有類似於在 Linux下設置全盤加密的首選方法?

我正在尋找全盤加密,就好像有人要偷我的筆記本一樣,他們可能會訪問儲存在上面的數據。另一個原因是我並不總是在我的筆記本旁邊,所以有人可能會損害我上網本的完整性。這是讓我相信全盤加密對我很重要的兩個主要問題。

OpenBSD 僅從OpenBSD 5.3開始支持全盤加密。早期版本需要明文引導分區。我不知道安裝程序何時被修改為支持直接安裝到加密分區(當然,引導載入程序仍然未加密,因為必須解密下一位)。

無論如何加密系統分區幾乎沒有用¹。所以我建議正常安裝系統,然後創建一個加密的文件系統映像並將您的敏感數據(/home,部分/var,也許是一些文件/etc)放在那裡。

如果您無論如何都想加密系統分區(因為您有一些特殊的案例,例如一些機密軟體),並且您最初沒有安裝加密系統,那麼您可以這樣做。

啟動到您的 OpenBSD 安裝並創建一個包含加密文件系統映像的文件。確保選擇合理的尺寸,因為以後很難更改(您可以創建額外的圖像,但您必須為每張圖像單獨輸入密碼)。手冊頁有範例(vnconfig儘管它們缺少一些步驟)。簡而言之:

dd if=/dev/urandom of=/ENCRYPTED.img bs=1m count=4096
vnconfig -k svnd0 /ENCRYPTED.img  # type your passphrase
{ echo a a; echo w; echo q; } | disklabel -E /svnd0  # create a single slice
newfs /dev/svnd0a
mount /dev/svnd0a /mnt
mv /home/* /mnt
umount /mnt
umount /dev/svnd0c

將相應條目添加到/etc/fstab

/ENCRYPTED.img  /dev/svnd0c  vnd rw,noauto,-k
/dev/svnd0a     /home        ffs rw,noauto

添加命令以在啟動時掛載加密捲和其中的文件系統/etc/rc.local

echo "Mounting encrypted volumes:"
mount /dev/svnd0c
fsck -p /dev/svnd0a
mount /home

通過執行這些命令 ( ) 檢查一切是否正常mount /dev/svnd0c && mount /home

請注意,rc.local它在啟動過程的後期執行,因此您不能將標準服務(如 ssh 或 sendmail)使用的文件放在加密卷上。如果您想這樣做,請將這些命令/etc/rc放在mount -a. 然後移動您認為敏感的文件系統部分並將它們移動到/home卷中。

mkdir /home/etc /home/var
mv /etc/ssh /home/etc
ln -s ../home/etc/ssh /home/etc
mv /var/mail /var/spool /home/var
ln -s ../home/var/mail ../home/var/spool /var

您也應該加密您的交換,但 OpenBSD 現在會自動執行此操作。

獲取加密文件系統的較新方法是通過軟體 raid 驅動程序 softraid。有關詳細資訊,請參閱softraidbioctl手冊頁或Lykle de Vries 的 OpenBSD 加密 NAS HOWTO。最新版本的 OpenBSD 支持從 softraid 卷引導並安裝到 softraid 卷,方法是在安裝過程中放入 shell 以創建卷。

¹據我所知,OpenBSD 的捲加密是為了機密性(使用 Blowfish)而不是為了完整性而保護的。保護作業系統的完整性很重要,但不需要保密。還有一些方法可以保護作業系統的完整性,但它們超出了這個答案的範圍。

引用自:https://unix.stackexchange.com/questions/9527