设 为 首 页
加 入 收 藏
联 系 我 们
推荐栏目 | Sniffer | Ethereal | IPV6 | IPTV | MPLS | TCP/IP | SNMP | WLAN | 中文RFC文档 | 编码交流 |
   

您现在的位置: 首页>>网络安全>>防火墙>>正文


如何用老式奔腾机和Linux构建防火墙

如果这些值全部无法匹配,就得查查编译内核时是否把 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 中含有下列条目:

FORWARD_IPV4="yes"

一旦重新启动机器,包过滤器就启动了。到目前为止,您还没有制定任何过滤规则。下面我们将继续这个规则设置步骤。

配置防火墙

如果您用了防火墙,就可以使用公共因特网上无效的某段网址,或者用 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] 下一页  

 


版权所有 中国协议分析网 联系信箱:wayky#126.com(请把"#"改成"@")
Copyright (C) www.Cnpaf.Net 2004-2008  All Rights Reserved. [京ICP备05002225号]