1. 准备系统

1.1. 设置分区布局

您的硬盘 (hda) 应该至少包含三个分区

此时,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

1.2. 必需的软件包

如果您使用 Debian,以下软件包是强制性的

apt-get install gcc make libncurses5-dev patch bzip2 wget

为了更方便地复制 & 粘贴,您还应该安装

apt-get install lynx gpm

1.3. 安装 Linux-2.4.29

有两个主要的项目在内核中添加了环回加密支持: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

您现在可以重启系统了。

1.4. 安装 Linux-2.6.10

按照上一节所述进行操作,使用 loop-aes 的 kernel-2.6.10.diff 补丁代替,并确保激活 cryptoloop 支持。 请注意,模块支持要求您安装了 module-init-tools 软件包。

1.5. 安装 util-linux-2.12p

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