1、 实验题目 状态检测实验 小组合作 否 一、实验目的 定制基于状态检测规则 验证规则配置前后通信状态 二.实验环境 图3.1.21 实验环境拓扑图 实验环境拓扑图如图3.1.21所示,其中: 防火墙IP地址:内网IP地址:172.20.2.X/16 连接防火墙实验显示的内网IP 外部IP地址:172.21.2.X/16 连接防火墙实验显示的外网IP 客户端IP地址:172.20.1.Y/255.255.0.0 通过察看本地网络属性获得 Windows实验台的IP地址:172.21.3.Y,确保相互之间不会冲突。 网关为防火墙外网IP地址:1172
2、21.2.X 本实验的防火墙的默认规则都是允许。 三、实验内容与步骤 一、 连接防火墙 进入状态检测实验实验实施的界面,点击“连接”,连接防火墙。 二、 添加静态路由 启动Windows实验台。 打开本地主机cmd命令行,输入route add 172.21.0.0 mask 255.255.0.0 172.20.2.1,添加路由。 三、 验证网络连通性 本地cmd窗口中输入ping 172.21.3.76(实验台第二块网卡IP),进行网络连通性测试,如图。 FTP访问(通过IE访问)结果如图3.1.24所示,可正常访问。 四、 规则添加 可选择状态
3、包括:NEW(新建连接)、ESTABLISHED(已建立的连接)、RELATED(与某已建立连接相关的连接)、INVALID(非法连接)。选择规则类型包括:REJECT和ACCEPT,决定是否允许数据包通过。 针对 FTP服务,添加如图所示的规则。 本次实验主要以FTP的被动(Passive)连接模式为例,因为IE来访问FTP选择为被动,如若对主动模式进行测试,或选用其它客户端,如CuteFTP,留为课后自行完成实验。 五、 实验结果测试 使用FTP服务,连接失败。 尝试当已经连接FTP服务器后,再添加如图3.1.25所示的规则,ftp服务是否会中断。
4、 四、实验过程与分析 六、 连接防火墙 进入状态检测实验实验实施的界面,点击“连接”,连接防火墙。 七、 添加静态路由 启动Windows实验台。 打开本地主机cmd命令行,输入route add 172.21.0.0 mask 255.255.0.0 172.20.2.1,添加路由,如图3.1.22所示。 图3.1.22 添加静态路由 八、 验证网络连通性 本地cmd窗口中输入ping 172.21.3.76(实验台第二块网卡IP),进行网络连通性测试,如图3.1.23所示。 图3.1.23 连通性测试 FTP访问(通过IE访问)结果如图3.1
5、24所示,可正常访问。 图3.1.24 九、 规则添加 可选择状态包括:NEW(新建连接)、ESTABLISHED(已建立的连接)、RELATED(与某已建立连接相关的连接)、INVALID(非法连接)。选择规则类型包括:REJECT和ACCEPT,决定是否允许数据包通过。 针对 FTP服务,添加如图3.1.25所示的规则。 图3.1.25 防火墙规则 本次实验主要以FTP的被动(Passive)连接模式为例,因为IE来访问FTP选择为被动,如若对主动模式进行测试,或选用其它客户端,如CuteFTP,留为课后自行完成实验。 十、 实验结果测试 使用FTP服务,
6、连接失败。 尝试当已经连接FTP服务器后,再添加如图3.1.25所示的规则,ftp服务是否会中断。 五、实验总结 状态检测技术是包过滤技术的延伸,被称为动态包过滤。传统的包过滤防火墙只是通过检测IP包包头的相关信息来决定数据通过还是拒绝。而状态检测技术采用的是一种基于连接的状态检测机制,将属于同一连接的所有包做为一个整体的数据流看待,构成连接状态表(State Table),通过规则表与状态表的共同配合,对表中的各个连接状态因素加以识别。 例如,对于一个外发的HTTP请求,当数据包到达防火墙时,防火墙会检测到这是一个发起连接的初始数据包(有SYN位),它就会把这个数据包中的信
7、息与防火墙规则作比较,即采用包过滤技术。如果没有相应规则允许,防火墙就会拒绝这次连接;如果有对应规则允许访问外部WEB服务,就接受数据包外出并且在状态表中新建一条会话,通常这条会话会包括此连接的源地址、源端口、目标地址、目标端口、连接时间等信息。对于TCP连接,它还应该会包含序列号和标志位等信息。当后续数据包到达时,如果这个数据包不含SYN标志,也就是说这个数据包不是发起一个新的连接时,状态检测引擎就会直接把它的信息与状态表中的会话条目进行比较,如果信息匹配,就直接允许数据包通过,这样不再去接受规则的检查,提高了效率,如果信息不匹配,数据包就会被丢弃或连接被拒绝,并且每个会话还有一个超时值,过
8、了这个时间,相应会话条目就会被从状态表中删除掉。对UDP同样有效,虽然UDP不是像TCP那样有连接的协议,但状态检测防火墙会为它创建虚拟的连接。 对己经建立连接的数据包不再进行规则检查,因而过滤速度非常快。另一方面,信息包在低层处理,并对非法包进行拦截,因而协议的任何上层不用再进行处理,从而提高了执行效率。 状态检测工作在数据链路层和网络层之间,并从中截取信息包。由于数据链路层是网卡工作的真正位置,网络层也是协议栈的第一层,所以状态检测防火墙保证了对所有通过网络的原始信息包截取和检查,从中提取有用信息,如IP地址、端口号和数据内容等,安全性得到了很大提高。 状态检测技术支持对多种协议的分
9、析和检测。不仅支持基于TCP的应用,而且支持基于无连接协议的应用,例如远程过程调用RPC、基于UDP的应用(如DNS、WAIS、Archie)等。 系统管理员配置访问规则时需要考虑的内容相对简单,出错率降低。 状态检测实验中,一共有四种状态,分别被称为NEW、ESTABLISHED、INVALID、RELATED,这四种状态对于TCP、UDP、ICMP三种协议均有效。下面,我们来分别阐述四种状态的特性。 NEW:NEW说明这个包是我们看到的第一个包。意思就是,这是看到的某个连接的第一个包,它即将被匹配了。比如,我们看到一个SYN 包,是我们所留意的连接的第一个包,就要匹配它。 ESTA
10、BLISHED: ESTABLISHED已经注意到两个方向上的数据传输,而且会继续匹配这个连接的包。处于ESTABLISHED状态的连接是非常容易理解的。只要发送并接到应答,连接就是ESTABLISHED的了。一个连接要从NEW变为ESTABLISHED,只需要接到应答包即可,不管这个包是发往防火墙的,还是要由防火墙转发的。ICMP的错误和重定向等信息包也被看作是ESTABLISHED,只要它们是我们所发出的信息的应答。 RELATED: RELATED是个比较复杂的状态。当一个连接和某个已处于ESTABLISHED状态的连接有关系时,就被认为是RELATED的了。换句话说,一个连接要想是R
11、ELATED的,首先要有一个ESTABLISHED的连接。这个ESTABLISHED连接再产生一个主连接之外的连接,这个新的连接就是 RELATED的了。有了这个状态,ICMP应答、FTP传输、DCC等才能穿过防火墙正常工作。比如FTP协议,用户命令是通过对21端口的连接传输,而数据则通过另一个临时建立的连接(缺省的源端口是20,在PASSIVE模式下则是临时分配的端口)传输。对于这样的应用,包过滤防火墙很难简单设定一条安全规则,往往不得不开放所有源端口为20的访问。 INVALID:INVALID说明数据包不能被识别属于哪个连接或没有任何状态。有几个原因可以产生这种情况,比如,内存溢出,收到不知属于哪个连接的ICMP错误信息。一般地,我们拒绝这个状态的任何东西。






