Next Previous Contents

8. 构建自定义 Sentry CD

8.1 简介

本节将尝试描述如何创建自定义 Sentry 防火墙 CDROM。不幸的是,我没有时间深入到每个细节。但至少我将尝试为您提供 CD 创建过程的概述。


8.2 开发系统(我的方法)

我的开发系统由两个独立的 Linux 安装组成,它们是相同的发行版,具体取决于我正在处理哪个分支。首先,我在我的主硬盘(/dev/hda)上安装了一个非常完整的 <此处插入 Linux 发行版>。然后我有一个 /dev/hdb1,我在其上安装了另一个精简的安装 - 这个安装通常没有编译工具或 X 相关的东西。

我通常将 /dev/hdb1 挂载在 /mnt 上,这不是一个关键要素,但我想我会提到它,因为从现在开始我会经常提到 /mnt。然后我在 /dev/hdb1 安装上有一个名为 /CD-FW 的目录,也就是说,如果 /dev/hdb1 挂载在 /mnt 上,那么该目录将被称为 /mnt/CD-FW/。在整个过程中,/dev/hda 上的安装是正在运行的系统,我从这里编译所需的工具、内核等,并基本上运行所有东西。

为了方便您,Sentry 防火墙 CD ISO 基本上是我硬盘上 /mnt/CD-FW/ 中内容的精确副本。我只是在 /mnt/CD-FW 上使用 'mkisofs' 实用程序来创建 ISO 镜像。

如果您只是想开始,也许可以尝试以下步骤

NOTE: 上述命令在处理某些文件(即硬链接)时可能会 spit out 错误。这些错误很烦人,但它们根本不关键。

现在您有了一个像我自己的开发系统,或者类似的 :-)

现在,如果您想安装 rpm 更新或 Slackware 软件包更新(使用 upgradpkg),您可以执行以下操作

root@mybox:~# cd /mnt; chroot /mnt

root@mybox:/# upgradepkg update.tgz
or
root@mybox:/# rpm --upgrade update.rpm

$ exit

然后,我需要做的就是重新运行上面提到的脚本,即复制所有这些文件的脚本,以更新 /mnt/CD-FW 目录。


8.3 RAMdisk 镜像

这都很棒,但现在到了困难的部分...制作 ramdisk。如果您查看 CDROM 上的 /isolinux 目录,您会看到一堆文件,其中一个是名为 'initrd.img' - 还有其他几个,例如 isolinux.cfg、message.txt 和 isolinux.bin。这些文件是 isolinux 正常工作所必需的。查看这些文件以及 syslinux 附带的文档,以更好地了解所有这些文件的作用。无论如何,'initrd.img' 文件实际上是压缩的 ramdisk 镜像。

要查看镜像,请执行以下操作

blah@wherever:~$ cp /cdrom/isolinux/initrd.img /tmp/initrd.img.gz
blah@wherever:~$ gzip -d /tmp/initrd.img.gz
blah@wherever:~$ mount -o loop /tmp/initrd.img /MOUNT_POINT

简而言之,我使用文件 '/SENTRY/scripts/MK-CD/mkrootdsk.sh' 来创建 rootdisk。请在使用它之前阅读该文件和免责声明。它在我的系统上运行良好,但在您的系统上可能根本无法运行良好。它基本上尝试创建一个 rootdisk 镜像以用于 Sentry CD,但它非常长,有时可能有点难以理解。这就是当我开始乱搞并且未能利用适当的儿童安全约束时发生的事情。


8.4 制作 ISO 镜像

我使用的下一个文件称为 'mkiso.sh'。该脚本通常只是声明一些变量并运行 'mkisofs' 实用程序。我通常运行的命令如下所示

root@mybox:~# cd /mnt/CD-FW
root@mybox:/mnt/CD-FW# mkisofs -o sentrycd.iso -R -V "Sentry Firewall CD [v1.x.x]" -v \
   -T -d -D -N \
   -b isolinux/isolinux.bin \
   -c isolinux/eltorito.cat \
   -no-emul-boot -boot-load-size 4 -boot-info-table \
   -A "Sentry Firewall CD v1.x.x" .
........

就是这样,我刻录 CD 并进行测试。作为参考,以下文件在 CDROM 和 http://www.SentryFirewall.com/ 上在线提供



Next Previous Contents