科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道如何用老式奔腾机和Linux构建防火墙

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

拒绝策略则丢弃来自指定源头的包,并且通知该源头其请求的连接被拒绝.  有三类基本的链: 输入链、 正向链和 输出链。

作者:51cto 2007年10月18日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

如果这些值全部无法匹配,就得查查编译内核时是否把 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 script

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, 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
             ;;
     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"

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

配置防火墙
如果您用了防火墙,就可以使用公共因特网上无效的某段网址,或者用 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 地址可按个人喜好分配.

下面的例子包括四个台式机和四个服务器。名为 stranger 的台式机禁止进入防火墙保护的内部网络,而 familiar 则可以。名为 Freedom 的服务器位于公司内部网络,但不受防火墙保护,这对向公开的网站来说是常见的。分配给这些机器的网络地址是随便给定的,但是它们被划分成不同的网络地址集合 (192.168.x.x 分配给防火墙内部网, 216.19.15.x 分配给防火墙外部但仍处于公司内部的网络, 198.102.x.x 指的是公共因特网址)。


    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章