?在Ubuntu Linux中加密分区技术(cryptsetup)
Debian,Ubuntu,还有Fedora都可以用cryptsetup-luks了。你不需要修改内核或者其他任何东西;你只要安装就行了。
Debian和Ubuntu 系列上:
# aptitude安装cryptsetup
在Fedora上:
#yum安装cryptsetup-luks
让系统做好准备
不幸的是,cryptsetup不能给你系统中现有的数据加密;因此你必须创建加密的分区,然后将数据转移到新建的分区中。用GParted(Gnome分区编辑器)来管理分区很方便,所有主流的Linux版本上都有GParted。你可以用它重新设置分区大小、移动、删除或者创建分区,并且可以选择自己喜欢的文件系统格式化方式。它能够支持你系统内核所支持的所有的分区类型以及文件系统,因此如果你机器上是双系统的话,你甚至可以在Windows分区上使用该工具。如果是新的硬盘分区上的话,你可以用Gparted live CD。
本文中我们只探讨怎样给数据分区加密。我也知道许多方法可以给其他文件系统的、保存了潜在的敏感信息的那些分区加密,比如/var和/etc,但是这两个都很复杂并且刁钻,它们都不能能在启动的时候加密。因此,我这里只讨论现有的比较成熟的这些,因为根据我自己的测试,其他那些方法还无法稳定工作。
你用一种文件系统将分区格式化并没有什么关系,所有东西都可以重写,加密后文件格式也是可变的。
你将用密码来保护你的加密分区。如果你把密码弄丢了,那就太不幸了,你就无法取回这些数据了。
给分区加密
有了新的空白分区后,你可以用cryptsetup命令来给它加密。注意一定确保是在加密要保护的那个分区:
# cryptsetup --verbose --verify-passphrase -c aes-cbc-plain luksFormat /dev/sda2
当心!
这将把不可逆转地改写/dev/sda2 上的数据。
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.
以上命令创建加密的分区。现在我们需要创建可以装载的逻辑分区,并给它命名。本例中,我们给它命名为sda2,你也可以叫它test、fred、我的秘密分区或者任何你喜欢的名字:
# cryptsetup luksOpen /dev/sda2 sda2
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
如下命令将显示/dev/mapper路径中的隐藏设备:
$ ls -l /dev/mapper
total 0
crw-rw---- 1 root root 10, 63 2007-06-09 18:38 control
brw-rw---- 1 root disk 254, 0 2007-06-09 19:46 sda2
现在把文件系统放到逻辑分区上:
# mkfs.ext3 /dev/mapper/sda2
你需要做一个装载点,这样你就能装载并且使用这个新的、加密过的分区了。记住,你必须从/dev/mapper/路径下使用该设备。我会把它放在根目录下。注意哪些需要根权限的操作:
$ mkdir /home/me/crypted
# mount /