利用luks加密linux磁盘

版权声明:本文来自kid_2412的csdn博客,欢迎转载! https://blog.csdn.net/kid_2412/article/details/61615407

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会自动挂载。

猜你喜欢

转载自blog.csdn.net/kid_2412/article/details/61615407