基于 IP Filter 的NAT透析

2009-05-13 13:05:52来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


基于 IP Filter 的NAT透析

摘 要:

  本文依托cnfug开发的Floppy Firewall为平台,以嗅探器抓包分析结合相应的路由转发规分析IPFilter对数据报进行转发和NAT的机理,最终针对实际案例的需求提出解决方案。
一、前言
  如今很多企事业单位拥有自己的LAN,介入互联网的方案比较流行的方案是选用如图1-1的拓扑结构来构建网络。防火墙服务器充当过滤和转发数据报的中间代理,专用服务器安置在防火墙后面避免受到攻击。这类防火墙有硬件和软件之分,对于一个普通小型局域网来说,软件防火墙已经可以满足需求,而软件防火墙领域几乎是IPfw和IP Filter的天下,它们的功能非常强大,安装也非常容易,考验防火墙管理员的主要是如何配置防火墙的rules,现在在网上可以很容易地找到如何配置rules的文献,但是很少有介绍其工作机理的资料,本文将以一个基于IP Filter防火墙的实际案例来分析这些rules的工作机理,并将其运用到实际案例中解决特殊的需求问题。
            图1-1 常用的拓扑结构

二、案例需求
  本文所举案例为一实验室的局域网的防火墙配置。该实验室局域网拥有30台客户机,它们通过3个HUB连接在一起,通过一台安装有FreeBSD的服务器用IPFW共享一个固定IP连接Internet,该服务器除了充当局域网的防火墙之外,在其上面还运行了几乎所有FreeBSD能够提供的大众化服务,如WEB、TOMCAT、JAVA、FTP、SMABA、MAIL、DNS、TELNET等(详情请参考cnfug期刊第八期的《用FreeBSD构建家庭网络世界》和第九期的《基于FreeBSD操作系统的安全电子邮件系统架设》),随着使用人数的增多,该服务器慢慢有些不堪重负,经常可以看到在后台运行的NATD服务占用了约50%的CPU时间,尤其是TOMCAT服务启动并调用JDK之后占用的内存高达106M之巨,在高峰期客户端的上网速度有明显变慢。为了缓解服务器的压力,我采用了前面介绍的现今比较流行的方案,把防火墙和专用服务器的功能分开,防火墙采用了由cnfug开发的基于FreeBSD的Floppy Firewall系统。如此,一来可以节约硬件成本,因为所有配件下来不到150元;二来可以方便日后的维护,因为一旦配置好防火墙之后,再也不怕断电等会导致硬盘版操作系统数据丢失的意外事故,也方便系统的备份(仅仅备份一张软盘镜像而已);三来可以对在防火墙后的专用服务器提供一道安全屏障,这点是显而易见的,虽然对于我们来说网络安全并不是太重要。
  这套由cnfug开发的软盘版的FreeBSD防火墙使用的是4.9版本的FreeBSD,防火墙使用的是IP FilterV3.4.20,改造后的网络的整体拓扑结构如图2-1所示。
      本案例的需求主要有四点:
  1、 子网192.168.0.0/24中的所有电脑可以借助网关(防火墙)192.168.0.1透明地访问互联网。(注:192.168.0.0/24这种格式在IP Filter 的rules中大量使用,其中/24=3×8表示三个字节的子网掩码255.255.255.0,掩盖一个C类网段,在这里表示IP地址前三段等于192.168.0的所有电脑。同理,/16表示一个B类网,/32唯一标识一台主机。)
  2、 外网的客户机可以透明地可以访问IP地址为192.168.0.251的多功能服务器(Web、Email、Ftp服务)和IP地址为192.168.0.2的文件兼打印服务器。
  3、 内网客户机可以和外网客户机一样通过访问外网IP202.115.65.225来访问内网的web、email等服务器。
  4、 内网的客户机可以访问远程的Ftp服务器同时外网的客户端也可访问内网的Ftp服务器。(由于Ftp协议的特殊性在此专门提出) 从图2-1看到,防火墙的两块8139网卡rl1和rl0分别连接Internet和局域网的交换机,外网卡IP地址为202.115.65.225内网卡IP地址为192.168.0.1。由于内核中IPf的缺省设置为block all,即过滤所有的包,在该情况下,防火墙的两块网卡不能和外界有任何数据交换,ping任何地址都提示“ping:sendto: no route to host”,所以必须人工配置IPf规则,如下命令可完成让所有数据报自由进出防火墙的两块网卡:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:SSH2的安装设置过程

下一篇:在FreeBSD下建立一个jail环境