网络安全检测|网络安全服务|网络安全扫描-香港墨客投资移动版

主页 > 业界资讯 > 网络安全预防措施

如何用老式奔腾机和Linux构建防火墙(组图)(2)

  首先要做的事情是确认您的机器上是否已经安装了防火墙。请查看 /etc/rc.d/init.d目录下有没有类似于packetfilter、ipchains、pifwadm、firewall 或proxy等名字的"开始/关闭"脚本。如果存在这样的文件,并且有来自 /etc/rc.d/rc2.d 或/etc/rc.d/rc3.d的符号连接,那么该机器上很可能已安装了防火墙,也许它还正运行在没有任何具体防火墙策略的环境下呢。要验证这一点,可以敲入如下命令:

  # cat /proc/sys/net/ipv4/ip_forward

  如果找不到这个文件,说明防火墙尚未安装。如果返回值为0,则意味着防火墙已经安装但没有运行;返回值为1表示正在运行。

  您也可以下载 ipchains 的源码 来自己编译。这么的时候,要运行校验和程序来确认这份源码是可靠的。(通常采用md5sum命令)。ipchains 网站上列出了校验和的有效值,您校验的结果应该和它们完全匹配。当前的 ipchains版本是1.3.9。

  如果这些值全部无法匹配,就得查查编译内核时是否把Masquerading打开了。缺省情况下,这些选项在编译内核时是打开的。但如果您决定自己来编译 Linux 2.2.x版本的内核,就必须对如下选项说YES :

  CONFIG_EXPERIMENTAL

  CONFIG_MODULES

  CONFIG_NET

  CONFIG_FIREWALL

  CONFIG_INET

  CONFIG_IP_FORWARD

  CONFIG_IP_MASQUERADE

  CONFIG_IP_MASQUERADE_IPPORTFW

  CONFIG_IP_MASQUERADE_IPAUTOFW

  CONFIG_IP_MASQUERADE_ICMP

  CONFIG_IP_ALWAYS_DEFRAG

  CONFIG_DUMMY

  CONFIG_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 t

  PATH=/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, SLIPorDHCP

  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 startstop"

  exit 1

  ;;

  esac

  exit 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"

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

  配置防火墙

(责任编辑:admin)