Centos

為什麼我的驅動器沒有使用 cryptsetup 加密?

  • October 22, 2017

我已遵循本指南,希望通過 LVM 對具有單個文件系統的輔助驅動器進行完全加密。

這正是我按順序所做的:

fdisk /dev/sdb # goes to interactive promt (choose defaults)
pvcreate /dev/sdb1
vgcreate vg_crypt /dev/sdb1
lvcreate -l 100%FREE -n storage vg_crypt
cryptsetup luksFormat -c aes-xts-plaint64 -s 512 /dev/mapper/vg_crypt-storage # set passphrase
cryptsetup open /dev/mapper/vg_crypt-storage storage # use passphrase
mkfs.ext4 /dev/mapper/storage
mkdir /storage
mount /dev/mapper/storage /storage
echo "cryptdevice=/dev/vg_crypt/storage:storage root=/storage" >> /etc/default/grub
echo "storage /dev/mapper/vg_crypt-storage /dev/urandom storage,cipher=aes-xts-plain64,size=256" >> /etc/crypttab
echo "/dev/mapper/vg_crypt-storage storage ext4 defaults 0 0" >> /etc/fstab
echo "this is a test" >> /storage/test
reboot

重新啟動後,我發現我可以繞過密碼片語輸入請求來/dev/sdb1使用Ctrl ^c. 我期待這會阻止我訪問/dev/sdb. 令我驚訝的是,它是完全可讀的,並且文件以純文字形式顯示。

我是否配置錯誤?

我注意到了這一點:

cd /storage
df .
Filesystem .....
/dev/mapper/othervg_root .... (on sda!)

所以這個目錄存在於我的 sda 上的 LVM 上。但我想通過掛載/dev/mapper/storage/storage,我會將該目錄放在sdb1. 不知道我在這裡缺少什麼。

所以我也注意到沒有密碼登錄,/dev/mapper/storage不存在。所以我去頭並刪除/storage,然後重新啟動。這次我輸入了密碼,發現/dev/mapper/storage 確實存在,也確實存在/storage(儘管我剛剛刪除了它),但它仍然在sda. 我很混亂。

現在我注意到lsblk沒有用於儲存的掛載點。所以我像以前一樣重新安裝。現在df /storage確實將文件系統顯示為/dev/mapper/storage. 這次我重新啟動並輸入了密碼。/storage又是在錯誤的文件系統下。出於某種原因,引導時的安裝是錯誤的。它必須在 etc 文件中。

我通讀了 /etc/*tab 文件的手冊頁並進行了一些更改:

fstab:

/dev/mapper/vg_crypt-storage /storage ext4 defaults 0 0 # add the '/' in /storage

密碼表:

storage /dev/mapper/vg_crypt-storage none cipher=aes-xts-plain64,size=512
# changed size to match key in cryptsetup
# changed key to none (/dev/urandom is something particular to swap i guess)
# removed uneccesary 'storage' in key=val list. I saw 'root' in the guide and thought i needed the name of my crypto device

我從 Grub 中刪除了該行,因為我不知道那在做什麼。我sdb1{lv,vg,pv}remove命令刪除了所有 LVM 的東西,然後刪除了 partition sdb1。我暫時從文件中註釋掉了這些行/etc/*tab並重新啟動。

最後,我重做了分區、LVM 方案、ext4 文件系統,並取消了/etc/*tab文件中的 2 行註釋。

現在,當我重新啟動時,我遇到了啟動問題,它讓我進入了緊急模式。

journalctl -xb向我展示了一些特殊的線條:

.... kernel: EXT4-fs (dm-3): VFS: Can't find ext4 filesystem
.... systemd[1]: Failed to mount /storage

對於本地文件系統的依賴關係、重新標記文件系統和遷移本地 SELinux 策略更改,還有其他失敗。不確定這些是否完全相關。

我想通了嗚嗚!

問題在/etc/fstab.

我的正常sda分區是這樣安裝的:

/dev/mapper/vg_sda-root /     ext4 defaults 0 0
/dev/mapper/vg_sda-swap swap  ext4 defaults 0 0
/dev/mapper/vg_sda-home /home ext4 defaults 0 0

所以我很自然地遵循了這個計劃並添加了我的:

/dev/mapper/vg_crypt-storage storage ext4 defaults 0 0

此行的問題在於第一個欄位fs_spec,如fstab(5) 手冊頁中所述。“此欄位描述要掛載的塊特殊設備或遠端文件系統。”

由於 crypttab 在 fstab 之前處理,因此解密的設備可以作為 訪問/dev/mapper/storage,而不是作為原始 LVM 映射設備名稱訪問/dev/mapper/vg_crypt-storage

因此,通過將我的線路更改/etc/fstab為:

/dev/mapper/storage storage ext4 defaults 0 0

/etc/fstab然後將正確的解密設備安裝到/storage.

我已經通過重新啟動並取消密碼(Ctrl ^C3 次)進行了測試,這迫使我進入緊急模式。在這裡,加密設備不存在,必須手動解密和安裝。

我想我清楚/正確地解釋了這一點,但請在我遺漏的任何地方糾正我!

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