您的硬盘 (hda) 应该至少包含三个分区
hda1: 这个小的未加密分区将要求输入密码,以便挂载加密根文件系统。
hda2: 这个分区将包含您的加密根文件系统;请确保它足够大。
hda3: 这个分区保存当前的 GNU/Linux 系统。
此时,hda1 和 hda2 都是未使用的。 hda3 是您当前安装的 Linux 发行版的位置;/usr 和 /boot 必须不能与此分区分离。
这是一个您的分区布局可能看起来像什么样的例子
# fdisk -l /dev/hda Disk /dev/hda: 255 heads, 63 sectors, 2432 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 1 1 8001 83 Linux /dev/hda2 2 263 2104515 83 Linux /dev/hda3 264 525 2104515 83 Linux /dev/hda4 526 2047 12225465 83 Linux |
如果您使用 Debian,以下软件包是强制性的
apt-get install gcc make libncurses5-dev patch bzip2 wget |
为了更方便地复制 & 粘贴,您还应该安装
apt-get install lynx gpm |
有两个主要的项目在内核中添加了环回加密支持:cryptoloop 和 loop-AES。 本 HOWTO 基于 loop-AES,因为它具有用汇编语言实现的极速且高度优化的 Rijndael 实现,因此如果您有 IA-32 (x86) CPU,则可以提供最佳性能。 此外,关于 cryptoloop 存在一些 安全担忧。
首先,下载并解压 loop-AES 软件包
cd /usr/src wget http://loop-aes.sourceforge.net/loop-AES/loop-AES-v3.0b.tar.bz2 tar -xvjf loop-AES-v3.0b.tar.bz2 |
然后您必须下载并为内核源码打补丁
wget http://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.29.tar.bz2 tar -xvjf linux-2.4.29.tar.bz2 cd linux-2.4.29 rm include/linux/loop.h drivers/block/loop.c patch -Np1 -i ../loop-AES-v3.0b/kernel-2.4.28.diff |
设置键盘映射
dumpkeys | loadkeys -m - > drivers/char/defkeymap.c |
接下来,配置您的内核;确保设置了以下选项
make menuconfig Block devices ---> <*> Loopback device support [*] AES encrypted loop device support (NEW) <*> RAM disk support (4096) Default RAM disk size (NEW) [*] Initial RAM disk (initrd) support File systems ---> <*> Ext3 journalling file system support <*> Second extended fs support (important note: do not enable /dev file system support) |
编译内核并安装它
make dep bzImage make modules modules_install cp arch/i386/boot/bzImage /boot/vmlinuz |
如果 grub 是您的引导加载程序,请更新 /boot/grub/menu.lst 或 /boot/grub/grub.conf
cat > /boot/grub/menu.lst << EOF default 0 timeout 10 color green/black light-green/black title Linux root (hd0,2) kernel /boot/vmlinuz ro root=/dev/hda3 EOF |
否则,更新 /etc/lilo.conf 并运行 lilo
cat > /etc/lilo.conf << EOF lba32 boot=/dev/hda prompt timeout=60 image=/boot/vmlinuz label=Linux read-only root=/dev/hda3 EOF lilo |
您现在可以重启系统了。
按照上一节所述进行操作,使用 loop-aes 的 kernel-2.6.10.diff 补丁代替,并确保未激活 cryptoloop 支持。 请注意,模块支持要求您安装了 module-init-tools 软件包。
losetup 程序是 util-linux 软件包的一部分,必须对其进行修补和重新编译,以添加强大的密码学支持。 下载、解压并修补 util-linux
cd /usr/src wget http://ftp.kernel.org/pub/linux/utils/util-linux/util-linux-2.12p.tar.bz2 tar -xvjf util-linux-2.12p.tar.bz2 cd util-linux-2.12p patch -Np1 -i ../loop-AES-v3.0b/util-linux-2.12p.diff |
要使用少于 20 个字符的密码,请输入
CFLAGS="-O2 -DLOOP_PASSWORD_MIN_LENGTH=8"; export CFLAGS |
安全当然是您主要关注的问题。 因此,请不要启用少于 20 个字符的密码。 数据隐私不是免费的,人们必须以长密码的形式“支付”。
编译 losetup 并以 root 身份安装它
./configure && make lib mount mv -f /sbin/losetup /sbin/losetup~ rm -f /usr/share/man/man8/losetup.8* cd mount gzip losetup.8 cp losetup /sbin cp losetup.8.gz /usr/share/man/man8/ chattr +i /sbin/losetup |