有時您可能想要加密您的硬盤,以便當有人將您的硬盤驅動器連接到他們的計算機時,他們需要提供用戶憑據來安裝驅動器。 在 Linux 中,可以加密單個塊設備。 在本文中,我們將學習如何使用 LUKS 在 Linux 中加密塊設備。 LUKS 是 Linux 加密層,可用於加密整個根分區、邏輯卷或特定分區。
本教程涵蓋以下 Linux 發行版
- Debian
- Ubuntu
- RHEL
- CentOS
- 洛奇Linux
- 阿爾瑪Linux
安裝 cryptsetup-luks 包
Cryptsetup 實用工具帶有 cryptsetup-luks 包,用於在 Linux 系統中設置塊設備加密。 可以使用以下命令進行安裝。
Ubuntu/Debian
$ apt-get install cryptsetup
RHEL/CentOS/Rocky Linux/Almalinux
$ dnf 安裝 cryptsetup-luks
準備一個 LUKS 分區
安裝實用工具後,準備一個用於加密的分區。 要列出所有可用的分區和塊設備,請運行以下命令。
$ fdisk -l $ blkid
現在使用 cryptsetup luksFormat 命令在分區中設置加密。 在這 example,分區 sdb 用於加密。 您可以根據您的環境做出自己的假設。
$ cryptsetup -y -v luksFormat/dev/sdb
上面執行的命令將刪除分區上的所有數據
現在我們需要在上述步驟中創建一個掛載到 LUKS 加密分區的邏輯設備映射器設備。 在這 example, 加密 是為打開的 LUKS 分區的映射名稱提供的名稱。
以下命令將創建一個卷並設置密碼或初始密鑰。 請記住,密碼短語無法恢復。
$ cryptsetup luksOpen /dev/sdb 加密
可以使用以下命令找到分區的映射詳細信息。
$ ls -l /dev/mapper/encrypted
使用以下命令查看映射狀態。 將您的映射名稱替換為 加密.
$ cryptsetup -v 加密狀態
cryptsetup 和 luksDump 命令可用於檢查設備是否已成功格式化以進行加密。 在這 example, sdb 分區正在用於確認。
$ cryptsetup luksDump /dev/sdb
LUX分區格式
將零寫入 LUKS 加密分區將使用零分配塊大小。 使用以下命令將加密塊設備設置為零。
$ dd if=/dev/zero of=/dev/mapper/encrypted
dd 命令可能需要一些時間才能執行。 使用 pv 命令檢查進度。
$ pv -tpreb /dev/zero | dd of=/dev/mapper/encrypted bs=128M
注意:更換 加密 使用您的設備映射名稱。
現在用您想要的文件系統格式化新分區。 在這 example,使用ext4文件系統。
$ mkfs.ext4 /dev/mapper/encrypted
代替 加密 使用您的設備映射器名稱。
掛載新的文件系統。 在這 example, 新文件系統掛載在 /encrypted
$ mkdir /encrypted $ mount /dev/mapper/encrypted /encrypted
替換設備映射器名稱 加密 使用您自己的映射器名稱。
$ df -h $ cd /加密 $ ls -l
所以我們成功地使用 LUKS 在 Linux 上創建了一個加密分區。