下一页 上一页 目录

2. CD 工作原理(概述)

本节只是一个概述,解释哨兵防火墙 CD 的工作原理,即从加载内核到运行位于 RAMDisk 上的哨兵防火墙 CD 配置脚本的过程。


2.1 启动过程

从 CD-ROM 启动是一个相当熟悉的过程。BIOS 执行引导加载程序 (Syslinux) - 然后显示启动提示符,并将内核和 ramdisk 加载到内存中。一旦内核运行,ramdisk 就会被挂载为根目录 (/)。

部署基于 CD-ROM 的系统的一个显而易见的需求是能够为具有不同配置的各种环境动态配置系统,这正是本项目大部分工作致力于构建的内容。一个简单的方法是让用户能够在实际使用之前自定义位于 /etc/rc.d 中的启动脚本,以及自定义其他重要的系统配置文件。

在启动时,/etc 和 /etc/rc.d 目录几乎是空的。在 Slackware 系统上,第一个要运行的 rc 文件是 /etc/rc.d/rc.S - 正是从这个文件中,我们运行配置脚本,这些脚本查找配置文件 (sentry.conf),并将正确的配置和系统文件放置在 /etc 和 /etc 下的各个子目录中。在其他 Linux 系统(如 RedHat)上,配置脚本将从 rc.sysinit 运行。如果特定文件没有配置指令,或者找不到配置文件,则会使用默认的系统文件 - 这些文件位于 ramdisk 上的 /etc/default/* 中。


2.2 ISOLINUX

早期版本的哨兵防火墙 CD 使用了 2.88MB 软盘仿真方法,以及 lilo 或 syslinux 来引导内核并加载 ramdisk。事实证明,这种方法非常有限,原因有二:A) 压缩的 ramdisk 和内核的总大小被限制为 2.88MB,B) 与当前方法相比,它非常慢。

哨兵防火墙 CD 目前正在使用 isolinux.bin 引导记录,不进行仿真,以便正确启动 CD。这使我们能够使用更大的 ramdisk,并在启动时提供多种内核选择。

有关 syslinux 的更多信息,请访问 syslinux.zytor.com


2.3 CD 配置脚本

如前所述,我们的配置脚本位于 ramdisk 上的 /etc/rc.d/SENTRY/ 中,通常从 /etc/rc.d/ 中的 rc 脚本运行。第一个要运行的脚本名为 'cd-config.pl',它本质上是整个程序的主线。其他使用的脚本名为 'get_config.pl'、'process_conf.pl'、'do_config.pl' 和 'networking.pl'。这些脚本是专门为本项目编写的,本质上是整个配置过程的核心。

对这些脚本的深入审查超出了本文档的范围,但在网站上提供的名为 'DOCUMENTATION' 的文件中有所涉及 (http://www.SentryFirewall.com/)。这些文件是用 perl 编写的,主要做几件重要的事情:读取和解析配置文件 (sentry.conf),定位和检索 sentry.conf 文件中详细说明的重要文件,并将系统默认文件替换为用户在配置文件中定义的那些文件。



下一页 上一页 目录