发新话题
打印

[转载]基于Unix-Like的具有DMZ(非军事区)的防火墙的构建

[转载]基于Unix-Like的具有DMZ(非军事区)的防火墙的构建

信息来源:http://frost.ncic.ac.cn/~xhg/
                 
1。介绍
      本文将介绍如何利用LINUX来建立一个更具有实用意义的防火墙.在当前,Internet越来越普遍的在企业,学校中使用,而安全问题也越来越得到重视,如何能让内部的用户使用INTERNET而又能保护内部服务器以及外部发布公共信息服务器的安全,这种需求使得防火墙广泛的在企业中得到广泛的使用。但是,这种类型的防火墙是需要大量的经费的,如CISCO的IPX,
   CHECK POINT的FIRWALL-I等。利用一个稳定内核的LINUX,同样也能做到一个功能齐备的防火墙,而它的费用也只是其他同类防火墙的几十分只一。感谢LINUX,它让我们用简单的步骤实现我们的目标。
  本文可以自由转载,只要不破坏以及修改本文即可。
2。概念
      在开始创建防火墙之前,我们有几个概念需要明白。
      1。防火墙(Firewall),它是利用网络层的ip包过滤程序以及一些规则来保护内部网的一种策略,有硬件实现,以及软件的实现。
      2。停火区(非军事区),也称为DMZ,是一个公布信息的区域,外部INTERNET以及内部INTRANET可以自由的访问该区。
      3。内部网(Intranet,or Private Network),是企业或学校内部使用的网络,可能重要的不对外公开的服务器都在其中。
     4。外部网,可以说是INTERNET,是一个不安全的网络,存在大量有用的信息以及一些可能有恶意攻击内部网的人。
      5。地址转换,内部网的任何机器通过防火墙时,源地址均被设置成防火墙的外部地址。即在外部看来,内部的机器均是一个地址。
      下面是一个图例:
                -----------------
               |    Internet  |192.168.2.0/24
                -----------------
                      |             DMZ(停火区)
                      |192.168.2.1      ------
                    ---             |    |
                    |  |192.168.1.1     |    | 192.168.1.0/24
            防火墙    |  |------------------|    |  
                    |  |            |    |
                   -------            ------
                      |192.168.0.1
                      |
                      |  Intranet(内部网)192.168.0.0/24
           -----------------------------------
           |           |            |
           ------------------------------------
      注:以上IP的设置不是真实的,这需要结合您本地的需要来重新设置。
        外部网侧的网卡是192.168.2.1
        内部网侧的网卡是192.168.0.1
        DMZ侧的网卡是:192.168.1.1
        假定停火区中有一台机器(192.168.1.8)提供 80端口的WWW服务。
        并假定内部网到外部需要进行NAT(地址转换的功能)

3。目标
      防火墙要实现的目标如下:
      1。内部无限制的访问INTERNET以及DMZ(停火区)。
      2。外部可以访问DMZ的机器的公开的端口。在本例中是80.
      3。外部不能访问到内部以及防火墙。      
      4。DMZ不可以访问内部。
   通过这个目标,您就可以实现了一个防火墙的需求:
      1。保护内部网络。
      2。保护DMZ中的某些存在BUG的端口。只公布它需要提供的端口。
      
4。构建步骤
      1。硬件:需要配好有3张网卡的机器。RAM越大越好。CPU越快越好。:-))
      2。软件:当然是linux啦。我用的是redhat 5.0,5.1也可以。
      3。内核:要打开ip-firewall,ip-masqurade(如果您想实现地址转换功能的话).....
           具体可以看Firewall-HOWTO.
      4。配置网卡,网上有很多配置的方法啦。
            一般是先配好一张网卡,如果剩下的两张是跟原来是不同型号的
           ,需要配置
            一下/etc/conf.modules.加上网卡的类型模块。如果是同类型的
            网卡,就在
            lilo.conf中加入append="ether=irq,iobase,eth0                  ether=irq,iobase,eth1,ether=irq,iobase,eth2.
      5。配置网卡的路由。
      6。配置规则。也就是ipfwadm的规则啦。
           有对ipfwadm不了解的可以看man ipfwadm or man ipfw.
           #-----------------
           ipfwadm -I -p deny
           ipfwadm -O -p deny
           ipfwadm -F -p deny
           #------------------------------
           # deny ip spoof.
           ipfwadm -I -a deny -V 192.168.2.1 -S 192.168.0.0/24
           ipfwadm -O -a deny -V 192.168.2.1 -D 192.168.0.0/24
           # deny outside access intranet
           ipfwadm -I -a deny -V 192.168.2.1 -D 192.168.0.0/24
           ipfwadm -O -a deny -V 192.168.2.1 -S 192.168.0.0/24 -k
           # allow firewall access outside
           ipfwadm -I -a accept -V 192.168.2.1 -D 192.168.2.1 -k
           ipfwadm -O -a accept -V 192.168.2.1 -S 192.168.2.1
           # deny outside access firewall
           ipfwadm -I -a deny -V 192.168.2.1 -D 192.168.1.1
           ipfwadm -I -a deny -V 192.168.2.1 -D 192.168.2.1
           # allow inside access outside.
           ipfwadm -O -a accept -V 192.168.0.1 -D 192.168.0.0/24 -k
           ipfwadm -I -a accept -V 192.168.0.1 -S 192.168.0.0/24
            
           # allow outside access DMZ.
           ipfwadm -O -a accept -P tcp -V 192.168.1.1 -D 192.168.1.8 80  
           ipfwadm -I -a accept -P tcp -V 192.168.1.1 -S 192.168.1.8 80 -k  
            
           # IP FORWARD。。
           ipfwadm -F -a m -S 192.168.0.0/24
           ipfwadm -F -a accept -S 192.168.1.0/24
           ipfwadm -F -a accept -D 192.168.1.0/24
            
4。测试
      现在,您可以通过测试来查看规则设置得是否正确。
      1。从内部网访问外部INTERNEt,以及DMZ。
      2. 从外部访问DMZ,看是否可以访问到80端口,以及是否可以访问其他端口。
      3。从外部访问内部。看是否可以访问到。--不可以。
      
5。结论
      这是一种简单的防火墙的配置方法。更复杂的配置还包括限制内部用户对外部IP的访问。
      现有的产品有清华得实的NETST防火墙,它提供图形化的配置界面和更加细致的访问 控制以及针对IP的记费方案。
           (详情请致电010-62771617,62771618,62771619,62771620)
6。感谢
      感谢清华得实的李智鹏,是他给了我一个从事防火墙开发的机会,
      以及许多的建议和帮助。           
      感谢NCIC的赵鹏,是他提供了完成本文的机器。
      感谢我的女友,是她给了我在工作上的支持和鼓励。

      感谢LINUX,它让我们用简单的步骤实现我们的目标。
曾几何时,有人对我说:装B遭雷劈。我说:去你妈的。于是,这个人又对我说:如果再说脏话,上帝会惩罚你的。我说:我操上帝。结论:彪悍的人生不需要上帝。

TOP

大哥,,看看清楚,,用的是ipfwadm 那是LINUX么,,应该是BSD系统......不过文章思路不错....

TOP

楼上,似乎ipfwadm只是一个免费的防火墙类软件,在linux下也能用di。
BLOG: http://blog.csdn.net/hkbyest

TOP

发新话题