linux磁盘加密

在Linux中,磁盘加密是一种保护数据不被未授权访问的方法。有多种工具和策略可以实现磁盘加密,包括使用Linux内核的内置功能,如dm-crypt,以及使用更高级的解决方案,如LUKS(Linux Unified Key Setup)。下面利用dm-crypt和LUKS实现对磁盘的加密:

1.dm-crypt

dm-crypt是Linux内核的一部分,它允许你加密整个磁盘分区或磁盘。内核配置dm-crypt功能:

bash 复制代码
CONFIG_BLK_DEV_DM=y
CONFIG_DM_CRYPT=y
2.安装cryptsetup
bash 复制代码
sudo apt install cryptsetup
3.对目标设备设置加密

下面以/dev/mmcblk0p8分区为例说明。

bash 复制代码
sudo cryptsetup luksFormat /dev/mmcblk0p8

注意:输入大写YES以确认,该步骤会丢失设备已有数据,请务必先做好备份,过程中会提示输入并确认密码。

4.解密/dev/mmcblk0p8映射到逻辑卷
bash 复制代码
sudo cryptsetup luksOpen /dev/mmcblk0p8 unlkd1

这里的unlkd1是个人自定义的名称。过程需输入已设置的正确密码。解密后产生一个/dev/mapper/unlkd1的逻辑卷.现在/dev/mapper/unlkd1就是已解密的逻辑设备,可像正常设备一样进行操作.

bash 复制代码
sudo mkfs.ext4 /dev/mapper/unlkd1     #格式化
sudo mount /dev/mapper/unlkd1 /mnt    #挂载
sudo umount /mnt                        #取消挂载
sudo cryptsetup luksClose unlkd1        #取消解密

必备取消挂载后才能取消解密。取消解密后,/dev/mapper/unlkd1逻辑卷也将消失。

5.通过秘钥文件解密

创建秘钥文件

bash 复制代码
dd if=/dev/urandom of=/root/enc.key bs=512 count=4

将秘钥文件添加到逻辑分区中。

bash 复制代码
sudo cryptsetup luksAddKey /dev/mmcblk0p8 /root/enc.key

解密卷

bash 复制代码
sudo cryptsetup luksOpen -d /root/enc.key /dev/mmcblk0p8 unlkd1

参考文献:

https://zhuanlan.zhihu.com/p/634023368

https://www.cnblogs.com/xuanbjut/p/11796731.html

https://blog.csdn.net/weixin_64122448/article/details/144009953

https://www.php.cn/faq/641926.html

https://blog.csdn.net/linnaa6/article/details/145702589

相关推荐
爱隐身的官人4 小时前
Linux配置Java/JDK(解决Kali启动ysoserial.jar JRMPListener报错)暨 Kali安装JAVA8和切换JDK版本的详细过程
java·linux·kali
Algebraaaaa5 小时前
Linux 基本命令超详细解释第三期 grep | wc | 管道符‘|’ | echo | tail | 重定向符
linux
小生不才yz7 小时前
(三)命令管理-命令历史-history命令的使用
linux
aramae8 小时前
Linux开发工具入门:零基础到熟练使用(二)
linux·运维·服务器·网络·笔记
nassi_9 小时前
I/O详解
linux·php
泡沫冰@9 小时前
shell编程:sed - 流编辑器(6)
linux
徐小夕@趣谈前端9 小时前
如何实现多人协同文档编辑器
javascript·vue.js·设计模式·前端框架·开源·编辑器·github
爱吃喵的鲤鱼9 小时前
仿muduo库One Thread One Loop主从Reactor模型实践——介绍
linux·c++
胡耀超10 小时前
PaddleLabel百度飞桨Al Studio图像标注平台安装和使用指南(包冲突 using the ‘flask‘ extra、眼底医疗分割数据集演示)
人工智能·百度·开源·paddlepaddle·图像识别·图像标注·paddlelabel
时光追逐者10 小时前
一个基于 .NET 开源、简易、轻量级的进销存管理系统
开源·c#·.net·.net core·经销存管理系统