|
如果这些值全部无法匹配,就得查查编译内核时是否把 Masquerading 打开了。缺省情况下,这些选项在编译内核时是打开的。但如果您决定自己来编译 Linux 2.2.x 版本的内核,就必须对如下选项说 YES : CONFIG_EXPERIMENTALCONFIG_MODULESCONFIG_NETCONFIG_FIREWALLCONFIG_INETCONFIG_IP_FORWARDCONFIG_IP_MASQUERADECONFIG_IP_MASQUERADE_IPPORTFW CONFIG_IP_MASQUERADE_IPAUTOFWCONFIG_IP_MASQUERADE_ICMPCONFIG_IP_ALWAYS_DEFRAGCONFIG_DUMMYCONFIG_IP_MASQUERADE_MFW |
内核编译完毕,就要把防火墙安装为系统服务的一项。这样系统 初始化 时就会启动它。系统服务是系统启动过程中由系统初始进程执行的,不同的系统服务有不同的初始化优先级别。级别 0 表示系统完全卸载可以关断电源;级别 1 则表示没有网络支持的单用户模式;级别 2 和 3 一般用作网络支持的多用户模式,也就是多数机器的运行模式。还有一些其他的级别,但都不常用。 为了创建防火墙服务的开始脚本并安装在级别 2 和 3 下,首先要如下所示创建 ipchains 的系统"开始/关闭"脚本文件,并把它保存在 /etc/rc.d/init.d 或 /etc/init.d/ 目录下(保存在哪个目录据所使用 Linux 版本而定)。 #!/bin/sh# Firewalling with ipchains, startup/shutdown scriptPATH=/sbin:/bin:/usr/sbin:/usr/bin[ -f /etc/packetfiler.rules ] || exit 0 case "$1" in start) echo -n "Starting ipchains firewall:" /sbin/depmod -a# Comment the following line if you do not intend to support # using FTP through the firewall /sbin/modprobe ip_masq_ftp# Insert lines to support other application protocols here /sbin/ipchains-restore < /etc/firewall.rules || exit 1 echo "1" > /proc/sys/net/ipv4/ip_forward# If you do NOT use PPP, SLIP or DHCP for any of your network # interfaces on this machine, comment the following line echo "1" > /proc/sys/net/ipv4/ip_dynaddr echo "." ;; stop) echo -n "Shutting down ipchains firewall:" echo "0" > /proc/sys/net/ipv4/ip_forward# Comment the following line if you do NOT use PPP, SLIP or DHCP echo "0" > /proc/sys/net/ipv4/ip_dynaddr /sbin/ipchains -X /sbin/ipchains -F /sbin/ipchains -P input ACCEPT /sbin/ipchains -P output ACCEPT /sbin/ipchains -P forward ACCEPT echo "." ;; *) echo "Usage: /etc/rc.d/init.d/packetfilter {start|stop}" exit 1 ;; esacexit 0 |
在要从不同级别执行包过滤服务之前,您得建立符号链接。网络已经启动的情况下,首先确认包过滤器已运行在初始级别2和3下。 # ln -s /etc/rc.d/init.d/packetfilter /etc/rc.d/rc2.d/S09packetfilter# ln -s /etc/rc.d/init.d/packetfilter /etc/rc.d/rc3.d/S09packetfilter |
以上两条命令建立了符号链接,从而保证在 Red Hat Linux 的网络有效前启动包过滤器。某种网络服务的名称应该类似于 SXXnetwork,其中的 "XX" 指定了该服务的启动次序。请选择一个其他启动脚本内未指定的,比所有网络服务启动次序号都低的"XX"。上面的例子中,网络启动脚本命名为 "S10network" 。 类似的,在网络服务关闭后也应该停止包过滤器的符号连接。该例子中,网络接口关闭位于脚本 K90network,因此包过滤器脚本链接为 K91packetfilter。 # ln -s /etc/rc.d/init.d/packetfilter /etc/rc.d/rc0.d/K91packetfilter# ln -s /etc/rc.d/init.d/packetfilter /etc/rc.d/rc1.d/K91packetfilter |
最后,在 Red Hat 系统中,您务必确保文件 /etc/sysconfig/network 中含有下列条目: 一旦重新启动机器,包过滤器就启动了。到目前为止,您还没有制定任何过滤规则。下面我们将继续这个规则设置步骤。 配置防火墙
如果您用了防火墙,就可以使用公共因特网上无效的某段网址,或者用 NAT 。这样,主干网的主要路由器将视那些来自私人地址的包为非法而予以丢弃。这些段址已经定义并在文献 RFC 1918 列举出来(参看表 1)。这样的段址共有三套,但对于绝大多数公司来说,192.168.0.0 就足够了。在下面的例子中我们也将采用这套段址。 表 1: 分配给私有网络的 IP 地址
| 起始地址 | 结束地址 | CIDR 段址前缀 | 地址数目 | | 10.0.0.0 | 10.255.255.255 | 10.0.0.0/8 | ~ 16,000,000 | | 172.16.0.0 | 172.31.255.255 | 172.16.0.0/12 | ~ 4,000,000 | | 192.168.0.0 | 192.168.255.255 | 192.168.0.0/16 | ~ 65,000 |
您的内部网的全部机器都应该用这些给定地址范围来标识。比如 192.168.1.22 防火墙的内部接口应占用第一个地址 192.168.0.1。以 .0.0、.0、.255 和 .255.255 结尾的是系统保留地址,所以不要把他们分配给任何机器。在起始地址和结束地址范围之内的其他 IP 地址可按个人喜好分配. [1] [2] 下一页
|