下一页 上一页 目录

4. 使用 Sentry 防火墙 CD-ROM

4.1 简介

从 /etc/rc.d/rc.S 运行的配置脚本首先查找名为 'sentry.conf' 的配置文件,该文件位于软盘上,如果存在,则会被挂载到 /floppy。 为了让用户能够在任何特定环境中使用 Linux 系统,用户必须能够用自己的副本替换系统默认文件。 'sentry.conf' 文件基本上告诉配置脚本应该替换哪些文件以及这些文件在哪里。

在 Sentry 防火墙 CD 的 /SENTRY/scripts/cd-config/ 目录中可以找到 sentry.conf 文件的良好示例。 配置软盘镜像 (1.44M) 也可以在 CD 的 /SENTRY/images/ 中找到。 这些文件也可以在网站 http://www.SentryFirewall.com/ 上找到


4.2 sentry.conf 文件

系统的主配置文件名为 'sentry.conf'。 它将首先在软盘 (/dev/fd0) 上查找。 该文件接受多个配置指令,其中许多指令将在下面讨论。


示例

一个基本的配置文件如下所示('#' 符号后的所有内容都被解释为注释)

----snip----
## Basic Sentry Firewall CD config file(sentry.conf)

rc.local = /floppy/config1/rc.local
fstab = /floppy/config1/fstab

passwd = /floppy/config1/passwd
shadow = /floppy/config1/shadow

# EOF #
----snip----

语法非常简单,默认的 'rc.local' 文件将被位于 '/floppy/config1/' 目录中的用户定义的 'rc.local' 文件替换。 'fstab'、'passwd' 和 'shadow' 文件也是如此。 但重要的是要记住,sentry.conf 文件首先会在 /dev/fd0 上查找,如果找到,则会挂载到 /floppy。 这就是为什么所有这些文件都显示位于 /floppy 目录中,它只是软盘的挂载点。

注意: 从 1.3.0 版本开始,用户现在可以省略 `/floppy' 前缀。 因此,例如,sentry.conf 中说以下内容的行

   shadow = config1/shadow

将被假定为表示(在大多数情况下)以下内容

   fstab = /floppy/config1/shadow
只要 /floppy/config1/shadow 存在。


不幸的是,您不能随意替换文件,例如,以下内容可能无法正确解析

     foo.conf = /floppy/config1/foo.conf

配置脚本仅识别一定数量的配置文件,因此它可能不知道如何处理 "foo.conf"。 但是,还有其他非常简单的方法可以将配置文件复制到其正确的位置。 这些方法将在下面讨论。


4.3 网络配置

从 1.0.5 版本开始,识别新的配置指令语法; 带有 "http://" 或 "ftp://" 前缀的指令。 这基本上意味着现在支持以下语法

     inetd.conf = ftp://[user:pass@]123.123.123.123/config1/inetd.conf
     hosts = http://[user:pass@]123.123.123.123/config1/hosts

从 1.3.0 版本开始,也支持 "https://", "scp://", 和 "sftp://" URL。 例如

     shadow = scp://<user>:<pass>@123.123.123.123/dir/shadow
     passwd = sftp://<user>:<pass>@123.123.123.123/dir/passwd
     fstab = https://[user:pass@]123.123.123.123/dir/fstab

注意: 通过 scp 或 sftp 检索文件时,用户名和密码字段是必需的。 不允许使用空密码。


为了实现这一点,配置脚本需要能够设置以太网接口,并从 sentry.conf 文件中获取名称服务器信息。 完成此操作的语法如下

     device{1..10} = <device>:<driver>:<IP address>[|Gateway_IP]

     or..

     device{1..10} = <device>:<driver>:dhcp[|Hostname]

以及设置名称服务器

     nameserver = <IP_ADDRESS>


此外,当使用 "http"、"https" 或 "ftp" 检索文件时,您还可以设置代理服务器。 以下指令将允许您这样做(并非所有指令都可能对您的设置是必需的)

     http_proxy = http://<hostname>/
     ftp_proxy = http://<hostname>/
     proxy-user = <PROXY_USER>
     proxy-passwd = <PROXY_PASSWORD>

也可能需要被动 FTP。 如果是这样,请使用 'passive-ftp' 选项,即

     passive-ftp = <on|off>  ## Default == off


因此,例如,要设置一个名为 "eth0" 的接口,它使用 "tulip" 驱动程序并且可以从 DHCP 服务器获取其 IP 地址,我们可以使用以下行

     device1 = eth0:tulip:dhcp

如您所见,总共允许 10 个设备。 假设我们现在要设置一个接口 "eth1",它使用 "rtl8139" 芯片,并具有静态 IP (192.168.1.2) 和默认网关 (192.168.1.1)

     device2 = eth1:8139too:192.168.1.2|192.168.1.1

注意: 重要的是要记住,无论您在配置过程中设置了哪些设备,都将在配置完成后立即关闭。 此设置仅用于您可以通过网络,通过 http(s)/ftp/scp/sftp 检索配置文件。 有关更永久的网络配置,请使用 rc.inet1 文件。


示例

----snip----
## Basic Sentry Firewall CD config file to retrieve files via HTTP(s)/FTP/SCP/SFTP.

device1 = eth0:tulip:192.168.1.2|192.168.1.1
nameserver = 123.123.123.123  ## This should be the IP of your DNS server.

rc.M = ftp://user:pass@config.sentry.net/node1/rc.M
rc.inet1 = http://user:pass@config.sentry.net/all_nodes/rc.inet1

passwd = scp://user:pass@config.sentry.net/all_nodes/passwd
shadow = sftp://user:pass@config.sentry.net/node1/shadow

# EOF #
----snip----


4.4 其他有用的配置指令

将文件 /floppy/someconfig.conf 复制到 /etc/someconfig.conf -

     /floppy/someconfig.conf |= /etc/someconfig.conf

     OR, this does the same thing -

     /etc/someconfig.conf = /floppy/someconfig.conf

     and this is also possible(v1.3.0) -

     /etc/someconfig.conf = ftp://<server>/someconfig.conf

创建一个名为 /etc/someconfig.conf 的符号链接,指向 /etc/otherconfig.conf -

     /etc/someconfig.conf => /etc/otherconfig.conf

include 指令。 从另一个位置获取另一个 sentry.conf 文件 -

     include = ftp://user:pass@config.sentry.net/node1/sentry.conf

但是请记住,include 指令是最先被解析的指令之一。 从包含的 sentry.conf 文件中解析出的任何与先前解析的 sentry.conf 文件中的指令冲突的配置指令都将覆盖旧的指令。


4.5 将所有内容放在一起,从单个位置管理多个节点。

为了从单个位置管理多个节点,您可以使用位于软盘上的裸 sentry.conf 文件,然后从您的 ftp 或 http 服务器获取文件。

----snip----
## Basic Sentry Firewall CD config file.

device1 = eth0:tulip:dhcp
nameserver = <DNS_IP>
include = ftp://user:pass@config.sentry.net/node1/sentry.conf

----snip----

然后将解析包含的 sentry.conf 文件,并根据需要通过 http 或 ftp 替换文件。 您现在可以在中心位置编辑您的 sentry.conf 和配置文件。


4.6 示例 sentry.conf 和磁盘镜像

CD-ROM 上提供了示例配置磁盘镜像。 该磁盘是 ext2 格式化的磁盘,位于 CD 上的 '/SENTRY/images/' 目录中。 磁盘上还有一个非常完整的 sentry.conf 文件,可以帮助澄清许多这些指令。 使用如下命令创建配置磁盘

blah@wherever:~$ dd if=/cdrom/SENTRY/images/ext2-144.img of=/dev/fd0
2880+0 records in
2880+0 records out

磁盘镜像和示例 sentry.conf 文件也可以在网站 http://www.SentryFirewall.com/ 上找到



下一页 上一页 目录