Franky's LIFE

Anything... ...

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  53 随笔 :: 87 文章 :: 6 评论 :: 0 Trackbacks
====================================================================================== --> 防守在网络安全中的重要性不必多说。保护网络最常见的方法就是使用防火墙。防火墙作为网络的第一道防线,通 常放置在外网和需要保护的网络之间。最简单的情况是直接将防火墙放置在外网和企业网络之间,所有流入企业网络的数据流量都将通过防火墙,使企业的所有客户 机及服务器都处于防火墙的保护下。这对于一些中小企业来说是简单易行的,而且这种解决方法在某些情况下也表现不错。然而这种结构毕竟比较简单。企业中有许 多服务器、客户机等资源需要保护,不同的资源对安全强度的要求也不同。不能用对待客户机的安全级别来对待服务器,这样服务器将会很危险;同样,也不能用对 待服务器的安全级别来对待客户机,这样用户会感觉很不方便。

针对不同资源提供不同安全级别的保 护,可以考虑构建一个叫做“demilitarized zone”(dmz)的区域。dmz可以理解为一个不同于外网或内网的特殊网络区域。dmz内通常放置一些不含机密信息的公用服务器,比如web、 mail、ftp等。这样来自外网的访问者可以访问dmz中的服务,但不可能接触到存放在内网中的公司机密或私人信息等。即使dmz中服务器受到破坏,也 不会对内网中的机密信息造成影响。

许多防火墙产品都提供了dmz的接口。硬件防火墙由于 使用专门的硬件芯片,所以在性能和流量上有绝对的优势。软件防火墙的性价比非常好,一般企业使用起来效果不错。如果使用linux防火墙,其成本将更低。 因此这里将要介绍的是在linux防火墙上划分dmz区域的方法。

构建 dmz的策略

linux从2.4内核开始,正式使用iptables 来代替以前的ipfwadm和ipchains,实现管理linux的包过滤功能。linux的包过滤通过一个叫netfilter的内核部件来实现。 netfilter内建了三个表,其中默认表filter中又包括3个规则链,分别是负责外界流入网络接口的数据过滤的input链、负责对网络接口输出 的数据进行过滤的output链,以及负责在网络接口之间转发数据过滤的 forward链。要构建一个带dmz的防火墙,需要利用对这些链的设定完成。首先要对从连接外部网络的网卡(eth0)上流入的数据进行判断,这是在 input链上完成。如果数据的目标地址属于dmz网段,就要将数据转发到连接dmz网络的网卡(eth1)上;如果是内部网络的地址,就要将数据转发到 连接内部网络的网卡(eth2)上。表1显示了各个网络之间的访问关系。

表1 网络间访问关系表

内网 外网 dmz

内网 / y y

外 网 n / y

dmz n n /



根据表1,可以明 确以下六条访问控制策略。

1.内网可以访问外网

内网的用户显然需要自由 地访问外网。在这一策略中,防火墙需要进行源地址转换。

2.内网可以访问dmz

此 策略是为了方便内网用户使用和管理dmz中的服务器。

3.外网不能访问内网

很 显然,内网中存放的是公司内部数据,这些数据不允许外网的用户进行访问。

4.外网可以访 问dmz

dmz中的服务器本身就是要给外界提供服务的,所以外网必须可以访问dmz。同时,外网访问dmz需要由防火墙完成对外地址到服 务器实际地址的转换。

5.dmz不能访问内网

很明显,如果违背此策略, 则当入侵者攻陷dmz时,就可以进一步进攻到内网的重要数据。

6.dmz不能访问外网

此 条策略也有例外,比如dmz中放置邮件服务器时,就需要访问外网,否则将不能正常工作。

dmz 的实现

根据以上访问控制策略可以设定linux防火墙的过滤规则。下 面将在一个虚构的网络环境中,探讨如何根据以上六条访问控制策略建立相应的防火墙过滤规则。这里的讨论和具体应用会有所区别,不过这种讨论将有助于实际应 用。用户在实际应用时可根据具体的情况进行设置。该虚拟环境的网络拓扑如图1。

图1 dmz网络拓扑图



如图1所示,路由器连接internet和防火墙。作为防火墙的linux服 务器使用三块网卡:网卡eth0与路由器相连,网卡 eth1与dmz区的hub相连,网卡eth2与内网hub相连。作为一个抽象的例子,我们用“[内网地址]”来代表“192.168.1.0/24”之 类的具体数值。同理还有“[外网地址]”和“[dmz地址]”。

对于防火墙,原则之一就 是默认禁止所有数据通信,然后再打开必要的通信。所以在防火墙脚本的最初,需要清空系统原有的规则,然后将input、output、forward的默 认规则设置为丢弃所有数据包。

对应的防火墙脚本片段如下: # flush out the tables and delete all user-defined chains

/sbin/iptables -f

/sbin/iptables -x

/sbin/iptables -t nat -f

/sbin/iptables -t nat -x

# drop every packet

/sbin/iptables -p input drop

/sbin/iptables -p output drop

/sbin/iptables -p forward drop

====================================================================================== -->

六种策略的实现。

1.内网可以访问外网

对应的防火墙脚本片段如下:

/sbin/iptables -t nat -a postrouting -s [内网地址] -d [外网地址] -o eth0 -j snat --to [nat的真实ip]

当数据从连接外网的eth0流出时,要将来自内网的数据包的源地址改成internet上的真实ip,这样才能和外网的主机进行通 信。“[nat的真实ip]”表示分配给nat用户的真实ip,有几个就写几个,以空格分开,但至少要写一个。

2.内网可以访问dmz

对应的防火墙脚本片段如下:

/sbin/iptables -a forward -s [内网地址] -d [dmz地址] -i eth2 -j accept

以上命令允许所有来自内网、目的地为 dmz的数据包通过。

3.外网不能访问内网

对应的防火墙脚本片段如下:

/sbin/iptables -t nat -a prerouting -s [外网地址] -d [内网地址] -i eth0 -j drop

以上命令将来自 外网、去往内网的数据包全部丢弃。

4.外网可以访问dmz

为了保护 dmz中的服务器,外网对dmz的访问也要加以限制。通常的思路是,只允许外网访问dmz中服务器所提供的特定服务,比如http。

对应 的防火墙脚本片段如下:

/sbin/iptables -t nat -a prerouting -p tcp --dport 80 -d [分配给http服务器的internet上的真实ip] -s [外网地址] -i eth0 -j dnat --to [http服务器的实际ip]

/sbin/iptables -a forward -p tcp -s [外网地址] -d [http服务器的实际ip] -i eth0 --dport 80 -j accept

/sbin/iptables -a forward -p tcp -d [外网地址] -s [http服务器的实际ip] -i eth1 --sport 80 ! --syn -j accept

/sbin/iptables -t nat -a prerouting -s [外网地址] -d [dmz地址] -i eth0 -j drop

该防火墙脚本片段将开放http服务,使得只有访问 dmz中http服务的数据包才能通过防火墙。

5.dmz不能访问内网

对 应的防火墙脚本片段如下:

/sbin/iptables -a forward -s [dmz地址] -d [内网地址] -i eth1 -j drop

以上命令将丢弃所有从dmz到内网的数据包。

6.dmz 不能访问外网

对应的防火墙脚本片段如下:

/sbin/iptables -t nat -a postrouting -p tcp --dport 25 -d [外网地址] -s [邮件服务器的ip] -o eth0 -j snat --to [分配给smtp服务器的internet上的真实ip]

/sbin/iptables -a forward -p tcp -s [邮件服务器的ip] -d [外网地址] -i eth1 --dport 25 -j accept

/sbin/iptables -a forward -p tcp -d [邮件服务器的ip] -s [外网地址] -i eth0--sport 25 ! --syn -j accept

以上命令先允许dmz中邮件服务器连接外网的smtp服务端口(25),然 后禁止其它从dmz发往外网的数据包。

针对以上基本策略例举了实现它们的基本规则。在实 际应用中,需要根据具体情况进行设置。只要设置得当,linux也能成为很好的防火墙。需要补充的是,无论何种防火墙都只能提供有限的保护。设置好防火墙 不等于网络就是安全的,关键在于综合运用各种安全手段。

posted on 2010-06-12 14:41 Franky 阅读(142) 评论(0)  编辑  收藏 所属分类: IT知识

只有注册用户登录后才能发表评论。


网站导航: