Linux下LUKS加密磁盘

1.介绍
当我们有重要文件需要保护时,可以采用Linux统一**设置(Linux Unified Key Setup,LUKS)就是这样一个加密技术,它允许Linux的分区进行加密。
LUKS具有如下功能:
可以使用LUSK加密整个块设备,非常适合于保护可移动存储介质或者笔记本磁盘的数据。
一旦被加密,块设备上的内容看起来就像是随机的,所以它对于交换设备的加密非常有用。
LUSK使用了现有的设备映射内核子系统。
它提供了一个密码加强器,有助于防止针对密码的字典攻击。
2.实验准备工作
准备一个安装好的Linux的系统,安装的系统必须将/data目录创建在独立的分区上。(配置LUSK时,将删除加密分区上的所有数据,在使用LUSK之前,一定要将数据备份到外部资源上。)
这里我们使用的银河麒麟服务器版(下载地址:https://www.ubuntukylin.com/):
Linux下LUKS加密磁盘
安装cryptsetup
sudo apt-get update
sudo apt-get install cryptsetup
3.操作指南
转换到运行级别1(运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆),在shell提示符或者终端上输入以下命令。
sudo telinit 1(执行后如图:)
Linux下LUKS加密磁盘
Linux下LUKS加密磁盘
使用如下命令卸载当前/data分区:
umount /home
如果有其他进程正在控制/data目录,那么上述命令会执行失败。可使用fuser命令查找并杀死这样的进程:
fuser -mvk /home
Linux下LUKS加密磁盘
执行如下命令检查/data分区当前没有被挂载
grep /data /proc/mounts
Linux下LUKS加密磁盘
现在,在分区中放入一些随机数据:
shred -v --iterations=1 /dev/sda4 (这里的da4是磁盘的设备名)
Linux下LUKS加密磁盘
上述命令可能会需要一些时间才能完成,时间长短取决你设备的写入速度。
一旦命令执行完毕,则初始化分区:
cryptsetup --verbose --verify-passphrase luksFormat /dev/sda4
Linux下LUKS加密磁盘
映射分区:
cryptsetup luksOpen /dev/sda4 data
检查并确定设备是否存在:
ls -l /dev/mapper |grep dada
Linux下LUKS加密磁盘
创建文件系统
mkfs.ext3 /dev/mapper/data
Linux下LUKS加密磁盘
然后挂载文件系统
mount /dev/mapper/data /data
Linux下LUKS加密磁盘
确认文件系统仍然可见:
df -h |grep data
Linux下LUKS加密磁盘
在/etc/crypttab文件输入如下行:
data /dav/sda4 none
修改/etc/fstab文件,删除/data所在行,并增加如下行:
/dev/mapper/data /data ext3 defaults 1 2
Linux下LUKS加密磁盘
上述命令完成后,执行如下命令恢复默认的SELinux安全设置
/sbin/restorecon -v -R /data
Linux下LUKS加密磁盘
重新启动:
shutdown -r now
重启后,系统会提示我们输入LUKS密码。
Linux下LUKS加密磁盘
现在我们已经成功创建了一个加密分区。即使关机的情况下他人拿走你的磁盘,你的数据依然安全。