linux硬盘加密

2018-12-04 17:30:49 7584

硬盘加密方案一

通过分区加密启用数据保密

LUKS ( Linux 统一密钥设置)是标准的设备加密格式。 LUKS 可以对分区或卷进行加密。必须首先对加密的卷进行解密,才能挂载其中的文件系统。

首先你想加密分区,你应该分出一个分区吧,

创建分区

fdisk -cu /dev/sdb

输入大写的YES

进入之后按 n 键创建一个新分区。按w 保存推出后,记得用partx -a /dev/sdb  加载新添加的模块,或者重启也可以。

分区加密

cryptsetup  luksFormat /dev/sdb1(假设你新创建的分区为/dev/sdb1)

这条命令的作用是对新分区进行加密,并设置解密密码

cryptsetup  luksOpen /dev/sdb1   wcl

您输入此条命令之后,系统会提示你输入你刚设置的密码,输入正确的解密密码之后,cryptsetup luksOpen /dev/sdb1   wcl 会将加密的卷 /dev/sdb1 解锁为 /dev/mapper/wcl

(这里的/dev/sdb1 和 crypttest都是不确定的哦,这里只是方便理解)

格式化分区

mkfs.ext4 /dev/mapper/wcl

格式化加密分区,注意此处的加密是在格式化之前进行的加密,属于底层加密,安全性更好,而且此处写的时候不要写/dev/sdb1 应该写成 /dev/mapper/wcl

创建挂载点,挂载文件系统

mkdir   /data

mount    /dev/mapper/wcl    /data

注意

完成之后不使用改分区的时候注意卸载和关闭哦!

umount   /data

cryptsetup  luksClose  wcl(锁定加密的卷)

开机自动挂载加密分区

假设你是新创建的分区没有进行过其他操作,那么你需要用:

fdisk /dev/sdb

cryptsetup  luksFormat /dev/sdb1假设你新创建的分区为/dev/vda3)

cryptsetup  luksOpen /dev/sdb1   wcl

mkfs.ext4 /dev/mapper/wcl

开机挂载

vi  /etc/fstab

/dev/mapper/wcl       /test        ext4         defaults    0 0

修改crypttab配置文件

vi  /etc/crypttab

wcl   /dev/sdb1  /root/passwd

设置卷的密码

echo redhat > /root/passwd (假设密码为redhat)

修改权限

chown   root.root    /root/passwd

chmod   600    /root/passwd

添加LUKS的密钥

cryptsetup   luksAddKey  /dev/sdb1        /root/passwd

 (使用此命令添加LUKS的密钥)

要是你做完第一个实验之后在做开机自动挂载加密分区的情况下,那么你只需要执行:

(1)  vi /etc/fstab

     /dev/mapper/wcl       /test        ext4         defaults    0 0

(2)  vi   /etc/crypttab

      wcl  /dev/sdb1            /root/passwd

(3)

    echo redhat > /root/passwd (假设密码为redhat)

    chmod  root     /root/passwd

    chmod  600      /root/passwd

(4) cryptsetup   luksAddKey  /dev/sdb1        /root/passwd

        (使用此命令添加LUKS的密钥)

倘若你要删除加密分区,那么你需要执行一系列操作如下:

umount    /test

rm -rf    /test

vi /etc/fstab  删除加密分区的那一条

vi   /etc/crypttab   删除里面的内容

cryptsetup luksClose  /dev/mapper/wcl

fdisk -cu /dev/sdb   进入之后删除该分区

硬盘加密方案2

安装eCryptFS

yum -y install ecryptfs-utils

 

创建登陆密码

ecryptfs-setup-private

会提示你输入新密码

 

挂载私人文件

创建文件夹

  mkdir/root/tPrivate

修改文件夹权限,使其他人无法访问这个文件夹

chmod 700 /root/tPrivate

c) 用ecrypt挂载文件夹(加密)

 mount -tecryptfs /root/tPrivate /root/tPrivate

 

d) 在挂载过程中会遇到询问提示

首先需要输入挂载密码(不同于登录密码)

然后需要选择密钥计算方式(直接回车为默认)

接着需要输入加密长度(直接回车为默认)

接着需要选择是否允许将未加密文件放入此文件夹中(默认为不允许)

此时提示挂载成功

 

测试

a)创建文件,并输入内容,例如:gedit/root/private/test   输入内容“this is a test filecontent”。

b)查看文件,输入 cat /root/private/test  会看到  this is a test file content 字样

c)卸载文件,输入"umount /root/private"

d)再次查看文件内容,输入cat /root/private/test,会看到乱码。

 

快速挂载(非开机自动挂载)

以后每次开机后访问加密数据前都需要重新挂载,你可以使用mount -t ecryptfs ~/company_secret ~/company命令来挂载,但每次都要手工输入一堆选项也挺烦人的。为了以后方便挂载,在~/.bashrc中加入别名:

alias mount_company="sudomount -t ecryptfs $HOME/company_secret $HOME/company -oecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_enable_filename_crypto=y,ecryptfs_passthrough=n,ecryptfs_fnek_sig=cbd6dc63028e5602(需从前面记录)"

 以后每次使用前只需要执行mount_company即可

 重装系统或移动数据

你只需要记住加密密码和ecryptfs_fnek_sig参数,则即使你要重装系统或移动数据,也可以用同样的命令对数据进行解密并挂载。

  

方案对比

方案一:

利用加密卷映射到硬盘上,硬盘放到其他电脑上读取不到任何信息

会提示格式化(格式化后更看不到了,没数据)

可以开机自动挂载和手动挂载

开机自动挂载不安全,因为会把密码写入到硬盘里面,并且读书数据不需要验证

 

方案二:

创建私人文件夹,挂载使用时会需要输入密码和各个参数选项,数据被拿到其他电脑上使用时,数据还在,也可以看,只不过是乱码

无法自动挂载,只能以手动方式挂载


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: