zoukankan      html  css  js  c++  java
  • 使用LUKS加密你的磁盘

    在此之前先介绍一下 LUKS:

    LUKS (Linux Unified Key Setup)是 Linux 硬盘加密的标准。 通过提供标准的磁盘格式,它不仅可以促进发行版之间的兼容性,还可以提供对多个用户密码的安全管理。 与现有解决方案相比,LUKS 将所有必要的设置信息存储在分区信息首部中,使用户能够无缝传输或迁移其数据。

    1.环境

    OS:Gentoo

    内核:4.9.95

    工具:cryptsetup

    2.内核配置(可选)

    通常来说,大部分发行版的内核都已经配置了相关的加密部分,因此非 gentoo 用户可以跳过此部分。

    配置 device mapper 和 crypt target:

    [*] Enable loadable module support

    Device Drivers --->

    [*] Multiple devices driver support (RAID and LVM) --->

    <*> Device mapper support

    <*>   Crypt target support

    配置加密 API:

    [*] Cryptographic API --->

    <*> XTS support

    <*> SHA224 and SHA256 digest algorithm

    <*> AES cipher algorithms

    <*> AES cipher algorithms (x86_64)

    <*> User-space interface for hash algorithms

    <*> User-space interface for symmetric key cipher algorithms

    编译新内核并配置应用,然后重启:

    # make -j9 && make modules_install && make install

    3.安装软件

    通常的发行版已经预装了该软件包,可以直接使用,下面是 Gentoo 的安装方法

    # emerge --ask sys-fs/cryptsetup

    4.创建加密分区

    注意,该操作会清空你选择分区或设备上的所有数据,请谨慎操作,输入大写的 YES 确认

    # cryptsetup -s 512 luksFormat /dev/sdd

    WARNING!

    ========

    This will overwrite data on /dev/sdd irrevocably.

    Are you sure? (Type uppercase yes): YES

    Enter passphrase: 

    Verify passphrase:

    5.利用密钥文件加密分区

    除了密码之外,还可以选择使用密钥文件解密你的硬盘,也就是相当于一个密钥,当然可以也可以只使用密钥文件或者同时使用密码与密钥文件。

    5.1.生成随机密钥文件

    # dd if=/dev/urandom of=/root/enc.key bs=1 count=4096

    5.2.添加密钥文件作为密码之一

    # cryptsetup luksAddKey  /dev/sdd /root/enc.key

    Enter any existing passphrase:

    6.移除解密密码

    移除普通密码:

    # cryptsetup luksRemoveKey /dev/sdd

    Enter LUKS passphrase to be deleted: ...

    移除 key file 密码:

    # cryptsetup luksRemoveKey -d /root/enc.key /dev/sdd

    注意:千万不要将所有密码移除,至少需要留有一个密码访问设备,移除操作不可撤销

    7.解密与挂载

    7.1.密码解密

    # cryptsetup luksOpen /dev/sdd myusb

    Enter passphrase for /dev/sdd:

    7.2.key file 解密

    # cryptsetup luksOpen -d /root/enc.key /dev/sdd myusb

    7.3.创建文件系统

    在挂载使用之前,我们仍然需要对设备创建文件系统才可以使用,可以选择任何你喜欢的文件系统,例如 btrfs、ext4、vfat、ntfs 等

    # mkfs.ext4 /dev/mapper/myusb

    mke2fs 1.43.6 (29-Aug-2017)

    Creating filesystem with 488448 4k blocks and 122160 inodes

    Filesystem UUID: 995e172a-2bc6-432c-a60f-2d4d7093e748

    Superblock backups stored on blocks:

    32768, 98304, 163840, 229376, 294912

    Allocating group tables: done

    Writing inode tables: done

    Creating journal (8192 blocks): done

    Writing superblocks and filesystem accounting information: done

    7.4.挂载

    现在可以像正常分区一样挂载我们的加密分区设备了

    # mount /dev/mapper/myusb /mnt/

    # df -h

    /dev/mapper/myusb  1.9G  5.7M  1.7G   1% /mnt

    7.5.卸载挂载点并关闭加密分区

    # umount /mnt

    # cryptsetup luksClose myusb

    8.总结

    在完成整个步骤以后,您现在需要做的就是妥善保管您的加密存储,可采用同样的方式加密多个设备进行备份,因为谁也不能保证这移动设备会不会在什么时候丢掉。

  • 相关阅读:
    谁知道怎么获得客户端的语系,不是encoding哦
    如何动态控制弹出窗体的大小
    维权成功!
    KFC的mm在练习做圣代
    CICD自动化发版系统设计简介
    java IO (File类)
    StringBuffer
    Arrays和比较器
    java正则
    Math和Random类
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/11796534.html
Copyright © 2011-2022 走看看