LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准,操作简单,只有在挂载磁盘时需要输入密码,在写入和读取磁盘时不需要。
当然我们在日常的服务器运维中几乎很少会给磁盘进行加密,不过可以对U盘进行加密。
LUKS使用密码验证
1.准备一块没有格式化的磁盘
2.对磁盘进行分区,注意这里不进行格式化
fdisk /dev/sdc
3.利用cryptsetup对磁盘进行加密格式化
cryptsetup luksFormat /dev/sdc1
4.打开并自动挂载加密的磁盘
cryptsetup luksOpen /dev/sdc1 test
该命令使得/dev/sdc1加密后的分区直接映射到/dev/mapper/test分区上,我们在真正读写分区时使用的是/dev/mapper/test分区
5.格式化映射的设备,格式化成ext4文件系统
mkfs.ext4 /dev/mapper/test
6.挂载
mount /dev/mapper/test /mnt/test
可利用df -TH查看挂载,或者写入一个文件到挂载点/mnt/test
7.使用完成后卸载,卸载挂载点test
umount /mnt/test/
8.关闭映射的设备
cryptsetup luksClose test
上述过程中,对分区的读写操作是不会出现输入密码验证的,只有在关闭映射的设备之后再重新打开时才会要求输入密码,这时候起到了加密的作用。
另外注意luks是Linux特有的,在unix、mac、windows等操作系统下通过luks加密的磁盘是无法打开的。
使用秘钥免密码验证
1.使用随机数生成一个密码文件,为4096位即可
dd if=/dev/urandom of=/passwd_test bs=4096 count=1
2.对密码文件设置权限,其他人不允许读取和写入,600
chmod 600 /passwd_test
3.用key加密对上面做的/dev/sdc1加密
cryptsetup luksAddKey /dev/sdc1 /passwd_txt
4.编辑/etc/crypttab,配置认证秘钥
5.编辑/etc/fstab,配置开机自动挂载
上面配置完成后,重启系统,/mnt/test会自动挂载。