2019-12-17

Linux 使用 LUKS 加密 Ext4 檔案系統

因為最近單位的伺服器損壞,但考慮到部門的資金預算不是很多
在下的部門大約只有10個使用者,亦只是內部使用,因此在下使用 Raspberry Pi 4B 作為新伺服器

雖然可以買一張大容量 Micro SD 卡作為儲存媒體,但如果空間用盡又要移動資料非常麻煩
因此 Micro SD 只儲存系統及軟件等公用資料,使用 USB Flash Drive 儲存部門資料
但 USB Flash Drive 卸除太簡單, 避免資料洩漏又要考慮安全性
因此在下使用 LUKS 來將磁碟加密,再格式化為 Ext4 作為 USB Flash Drive 的檔案系統

LUKS 全名為 Linux Unified Key Setup 是一種 Linux 磁碟加密標準
遍普 Linux 發行版都已經預裝到系統中,即使未安裝 (Raspbian 預設沒有安裝 LUKS) 亦可以在 Terminal 輸入
sudo apt-get install luksipc
按此下載及安裝 luksipc

圖像使用者介面 (GUI) 操作

在下使用 Linux Mint 19.2 測試

見下文
開啟 Disks磁碟管理器

見下文
選擇 需要加密的磁碟分割 後,按 齒輪圖案

見下文
選擇 Format Partition ...

見下文
Volume Name (卷宗名稱 或 磁碟分割名稱) 輸入需要的名稱
選擇 Internal disk for use with Linux systems only (Ext4) 並啟用 Password protect volume (LUKS)
然後按 Next
(Erase 是使用 低階格式化 (Low-Level Format) 或 填零 (Zero-Fill) 方式將 磁碟內容完全清除
256GB 內容大約需要使用 8小時完全清除,如果需要確保內容不能被修復,才使用啟動 Erase)

見下文
輸入閣下認為安全的密碼保障磁碟內容,磁碟管理器會評估密碼安全程度
然後按 Next

見下文
確定需要格式化磁碟後,按 Confirm

見下文
格式化後,發現 Disks磁碟管理器 目標磁碟會顯示 鎖頭圖案
按下 解鎖圖案

見下文
輸入 加密的密碼 後按 Unlock 解除鎖定

見下文
解除鎖定 後, Disks磁碟管理器 會顯示原本格式化為 Ext4 的磁碟分割
按下 播放圖案 便可以 掛載 磁碟分割

見下文
掛載 磁碟分割 後,該 磁碟分割 會顯示 播放圖案

見下文
按下 停止圖案 便可以 卸載 磁碟分割

見下文
按下 鎖定圖案 便可以重新鎖定磁碟分割

見下文
鎖定圖案 磁碟分割 後,該 磁碟分割 便會隱藏

命名字元介面 (CLI) 操作

Linux Mint, Ubuntu 這類預裝大量軟件的 Linux 發行版通常都預裝 Disks磁碟管理器 及 LUKS
但如 Debian, Lubuntu 這類簡約為主的 Linux 發行版則沒有預裝,尤其實 Debian 作為伺服器為主要功用可能連 圖像使用者介面 都不會安裝
操作上便以 命名字元介面 為主要操作介面

cryptsetup 的操作方法可以在 Terminal 輸入
cryptsetup -list
會列出所有 cryptsetup 項目

見下文
輸入
sudo cryptsetup luksFormat "/dev/sdb1"
將 磁碟分割 以 LUKS 格式化,然後輸入加密的密碼
cryptsetup 的指令是 大小寫區分 ,即是 luksFormat 不能寫作 luksformat
/dev/sdb1 只是在下測試 磁蹀分割 的位置,閣下需要因應相對應的 磁碟分割 而修改
由於屬於系統操作,因此必須使用 root 或 super user 使用者才能操作

見下文
輸入
sudo cryptsetup luksOpen "/dev/sdb1" "luks-dev-sdb1"
解除已鎖定的 LUKS 分割,並輸入開啟密碼
luks-dev-sdb1 是解除鎖定的S LUKS 分割的臨時名稱,可以因應需要更改

見下文
輸入
sudo mkfs.ext4 "/dev/mapper/luks-dev-sdb1" -L "encrypted-drive"
將解除鎖定的 LUKS 分割格式化為 Ext4 並卷宗名稱改為 encrypted-drive (卷宗名稱可以修改)
LUKS 的分割會暫存在 /dev/mapper 位置,並以解除鎖定的臨時分稱顯示
例如下使用 luks-dev-sdb1 絕對路徑為 /dev/mapper/luks-dev-sdb1

見下文
輸入
sudo mkdir "/media/luks-dev-sdb1"
sudo mount "/dev/mapper/luks-dev-sdb1" "/media/luks-dev-sdb1"
建立 掛載點 的 目錄
然後將 磁碟分割 掛載到 掛載點

見下文
輸入
sudo umount "/media/luks-dev-sdb1"
sudo cryptsetup luksClose "luks-dev-sdb1"
卸載 掛載點
然後 重新鎖除 LUKS分割

見下文
在下發現 LUKS 可以將已經加密的 LUKS 分割 再次加密
而且可以加密8次仍然可以繼續加密,不知道有沒有加密次數上限?

見下文
將 磁碟分割 成 公開分割私人分割
方便交換資料時讓對方存取公開資料,亦可以保護私人資料

見下文
另外在 Disks磁碟管理器 操作時 LUKS 必須對應 Ext4 才能使用
實際上將磁碟加密後,是可以將解除鎖定後的磁碟分割格式化為其他檔案系統

總結

操作上 LUKS 非常簡單,即使不熟識 命令字元介面操作 都可以使用 圖像使用者介面操作
GNOME Disk Utility 的 Disks磁碟管理器 是其中一種 磁碟管理軟件,可以在 Terminal 輸入
sudo apt-get install gnome-disk-utility
按此下載及安裝 gnome-disk-utility
只要跟隨操作提示,便可以依循步驟完成

沒有留言 :

張貼留言