当前位置: 代码网 > 服务器>网络安全>加密解密 > 教你加密Root文件系统(图)

教你加密Root文件系统(图)

2008年10月08日 加密解密 我要评论
教你加密Root文件系统(图) 当你不能依靠物理安全来保证你文件的安全时,是时候采取额外的步骤加密文件系统了,虽然本文涉及到的是基于PowerPC的系统,但原则上来说也适用于其他架构的系统。   在另一篇文章... 08-10-08
netbsd/macppc的安装指令对open firmware做了一个充分的介绍,我们对使用open firmware命令行接口配置计算机从一个闪存盘启动非常感兴趣,open firmware允许你查看连接到计算机的设备和设置固件程序变量的值。
  在一个新世界(g3或更新的)苹果计算机初始化启动过程中,可以通过暂停选择性命令来访问open firmware提示符。
  变量boot-device用于确定系统将从哪个设备启动,printenv命令允许查看当前的值:
  > printenv
  [...]
  boot-devicehd:,\\:txbihd:,\\:txbi
  这实际上意味着通过执行在第一块ide磁盘上hfs类型txbi的文件来实现启动的,第二:txbi前的字符作为解释一个hfs文件类型的标志,否则,txbi可能被理解为文件路径,假如这样,标志hd实际上是更复杂的/pci@f4000000/ata-6@d/disk@0的一个别名,这个字符串通过子系统变量表现了路径,你可以使用open firmware命令查看设备对应的别名。
  网络正确地设置boot-device,我们需要找出open firmware认出的我们闪存盘的名字,通过ls命令显示闪存盘路径,并打印出设备树:
> dev / ls
[...]
/pci@f2000000
[...]
/usb@1b,1
[...]
/disk@1
[...]
    现在我们知道了一点关于计算机固件程序的知识,我们必须花些时间研究固件初始化执行程序:bootloader。通常,运行在苹果powerpc架构上的linux系统使用一个叫做yaboot的程序来启动系统,yaboot与lilo或grub类似,它包含两个关键程序:ofboot.b和yaboot。ofboot.b提供第一阶段启动过程,实际上,ofboot.b的工作决定了启动什么操作系统,例如:如果一台电脑上同时安装了mac os x和linux系统,ofboot.b执行mac os x或linux的bootloader,如果用户选择载入linux,ofboot.b执行yaboot,第二阶段启动过程,然后yaboot载入linux内核和initrd。图3提供了一个基于powerpc架构的linux如何使用一个加密的root文件系统启动的实例。
  

  图3
  用open firmware启动一个基于powerpc系统的过程
  我们的可移动启动设备需要ofboot.b和yaboot程序,一个linux内核和一个包括加密密钥的initrd文件。苹果目前基于powerpc的架构预设它的启动介质格式化为hfs。
  1)使用parted程序在闪存盘上创建正确的可启动的分区(我的是64mb大小,用设备节点/dev/sda访问) 
# parted /dev/sda
(parted) mklabel mac
(parted) print
disk geometry for /dev/sda: 0.000-62.500 megabytes
disk label type: mac
minor start end filesystem name flags
1 0.000 0.031 apple
(parted) mkpart primary hfs 0.031 62.500
(parted) print
disk geometry for /dev/sda: 0.000-62.500 megabytes
disk label type: mac
minor start end filesystem name flags
1 0.000 0.031 apple
2 0.031 62.500 untitled
(parted) set 2 boot on
(parted) name 2 apple_boot
(parted) quit
  2)在启动分区上创建hfs文件系统
  # hformat /dev/sda2
  3)通过修改/mnt/encroot/etc/yaboot.conf配置yaboot启动恰当的设备,下面是一个最小配置例子:
  
boot=/dev/sda2
ofboot=/pci@f2000000/usb@1b,1/disk@1:2
partition=2
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot
default=linux
image=/vmlinux
label=linux
root=/dev/hda4
initrd=/initrd.gz
read-only
  值/pci@f2000000/usb@1b,1/disk@1:2来自我们先前检查的open firmware设备树,/pci@f2000000/usb@1b,1/disk@1是pci总线f2000000上的第一块usb磁盘,最有兴趣的是:2意味着分区2
  4)安装启动程序和内核到/dev/sda2:
# ybin --config /mnt/encroot/etc/yaboot.conf -v
# mount /dev/sda2 /media/usbstick
# cp /boot/vmlinux /media/usbstick
  就此,initrd必须被安装到闪存盘上,fedora提供了一个叫做mkinitrd的工具来创建initrd,然而,在写本文的时候,mkinitrd还不支持加载一个加密的root文件系统,补丁在https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=124789,一旦应用了补丁,mkinitrd就可以读取/etc/crypttab并创建一个恰当的initrd了:
  1. mkinitrd --authtype=paranoid -f /media/usbdisk/initrd.gz
  2. umount /media/usbstick
  文件/mnt/encroot/etc/fstab应该被更新反映出变化:
  /dev/mapper/root / ext3 defaults 1 1
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com