第8章TCP拦截和网络地址转换
本章将讨论与访问表相关的技术,而非访问表本身。这些技术提供了控制网络中数据流量的附加功能。这些功能特性会使读者能够加强进出网络报文的附加功能。通过智能地对数据本身进行操作,例如,可以操纵I P报文中的源和目的地址,或者给某种通信报文分配较多的带宽,读者就能够进一步加强进出网络的报文的安全性和控制能力。本章将讨论两种特性:T C P拦截和网络地址转换(Network Address Tr a n s l a t i o n,N A T),它们可以大大加强对网络中数据流量的控制能力。先介绍T C P拦截,并讨论其特性以及它是如何在网络中实现的。还将介绍有关T C P拦截的所有配置和调试命令。在T C P拦截这一部分,最后给出几个使用该特性的示例。之后,介绍N A T的整体概念,包括N A T的引入、N A T特性以及如何将其用于网络中。最后将讨论有关N A T的配置和调试命令,并介绍许多详细的示例。
8.1 TCP拦截概述
T C P拦截(TCP intercept)从IOS 11 .3开始引入,现在的所有路由器平台都有该功能。设计该特征的目的是防止S Y N攻击内部主机(第7章已简要地讨论了S Y N攻击)。S Y N泛洪攻击是简单的。T C P三路
握手的第一个报文设置了S Y N位。当某台设备接收到一个请求服务的初始报文时,该设备响应这个报文,发回一个设置了S Y N和A C K位的报文,并等待源端来的A C K应答。如果请求的发出者不作响应,主机就会因为超时而结束连接。当主机在等待这个事务完成时,这种h a l f-o p e n的连接消耗了主机的资源。在等待三路握手时资源被耗尽就是攻击的本质所在。
成千上万个设置了S Y N位的报文被发往一台主机,以便在设备的侦听端口上建立一个
T C P连接。但是,这些报文中的源I P地址是伪造的。这些报文中所设置的源地址都是不可达的地址;在大多数情况下,源地址要么是来自R F C1918(即,1 0.0.0.0/8,1 72.16.0.0/15以及1 92.168.0.0/16)的未注册地址,要么是不存在的主机地址。从被攻击的主机到初始源I P地址主机的返回报文就永远不能到达一个真实的主机。这样,被攻击的主机就永远也收不到完成三路握手的应答报文。因此,它必然因为成千上万个连接的超时而要关闭这些连接。最终,被攻击的主机资源被耗尽,主机也就没什么用处了。如果发送有足够数量的S Y N报文,则某些操作系统也会崩溃,并且需要重启系统。
这就是常见的D o S攻击,这种攻击本身破坏性极强,而且它有时也作为更复杂的攻击的一部分。例如,攻击者知道用户的某台服务器信任来自防火墙外面另一台服务器的报文,则他会先攻击防火墙外面的那台服务器,并设置一个嗅探程序来查看用户网络报文。如果攻击者不能攻破防火墙外面的这台服务器,他就无法打破防火墙,或者这时他就会尝试获取这两台主机之间的信任关系。
第一步就是对防火墙外面的这台可信主机发起S N Y泛洪,以阻止其响应任何新的网络会话。攻击者而后使用外部服务器的源I P地址向内部服务器发送报文。内部服务器就会响应该可信外部服务器的I P地址,但外部服务器会由于D o S攻击而不能响应内部服务器。攻击者的机
器可能看不到报文,但如果攻击者能够预测内部服务器所用的T C P 顺序号,就会成功地完成T C P 的三路握手,从而进一步地攻击到了内部服务器。根据所允许通过防火墙的服务类型,攻击者可以将对外部可信主机的D o S 攻击和I P 欺骗结合起来,从而对内部主机实施攻击。图8 -1说明了这种攻击。
中心问题是S Y N 泛洪的危险性远不止只是攻破一个单一主机,它可以与其他攻击方法相结合来攻破网络中的其他主机。
图8-1 对外部主机的DoS 攻击。攻击过程分为两个阶段:(1) 用SYN 泛洪“麻醉”主机使其不能响应;
(2) 发送报文到内部主机,并欺骗源IP 地址,这样内部主机就会相信来自可信主机的报文
在T C P 连接请求到达目标主机之前,T C P 拦截通过对其进行拦截和验证来阻止这种攻击。这个特征
可以在两种模式上工作:拦截和监视。在拦截模式下(intercept mode ),路由器拦截所有到达的T C P 同步请求,并代表服务器建立与客户机的连接,并代表客户机建立与服务器的连接。如果两个连接都成功地实现,路由器就会将两个连接进行透明的合并。路由器有更为严格的超时限制,以防止其自身的资源被S Y N 攻击耗尽。在监视模式下,路由器被动地观察h a l f -o p e n 连接(没有完成T C P 三路握手的连接)的数目。如果超过了所配置的时间,路由器也会关闭连接。访问表则用来定义要进行T C P 拦截的源和目的地址。
8.1.1 开启TCP 拦截
开启T C P 拦截,有两个步骤是必需的:
1) 配置访问表,以开启需要保护的I P 地址。
2)开启T C P 拦截
在第1步中,读者可以使用一个扩展的I P 访问表。通常指定a n y 作为源I P 地址,因为我们一已攻陷的主机
使用源IP 地址171.10.1.1
发送报文
信任主机
泛洪
路由器
内部主机
般都希望T C P 拦截检查所有到达脆弱主机的向内连接。在第2步中,则真正地开启T C P 拦截特性。如果第2步中的访问表没有定义,则T C P 拦截将不会检查任何向内连接。
8.1.2 设置模式
T C P 拦截可以在拦截和监视两种模式下工作,缺省为拦截模式。在这种模式下,路由器响应到达的S Y N 请求,并代替服务器发送一个响应初始源I P 地址的S Y N -A C K 报文,然后等待客户机的A C K 。如果收到A C K ,再将原来的S Y N 报文发往服务器,路由器代替原来的客户机与服务器一起完成三路握手过程。这种模式增加了路由器的内存和 C P U 的额外开销,并且增加了一些初始会话的延时。
在监视模式下,路由器允许S Y N 请求直接到达服务器。如果这个会话在3 0秒钟内(缺省值)没有建立起来,路由器就给服务器发送一个R S T ,以清除这个连接。路由器等待的时间是可以配置的。其模式可以使用下面的命令设置:
缺省模式是i n t e r c e p t 。
8.1.3 主动门槛值
当一个路由器因为其所定义的门槛值而确认服务器正遭受攻击时,路由器就主动删除连接,直到h a l f -o p e n 的连接值降到小于门槛值。首先关闭的是最早的连接,除非使用了“ip tcp intercept drop-mode random ”命令。当所设置的门槛值被超时时,路由器进行下面的动作:
1) 每一个新的连接导致一个最早的(或随机的)连接被删除。
2) 初始的重传超时时间被减少一半,直到0 .5秒。
3) 如果处于监视模式,则超时时间减半,直到1 5秒。
有两个因素用来判断路由器是否正在遭受攻击。如果超过了两个高门槛值中的一个,则表明路由器正遭受攻击,直到门槛值已经降至两个低门槛值以下。下面显示了有关的参数及其缺省值,并对其加以简单描述。
1) ip tcp intercept max-incomplete high number 11 00
在路由器开始删除连接之前,能够存在的h a l f -o p e n 连接的最大数目。
2) ip tcp inercept max-incomplete low number 900
在路由器停止删除h a l f -o p e n 连接之前,能够存在的最大h a l f -o p e n 连接数目。
3) ip tcp intercept one-minute high number 11 00
在路由器开始删除连接之前,每分钟内能存在的最大h a l f -o p e n 连接数目。
4) ip tcp intercept one-minute low number 900
在路由器停止删除连接之前,每分钟内能存在的最小h a l f -o p e n 连接数目。
h a l f -o p e n 连接总数与每分钟h a l f -o p e n 连接的数量比率是相联系的。任何一个最大值到达,T C P 拦截就被激活并且开始删除h a l f -o p e n 连接。一旦T C P 拦截被激活,这两个值都必须下降到T C P 拦截的低设置值,以便停止删除连接。
8.1.4 其他命令
还有一些其他有用的命令可用于检查有关T C P 拦截的信息。下面给出了这些命令,并附第8章TCP 93
下载
带了一个T C P 拦截的简单示例:
下一节将介绍使用上述格式的T C P 拦截的详细示例。
8.2 TCP 拦截应用:示例1
在本例中,某公司使用一台路由器,将其一个E t h e r n e t 连接到内部L A N ,并将一个串行接口连接到一个I S P 。在E t h e r n e t 上有一台We b 服务器,其所用的I P 地址为1 98.50.1.100,并且希望使
用T C P 拦截功能来保护该服务器。该路由器是一个低端服务器,所以我们希望:在能够监视进来的T C P 连接的同时,尽可能多地保留资源(见图8 -2)。
图8-2 网络方案:示例1
8.2.1 解决方案
8.2.2 分析
在本方案中,先定义访问表 1 0 1,用以指出需要查看的报文,这些报文是到达1 98.50.1.100的报文。而后定义T C P 拦截命令,并将访问表1 01用于匹配被监视的报文。还定义了T C P 拦截的操作模式是
监视模式,这会比缺省的拦截模式使用更少的路由器资源。这些
服务器
工作站
内部网络客户路
由器
提供者的路由器
拥有198.50.1.100目的地址的
报文被TCP 拦截所监视
攻击类型转换步骤就是启用T C P 拦截保护We b 服务器的所有操作。
8.3 TCP 拦截应用:示例2在本例中,公司与示例1中的公司相同,使用一台路由器,将其一个E t h e r n e t 接口连接到内部L A N 中,并将一个串行接口连接到一个I S P 。但本例中公司不是使用一个简单的We b 服务器,而是使用一组We b 服务器,其I P 地址从1 98.50.1.1到1 98.50.50.100。在本网段中不再使用其他的I P 地址。我们希望使用T C P 拦截来保护所有的We b 服务器。由于使用了一台高性能路由器,所以路由器资源并不是关键因素,我们有1 00台We b 服务器,并且期望有大量的T C P 请求进来(见图8 -3)。
图8-3 网络方案:示例2
8.3.1 解决方案
8.3.2 分析
在这个方案中,定义了访问表 1 0 1,用来指定匹配目的I P 地址的范围在1 9 8 . 5 0 . 1 . 0到1 98.50.1.128之间的所有报文。注意到匹配上的地址比实际使用的地址要多,因为We b 服务器的I P 地址只用到. 100,但这也不会产生任何问题。而后我们定义T C P 拦截命令来指定访问表1 01用于匹配T C P 所监视到的报文。我们还改变了T C P 拦截的缺省阈值设置,因为我们期望在大量的We b 服务器中应能够在任何时刻都有大量的S Y N 请求。我们保留拦截模式的缺省值,因为有足够的资源来管理每个T C P 连接。
至此已介绍完了T C P 拦截。下一节将讨论网络地址转换(N A T )。
8.4 网络地址转换概述
网络地址转换可以动态改变通过路由器的I P 报文的内容,以便修改报文的源I P 地址和
目的地址198.50.1.1到198.50.1.100
的报文被TCP 拦截所监测。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论