如何在Linux中加密根文件系统

时间:2020-03-05 15:27:18  来源:igfitidea点击:

了解如何需要计算机boot子,因为解锁加密的根文件系统是对引导过程的一体化。
当前,稳定的内核系列,2.6,可选择使用initramfs来帮助启动,InitRamfs是一个CPIO存档,即内核现在知道如何解压缩进入基于内存的磁盘。
此未包装的文件系统包含一个传统上加载挂载根文件系统所需的内核模块的脚本。
在我们的情况下,此脚本还解锁了加密的根文件系统。

Linux提供了几个文件系统加密接口。
还存在提供加密环回设备的几个Cryptoloop变体。
本文侧重于最近的2.6 Linux内核提供的DM-Crypt接口。
此接口目前是Fedora项目的首选,DM-Crypt模块由Fedora的内核包提供。
还需要是一个静态链接的CryptSetup。
此实用程序简化了DM-Crypt设备的管理。
最后,分组和HFSutils用于管理引导文件系统。
现在类似的接口被移植到New CentOS/RHEL 6 2.6内核默认情况下,我将在此传统集中向我们展示描述了基于Fedora模块使用的方法。

在设置加密文件系统之前,我们应该随机化它将占用的分区。
这消除了有关磁盘内容的潜在信息泄漏。
通过将其内容与随机数据覆盖其内容来随机分配,例如:如果分区为/dev/hda1

# dd if=/dev/urandom of=/dev/hda1

这个过程可能需要很长时间,因为创建随机数据有些困难。

加密文件系统的步骤

加密有步骤才能进行加密

1)确保AES,DM-MOD和DM-Crypt模块已加载到内核中。

2)卸载将托管加密的根文件系统,/dev/hda4,from/home的分区

# umount /dev/hda1

3)创建一个随机的256位加密密钥并将其存储在/etc/root-key

# dd if=/dev/urandom of=/etc/root-key bs=1c count=32

此键将稍后复制到闪存盘。

4)创建DM-Crypt设备,使用刚刚生成的密钥加密

# cryptsetup -d /etc/root-key create root /dev/hda1

访问'/dev/mapper/root'现在在/dev/hda4上提供加密图层。
默认情况下,CryptSetup创建AES加密的DM-Crypt设备,并假定一个256位的键空间。

5)在"/dev/mapper/root"上创建ext3文件系统

# mkfs.ext3 /dev/mapper/root

6)安装新文件系统

# mkdir /mnt/encroot
# mount /dev/mapper/root /mnt/encroot

7)现在我们有一个加密的文件系统,必须使用/dev/hda5(原始根文件系统)的内容填充它

# cp -ax//mnt/encroot

8)最后,在'/mnt/concoot/etc/crypttab中创建一个条目,以便各种实用程序知道如何配置文件系统

root /dev/hda1 /etc/root-key cipher=aes

现在我们准备好了加密文件系统。

在新的Rhel6中可以找到类似的且相反的透视图,其中我们具有Luks(卷加密)的概念,其外观非常杀死(Linux统一键设置)以及ECRYPTFS,它提供数据和提供数据的"伪文件系统"文件名基于每个文件加密。

术语"伪文件系统"是指ECRYPTFS没有磁盘格式的事实;相反,它是一个驻留在实际文件系统之上的文件系统层。
ECRYPTFS层提供加密功能。

ECRYPTFS类似于绑定安装程序,因为它拦截写入底层(即加密)文件系统的文件操作。
ECRYPTFS层将标题添加到底层文件系统中的文件的元数据。
此元数据描述该文件的加密,并且ECRYPTFS在传递到加密文件系统之前加密文件数据。
可选地,EcryPTF也可以加密文件名。

eCryptfs不是磁盘文件系统;它不是磁盘上的文件系统。 因此,无需通过诸如mkfs之类的工具来创建它。 而是通过发出特殊的安装命令来启动eCryptfs。 要管理受eCryptfs保护的文件系统,必须首先安装ecryptfs-utils软件包。