如何在 Linux 上使用 LUKS 加密塊設備

有時您可能想要加密您的硬盤,以便當有人將您的硬盤驅動器連接到他們的計算機時,他們需要提供用戶憑據來安裝驅動器。 在 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

在 Linux 上成功加密設備

所以我們成功地使用 LUKS 在 Linux 上創建了一個加密分區。