基于IPFilter的NAT透析

上传人:桔**** 文档编号:546652980 上传时间:2022-10-04 格式:DOC 页数:12 大小:753KB
返回 下载 相关 举报
基于IPFilter的NAT透析_第1页
第1页 / 共12页
基于IPFilter的NAT透析_第2页
第2页 / 共12页
基于IPFilter的NAT透析_第3页
第3页 / 共12页
基于IPFilter的NAT透析_第4页
第4页 / 共12页
基于IPFilter的NAT透析_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《基于IPFilter的NAT透析》由会员分享,可在线阅读,更多相关《基于IPFilter的NAT透析(12页珍藏版)》请在金锄头文库上搜索。

1、基于IP Filter的NAT透析 本文依托cnfug开发的Floppy Firewall为平台,以嗅探器抓包分析结合相应的路由转发规分析IPFilter对数据报进行转发和NAT的机理,最终针对实际案例的需求提出解决方案。关键词:NAT FreeBSD 嗅探器 TCP/IP 一、前言如今很多企事业单位拥有自己的LAN,介入互联网的方案比较流行的方案是选用如图1-1的拓扑结构来构建网络。防火墙服务器充当过滤和转发数据报的中间代理,专用服务器安置在防火墙后面避免受到攻击。这类防火墙有硬件和软件之分,对于一个普通小型局域网来说,软件防火墙已经可以满足需求,而软件防火墙领域几乎是IPfw和IP Fil

2、ter的天下,它们的功能非常强大,安装也非常容易,考验防火墙管理员的主要是如何配置防火墙的rules,现在在网上可以很容易地找到如何配置 rules的文献,但是很少有介绍其工作机理的资料,本文将以一个基于IP Filter防火墙的实际案例来分析这些rules的工作机理,并将其运用到实际案例中解决特殊的需求问题。图1-1 常用的拓扑结构二、案例需求 本文所举案例为一实验室的局域网的防火墙配置。该实验室局域网拥有30台客户机,它们通过3个HUB连接在一起,通过一台安装有FreeBSD的服务器用IPFW共享一个固定IP连接Internet,该服务器除了充当局域网的防火墙之外,在其上面还运行了几乎所有

3、FreeBSD能够提供的大众化服务,如WEB、TOMCAT、JAVA、FTP、SMABA、MAIL、DNS、TELNET等(详情请参考cnfug期刊第八期的用FreeBSD构建家庭网络世界和第九期的基于FreeBSD操作系统的安全电子邮件系统架设),随着使用人数的增多,该服务器慢慢有些不堪重负,经常可以看到在后台运行的NATD服务占用了约50的CPU时间,尤其是TOMCAT服务启动并调用JDK之后占用的内存高达106M之巨,在高峰期客户端的上网速度有明显变慢。为了缓解服务器的压力,我采用了前面介绍的现今比较流行的方案,把防火墙和专用服务器的功能分开,防火墙采用了由cnfug开发的基于 Free

4、BSD的Floppy Firewall系统。如此,一来可以节约硬件成本,因为所有配件下来不到150元;二来可以方便日后的维护,因为一旦配置好防火墙之后,再也不怕断电等会导致硬盘版操作系统数据丢失的意外事故,也方便系统的备份(仅仅备份一张软盘镜像而已);三来可以对在防火墙后的专用服务器提供一道安全屏障,这点是显而易见的,虽然对于我们来说网络安全并不是太重要。这套由cnfug开发的软盘版的FreeBSD防火墙使用的是4.9版本的FreeBSD,防火墙使用的是IP FilterV3.4.20,改造后的网络的整体拓扑结构如图2-1所示。图2-1 网络物理拓扑图本案例的需求主要有四点:1、 子网192.

5、168.0.0/24中的所有电脑可以借助网关(防火墙)192.168.0.1透明地访问互联网。(注: 192.168.0.0/24这种格式在IP Filter 的rules中大量使用,其中/2438表示三个字节的子网掩码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、 内网客户机可以和外网客户机一样通过访问外

6、网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”,所以必须人工配置

7、IPf规则,如下命令可完成让所有数据报自由进出防火墙的两块网卡:#cat ipf.conf /红色的字表示是系统提示符pass in all /允许任何包从任何网卡进pass out all /允许任何包从任何网卡出end /保存#ipf f ipf.conf /执行ipf.conf文件中的过滤规则#sysctl w net.inet.ip.forwarding =1 /打开内核的ip转发现在防火墙没有任何过滤规则,可以允许所有的数据报自由进出自己的两块网卡,但是它还不知道如何把到达其上的数据报转发,下面我将详细介绍怎么让它按照我们的需求转发数据报,这也是本文的重点所在。(注:本文主要目的是介

8、绍IP filter防火墙软件对数据报转发机理,也就是路由功能,对于如何对数据报进行过滤不是本文的内容,请参考IPf的相关文献。)三、IP Filter NAT机理分析IP Filter的功能主要包括过滤和路由两部分,所以该防火墙软件包有两个主要工具IPf和IPnat。IPf可以实现数据报过滤,上一节就用到了IPf 命令来使pass in/our all过滤规则生效, 路由功能则由IPnat来实现,IPnat命令用来读取并执行用户设定的路由规则。3.1 用map指令来共享IP地址为了让192.168.0.0/24(24=38即三个字节的子网)的电脑可以共享一个外网IP来访问互联网,用一条最基本

9、的两条rules就可以实现,如下所示:map rl1 192.168.0.0/24 - 202.115.65.225/32 portmap tcp/udp 10000:39999map rl1 192.168.0.0/24 - 202.115.65.225/32这两条rules从字面上很好解释,即在网卡rl1上把192.168.0.*(/24表示3字节的子网掩码,标识一个C类网段的所有IP地址)网段的所有IP地址和IP地址202.115.65.225(/32表示4字节的子网掩码,唯一标识一个IP地址)进行单向映射,portmap的用处是告诉防火墙把内网客户机的端口进行临时存储时的映射范围为10

10、000-39999,具体原理在下面将详述。图3-1 内网用户访问外网WEB服务器的映射过程从图3-1中,内网中IP地址为192.168.0.3的PC客户机欲访问外网的IP地址为202.108.249.134的web服务器,连接过程如下:建立连接阶段(SYN第一次握手):客户机先建立一个随机的TCP端口1413准备和web服务器的80端口连接,但由于它们不在同一个网段,所以请求连接的SYN数据报被发送到了和客户机在同一个网段的网关服务器,在这里网关服务器就是我们的防火墙兼路由器,所以数据报在数据链路层会先发送至我们的防火墙的内网卡,从下面捕获的数据报中可以看到,数据报的以太帧的目的地址是网关的M

11、AC地址。网关即防火墙收到该数据报之后解开IP报取出目的IP地址,发现目的地址是外网IP所以在内部就转发到外网卡rl1,rl1会按照IPnat设置的转发规则,把在192.168.0.*发来的数据报接受下来,然后改变IP头中的源地址为它的IP地址(202.115.65.225),map指令会把内部客户端的IP和端口号暂时保存在一个临时路由表中以便接受到返回的数据报时可以正确地交付给客户端,客户机的端口号并不是直接保存起来,而是防火墙先在portmap的范围内找到一个端口和其一一对应起来保存,前面的设置portmap的范围为10000:39999的原因主要是因为这个范围的端口一般不会被防火墙上本身

12、自己的监听端口相同,如果端口冲突的话会导致严重问题,这种暂存功能在防火墙过滤中也经常被使用,Ipf规则中的keep state就是用来在屏蔽外网数据进入的状态下把内网的请求端口号临时保存到一张路由表中以便返回数据报可以顺利被接收。 图3-2 嗅探器捕获的内网访问外网web服务器的数据报对方确认阶段(SNY ACK第二次握手):外网WEB服务器接收到了以202.115.65.225为源地址的连接请求,所以它会自动发会一个SYN连接请求并捎带一个ACK 确认数据报,这个数据报将被防火墙外网卡rl1接收,防火墙收到后分析IP包的端口号并从临时路由表中计算出该数据报应该转发到哪一个客户机,当然在我们的

13、例子中它会把该数据报发还给192.168.0.3的客户机,正如图3-2所示。连接的最后确认(ACK 第三次握手):内网客户机收到WEB服务器的ACKSYN数据报后认为连接已经成功了,然后发送最后一个确认数据报给对方,防火墙对该数据报的处理步骤同。发送HTTP连接请求:客户机发送的第一个携带HTTP数据的包从这里开始,第一个数据报是HTTP连接请求。WEB服务器回复数据报:WEB服务器顺利接收到HTTP请求马上给予回复的数据报,数据报如果标号是200则表示HTTP连接正常,接下来就可以把对方请求的WEB页传给客户机。完成了上面的5个过程,一个对用户透明的HTTP连接就建立了起来,对于客户端的用户

14、来说,好像是直接连接到WEB服务器上去的,这都有赖于IPnat的功劳。3.2用rdr指令实现NAT转换为了让外网的客户机可以通过IP 202.115.65.225访问到位于内网中的web、mail、Ftp服务器,IPnat的rule相应的设置为:rdr rl1 202.115.65.225/32 port 80 - 192.168.0.221 port 80rdr rl1 202.115.65.225/32 port 21 - 192.168.0.251 port 21rdr rl1 202.115.65.225/32 port 25 - 192.168.0.251 port 25rdr rl

15、1 202.115.65.225/32 port 110 - 192.168.0.251 port 110这条规则从字面上也很好解释,rdr是rewrites destination addresses的意思,其功能是把防火墙上接收到的数据报改变目的地址(转发)到另外的一台或多台主机上,上面的指令可以解释为,把rl1(外网卡)上接收到的数据报按照指定的端口转发到指定的位于内网的服务器上,80、21、25、110分别代表web、Ftp、smtp和pop3服务,所以这四条指令会把外网对防火墙的web、Ftp和mail请求转发到IP为192.168.0.251内网服务器上,下面以web服务为例来分析

16、其工作流程。如图3-3所示,IP地址为202.115.65.38的客户端欲用IP地址202.115.65.225访问位于局域网内部的IP地址为192.168.0.221的WEB服务器,连接过程如下:图3-3 外网客户访问内网WEB服务器的过程图3-4 从外网客户机上捕获的数据报发起连接阶段(SYN):客户机202.115.65.38建立临时端口1123发起对202.115.65.225的 80(http)端口的连接请求。该连接请求被传送到了防火墙的外网卡rl1上,按照前面设置的IPnat的规则,防火墙会把在rl1上对80端口的请求数据报要改变其目的地址为192.168.0.221后转发给目的主机。服务器确认阶段(SYN ACK第

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号