Debian中加密分区的简单使用

5011阅读 0评论2007-09-25 blue_stone
分类:LINUX

Debian中加密分区的简单使用
       作者:blue_stone(blue_stone@xinhuanet.com)
       转载请注明出处: http://bluestone.cublog.cn
本文简单介绍Debian 4.0中引入的加密分区的使用, 未在其他Linux系统上验证.

1 加密分区的建立,使用与关闭

要使用加密分区, 须安装cryptsetup软件包.

首先需在磁盘上建立分区, 分区类型可选择任意分区类型, 因为加密分区不使用分区类型这一标识.

debian4:~# fdisk -l /dev/sdb1

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1044     8385898+  16  Hidden FAT16

然后使用cryptsetup luksFormat 命令加密分区,加密过程中会提示输入两次相同的口令.

debian4:~# cryptsetup luksFormat /dev/sdb1

WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.

使用
cryptsetup luksOpen命令打开加密分区.

debian4:~# cryptsetup luksOpen /dev/sdb1 cpv1
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.

此时, /dev/mapper/cpv1可以像一个普通分区一样被使用,可以建立pv,建立文件系统等.

debian4:~# pvreate /dev/mapper/cpv1
  Physical volume "/dev/mapper/cpv1" successfully created

使用完毕后可使用cryptsetup luksClose关闭加密分区, /dev/mapper/cpv1也被移除.

debian4:~# cryptsetup luksClose cpv1
debian4:~# ls /dev/mapper/
control  debian4-root  debian4-swap_1

即时将包含该分区的硬盘挂载到其他系统上, 也必须知道密码才可以访问该分区中的数据, 这样就达到了数据保护的目的.

2 将系统安装到加密分区或加lvm上

自Debian4.0起, 分区时可选择"Guided - use entire disk and set up encrypted LVM", 这个选项将删除硬盘上的所有数据, 并建立一个200+M的ext3格式的分区用做/boot, 其他空间用做加密的lvm.

如果希望保留已经存在的数据, 则可选择手动分区方式, 在物理磁盘上创建一个分区, 用途选择"Physical volume for encryption". 如果选择Erase data 设置为yes, 安装程序将首先删除磁盘上的数据然后建立加密分区, 如果磁盘分区比较大, 则花费的时间也会比较长.

完成设置加密文区后, Partition disks屏幕将出现"configure encrypted volumes"选项.


选择"Configure encrypted volumes", 安装程序将提示输入加密分区的加密口令. 输入2次口令后完成加密分区设置. 此时Partition disks屏幕上出现加密后的分区. 加密分区可像普通分区一样被使用, 如建立文件系统, 建立物理卷等. 如果选择将该分区用于physical volume for LVM, 则会出现"Configure the Logical Volume Manager"选项用于配置lvm.



配置逻辑卷后可将系统安装在加密的逻辑卷上.

3 通过安装光盘访问加密卷中的数据.

使用rescue或install方式引导安装光盘后, 可用Alt+F2启动一个终端, 但此时安装程序还没有加载cryptsetup, 也就无法对加密分区进行操作. 可通过在Partition Disks屏幕选择任意分区, 并设置该分区用途为"Physical volume for encryption", 则安装程序将加载cryptsetup. 在终端中也可以使用cryptsetup及lvm命令对分区进行操作.

/etc/crypttab用于保存加密分区的信息, 示例如下:

cpv1 /dev/hda5 none luks

如果修改了系统中加密分区的设置, 比如增加或删除了加密分区, 则应当相应修改/etc/crypttab的设置, 并运行update-initramfs更新initrd镜像. 否则系统启动时可能由于无法找到有效的加密分区信息而导致启动失败.

参考资料:


更新1(on 2010-11-16):
在使用过程中如果出现如下错误:

cryptsetup --verbose --verify-passphrase -c aes-cbc-essiv:sha256 luksFormat /dev/sdb2

WARNING!
========
This will overwrite data on /dev/sdb2 irrevocably.

Are you sure? (Type uppercase yes): YES   
Enter LUKS passphrase:
Verify passphrase:
semid 491522: semop failed for cookie 0xd4d9ebb: incorrect semaphore state
Failed to set a proper state for notification semaphore identified by cookie value 223190715 (0xd4d9ebb) to initialize waiting for incoming notifications.
Command successful.

可以通过插入sha512_generic内核模块的方式解决, 原因未知.

modprobe sha512_generic





上一篇:LinuxWorld China记行
下一篇:Debian下驱动bcm43xx无线网卡