Loading... # 0x00 > LUKS (Linux Unified Key Setup)是 Linux 硬盘加密的标准。 通过提供标准的磁盘格式,它不仅可以促进发行版之间的兼容性,还可以提供对多个用户密码的安全管理。 与现有解决方案相比,LUKS 将所有必要的设置信息存储在分区信息首部中,使用户能够无缝传输或迁移其数据。 # 0x01 准备 ```sh sudo apt install cryptsetup ``` # 0x02 使用 ## 加密磁盘分区 假设现在有磁盘分区 `/dev/sdb2` 1. 格式化磁盘分区为luks ```sh sudo cryptsetup luksFormat /dev/sdb2 ``` 输入大写`YES` 输入两次密码 这个时候会对磁盘分区进行全盘覆写,所以速度会比较慢 使用密钥文件(可选): ```sh dd if=/dev/random of=keyfile bs=1K count=16 # 创建一个16k密钥文件,count可以大一点 sudo cryptsetup luksAddKey /dev/sdb2 keyfile # 使用密钥文件加密 ``` 2. 映射加密分区 映射加密分区到`jmsdb2`,实际上是将加密分区映射到linux逻辑分区`/dev/mapper/jmsdb2`中 ```sh sudo cryptsetup luksOpen /dev/sdb2 jmsdb2 ``` 3. 格式化加密分区 之前在`1`中的格式化是将加密的物理分区格式化为luks,这个时候还需要对加密的逻辑分区格式化为常见的文件系统才可以使用 我这里示例选用`ext4` ```sh sudo mkfs.ext4 /dev/mapper/jmsdb2 ``` ``` 结构: ┌────────┐ │ luks │ │┌──────┐│ ││ ext4 ││ │└──────┘│ └────────┘ ``` 4. 挂载分区 为了正常使用需要将逻辑分区挂载出来作为一个普通目录进行读写 我这挂在到`/mnt/jmsdb2` ```sh # sudo mkdir /mnt/jmsdb2 # 如果有创建/mnt/jmsdb2可以跳过这一步 sudo mount /dev/mapper/jmsdb2 /mnt/jmsdb2 ``` 至此可以正常在 `/mnt/jmsdb2` 写数据了 5. 卸载分区 如果不想使用了可以对分区进行卸载 ```sh sudo umont /mnt/jmsdb2 # 卸载逻辑分区 sudo cryptsetup luksClose jmsdb2 #关闭加密分区 ``` ## 创建加密文件 如果不想对整个分区加密,那可以在普通磁盘里创建一个加密文件,这样的好处是可以随意移动加密文件 ```sh dd if=/dev/zero of=/home/rehtt/cryptfile bs=1M count=1024 ``` 这里在`/home/rehtt/`下创建了一个名为`cryptfile`的文件,块大小(`bs`)为1M,共有(`count`)1024个块,也就是1024M 将上面的`加密磁盘分区`中的`/dev/sdb2`替换为`/home/rehtt/cryptfile`再跟着步骤即可 ## 开机自动挂载 首先要使用密钥加密(上述第1步) 编辑`/etc/crypttab` ```sh # <target name> <source device> <key file> <options> jmsdb2 /dev/sdb2 /home/rehtt/keyfile luks ``` 编辑`/etc/fstab` ```sh /dev/mapper/jmsdb2 /mnt/jmsdb2 ext4 0 0 ``` Last modification:September 19, 2023 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 0 如果觉得我的文章对你有用,请随意赞赏