红联Linux门户
Linux帮助

企业级防火墙在和inux服务器该怎么构建?

发布时间:2009-03-24 11:52:51来源:红联作者:hanbingxuan
[font=宋体]防火墙采用带DMZ(非军事区)的,请大家提点意见和想法,谢谢![/font]
文章评论

共有 7 条评论

  1. wangyoubang 于 2009-08-02 09:07:51发表:

    学习了

  2. 85030455 于 2009-04-28 09:48:58发表:

    学习了
    很详细的 啊~

  3. l460618498 于 2009-04-25 21:02:03发表:

    学习了

  4. lazyhaha 于 2009-04-24 08:59:30发表:

    呵呵,学习了。

  5. rxy_pink 于 2009-03-25 14:05:55发表:

    这个,,比较的长。。。。。

  6. jerry520 于 2009-03-25 11:17:45发表:

    呵呵,学习了.

  7. asiaec 于 2009-03-24 11:57:58发表:

    基于LINUX的具有DMZ(非军事区)的防火墙的构建
    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,它让我们用简单的步骤实现我们的目标。