ShoreWall企业防火墙的完美实现

发表于:2007-07-04来源:作者:点击数: 标签:
第一篇: 网络 接入情况 现在很多企业有的是用专线接入,有的是用ADSL 接入,但最终结果都是一样,就是在互联网上有一个公网IP(或者一个网段)得Route 到你得网关 服务器 上或者接入路由器上。 好了,知道了这点我就来说一下互联网得接入这一部分,我以专线

  第一篇:网络接入情况
  现在很多企业有的是用专线接入,有的是用ADSL 接入,但最终结果都是一样,就是在互联网上有一个公网IP(或者一个网段)得Route 到你得网关服务器上或者接入路由器上。 好了,知道了这点我就来说一下互联网得接入这一部分,我以专线接入为例子:
  
  如图:
   javascript:window.open(this.src);" style="CURSOR: pointer" onload="return imgzoom(this,550)">
  当你是专线接入得时候,一般都会有一个专线接入单,上面会有如下相关信息:
  
  1:你得IP地址范围
  2:用户端接入IP,以及局端IP
  
  从上图中我们可以看出:
  1:ISP分配给你得是一个C类公网地址
  2:用户端得接入IP" 是 192.168.5.1,局端IP 是 192.168.5.2
  
  好了,下面是我要重点说得了,很多人以为在一个防火墙得外网接口上一定得绑定公网IP,其实这是一个错误得认识,其实只要有 Route 信息,你就可以上互联网。怎么以上面得图为例子,在 ISP 商得路由器那头,就是绑定 192.168.5.2 那个路由器一定有一个 Route 信息是这样得:
  ip route 211.111.111.0/24 via 192.168.5.1
  
  通常得做法就是像如图一样在Route B 得以太网口处帮定一个公网IP 211.111.111.1 ,然后大家以这个为网关上网,通常会先接入防火墙,然后后面接局域网用户,如图:
   
  这是一个很典型得企业应用,我想我说得没错吧,但是我觉得这里面有几个不好得地方:
  
  1:就是公网IP不能很好得管理,在" Firewall 和 Route B 之间是通过公网IP 连接得,比如通过交换机连接,这样如果有人在交换机上接一个计算机自己随意绑定公网IP 就可以上网了。
  2:这是一个C类得IP ,在Firewall 上需要绑定很多公网IP ,才能使用这些IP ,这样管理有很多弊端。
  
  第二篇:网络结构得设计
  对于一个C类得公网IP 我们可以重新设计一个网络拓扑:
  
  方案一:就是不对C类网段分段,还是用一个网段,如图:
   
  注意:" 在 Route B 上需要添加一个静态路由, ip route 211.111.111.0 255.255.255.0 192.168.1.2
  
  好了,这样 Firewall 就可以完全控制和分配这 254 个公网IP 了
  
  方案二:就是对C类网段分段,分成两个公网IP网段,有两个防火墙如图:
  
  这样一来,我们就将一个" C类得公网IP 拆分成了两个:
  Firewall A 得IP 范围是211.111.111.1-127
  Firewall B 得IP 范围是211.111.111.129-254
  
  第三篇 防火墙得实现
  我选用的平台是:
  
  Redhat 8.0 + Shorewall 1.4.8 (其实就是基于iptables), 有三块网卡,以方案一为例。
  
  可能很多朋友都不太清楚 shorewall (http://www.shorewall.net),我先介绍一下 shorewall ,其实他是一个基于 iptables 得一个防火墙,他得优点在于配置方便,便于管理,用它很容易就能配出一个企业级得防火墙策略。
  
  这里我说一下我个人观点,iptables 得命令过于复杂和麻烦,在管理方面和可读性方面比较差,我个人认为我们作为一个网管得精力应该放在如何设计防火墙策略,而不要陷身于一个命令得写法上。好了,废话不说了。
  
  安装好 Redhat 8.0 ,并装好三块网卡后,
  在http://slovakia.shorewall.net/pub/s....8-1.noarch.rpm下载 shorewall 的rpm 包(或者 tar 包都可以)
  
  一:安装
  rpm -ivh shorewall-1.4.8-1.noarch.rpm
  
  二:配置
  
  shorewall 得所有配置文件都在 /etc/shorewall 下面,好了我将详细得讲解如何配置 shorewall
  
  这里我们假设 DMZ区域有如下一些的服务器:
  
  
  源码:--------------------------------------------------------------------------------
  mail server:   10.1.2.2/24   公网地址:211.111.111.2
  pptp vpn server: 10.1.2.3/24   公网地址:211.111.111.3
  dns server:  10.1.2.4/24   公网地址:211.111.111.4
  http server:   10.1.2.5/24   公网地址:211.111.111.5
  --------------------------------------------------------------------------------
  
  在 /etc/shorewall 可以看到有很多配置文件:
  
  (我只讲我们要用到的配置文件,其它得很少用到,大家可以自己去看帮助,很好理解得)
  
  zones (定义防火墙得区域)
  interfaces (定义接口)
  masq (定义伪装IP)
  policy (定义默认策略)
  rules (定义防火墙规则)
  
  下面是各个配置文件的内容
  
  源码:--------------------------------------------------------------------------------
  cat /etc/shorewall/zones:
  ================================================
  wanInternet     Internet
  dmzDMZ       Dmz
  lanLan       Lan
  ================================================
  
  cat /etc/shorewall/interfaces
  ================================================
  wan   eth0  detect
  lan   eth1  detect
  dmz   eth2  detect
  ================================================
  
  cat /etc/shorewall/masq
  ================================================
  eth0  192.168.1.2/32     211.111.111.1     #----- Firwall To Internet
  eth0  10.1.1.0/24       211.111.111.1     #----- Lan A To Internet
  eth0  10.1.2.2/32211.111.111.2     #----- mail server To Internet
  eth0  10.1.2.3/32211.111.111.3     #----- pptp server To Internet
  eth0  10.1.2.4/32211.111.111.4     #----- dns server To Internet
  eth0  10.1.2.5/32211.111.111.5     #----- http server To Internet
  ================================================
  
  cat /etc/shorewall/policy
  ================================================
  fw   all   ACCEPT   # Firewall 可以任意访问所有区域,包括互联网
  lan   wan   ACCEPT   # Lan A 可以任意访问互联网
  dmz   wan   ACCEPT   # DMZ 服务器可以任意访问互联网
  lan   dmz   ACCEPT   # Lan A 可以任意访问和管理DMZ服务器区
  
  wan   all   DROP    # 互联网不能随意访问内部网络和DMZ
  all   all   REJECT
  ================================================
  
  cat /etc/shorewall/rules
  ================================================
  #---------------------- Internet To mail Server -------------------------------
  
  DNAT  wan   dmz:10.1.2.2     tcp  smtp  -    211.111.111.2
  DNAT  wan   dmz:10.1.2.2     tcp  POP3  -    211.111.111.2
  
  #---------------------- Internet To PPTP Server -------------------------------
  
  DNAT  wan   dmz:10.1.2.3     tcp  1723  -    211.111.111.3
  DNAT  wan   dmz:10.1.2.3     47   -   -    211.111.111.3
  
  #---------------------- Internet To DNS Server -------------------------------
  
  DNAT  wan   dmz:10.1.2.4     tcp  53   -    211.111.111.4
  DNAT  wan   dmz:10.1.2.4     udp  53   -    211.111.111.4
  
  #---------------------- Internet To http Server -------------------------------
  
  DNAT  wan   dmz:10.1.2.5     tcp  http   -    211.111.111.5
  
  ================================================
  --------------------------------------------------------------------------------
  好了,防火墙都配置好了,现在防火墙的结果如下:
  
  源码:--------------------------------------------------------------------------------
  Lan A 的用户   10.1.1.0/24   的用户全部伪装成 211.111.111.1 去访问互联网
  mail server:   10.1.2.2/32   以公网地址:211.111.111.2 访问互联网
  pptp vpn server: 10.1.2.3/32   以公网地址:211.111.111.3 访问互联网
  dns server:  10.1.2.4/32   以公网地址:211.111.111.4 访问互联网
  http server:   10.1.2.5/32   以公网地址:211.111.111.5 访问互联网
  
  Firewall  可以任意访问所有区域,包括互联网
  Lan A    可以任意访问互联网
  DMZ     服务器可以任意访问互联网
  Lan A    可以任意访问和管理DMZ服务器区
  互联网不能随意访问内部网络和DMZ
  --------------------------------------------------------------------------------
  
  好了,到这所有配置文件都已经配好了,然后删除 /etc/shorewall/startup_disable 文件,用 shorewall restart 就可以启动防火墙了。

原文转自:http://www.ltesting.net