防御保护-----第五章:状态检测和会话技术
文章目录
- 第五章:状态检测和会话技术
- 会话
- ASPF
- FTP协议-----文件传输协议
- 传输模式----POST模式(主动模式)
- 传输模式----PASV模式(被动模式)
- ASPF------针对应用层的包过滤技术
- server-map表和会话表的区别
第五章:状态检测和会话技术
状态检测以“数据流量”为单位来对报文进行检测和转发。即对一条流量的第一个报文进行包过滤规则检查,并将判断结果作为这条流量的“状态”记录下来。对于这条流量的后续报文,直接根据这个“状态”来判断是否转发还是丢弃,而不是再次检查报文的内容。
总结:
- 在状态检测防火墙之前,包过滤防火墙只根据设定好的静态规则来判断是否允许保温通过,它认为报文都是无状态的独立个体,不关注报文产生的前后因果。
- 这一点,就要求如果是包过滤防火墙,就必须在每一个方向上都配置一条规则,来放通流量信息。
- 存在状态检测防火墙之后,使用基于连接状态的检测机制,将通信双方之间交互的属于同一个连接的所有报文都作为整体的数据流来对待。
会话
会话------->指的是通信双方的连接在防火墙上的具体体现。一条会话就标识通信双方的一个连接,而防火墙上允许多条会话的存在,此时的集合被称为会话表(Session table)。
会话表是由基本的五元组信息组成的。----->只要这五个参数相同的报文,防火墙就认为是相同的一条连接。
在某些特殊的协议中,是不存在端口信息,例如ICMP协议。防火墙会使用一些固定的数值来充当端口号。其中2048为ICMP协议的目的端口。
- TTL是每一个会话动态生成的,不是永久存在的。
- 数值不固定。常见ICMP-20S;HTTP-10S;DNS-30S。
- SQL数据库----长连接;在某些场景中,会话的老化时间可能远小于数据报文交互的时间间隔,导致会话提前老化。为了解决该问题,提出了延长老化时间的方式,为长连接。
- 判断一个TCP连接的依据,防火墙就依靠于SYN字段。即将SYN报文称为TCP连接的首包。
- 对于TCP协议而言,防火墙只有收到SYN报文并且配置的规则允许该SYN报文通过时,才会建立会话。且后续的TCP报文匹配会话直接转发。
- 如果防火墙没有收到SYN报文,而是直接收到了SYN+ACK报文或ACK报文,是不会创建会话,且直接丢弃报文。
内部LAN网访问外部网络的请求直接通过路由器到达外网。
而外部的回应报文,先经过路由器转发给防火墙,由防火墙处理后再转发给路由器,最后发送给内部网络。
此时,防火墙无法收到SYN报文,只能收到SYN+ACK报文。这种通信双方交互的报文不同时经过防火墙的情被称为报文来回路径不一致场景。------>问题点在于防火墙会阻断SYN+ACK报文的流量。
解决方案:关闭状态检测功能。关闭该功能后,防火墙会回到包过滤时代。在该阶段,防火墙会对SYN+ACK报文进行规则过滤,如果动作为允许,则放通流量,且建立会话表。
会话表的建立,是基于数据报文通过了安全策略的检查,就会建立会话信息。但是在状态检测阶段,只有第一个报文才会被安全策略检查;而在包过滤阶段,所有报文都会被检查。
- 状态检测机制开启时,只有首包才会建立会话,后续报文匹配会话。
- 状态检测机制关闭时,即使首包没有经过防火墙,后续报文只要通过防火墙,也可以生成会话。
ASPF
练习:
FTP协议-----文件传输协议
FTP采用典型的C/S架构,客户端通过TCP与服务端建立连接后,实现文件的上传和下载功能。
在FTP传输数据过程中,需要服务器和客户端建立控制连接和数据连接。
- 控制连接:用来传输FTP指令和参数
- 数据连接:用来获取目录和传输数据
FTP是一个典型的多通道协议。默认情况下,FTP协议使用TCP端口20和21端口,其中20用于传输数据,21用于传输控制信息。是否使用20端口来建立数据链路与FTP的传输模式有关。
传输模式----POST模式(主动模式)
1,客户端随机选取一个端口X,通过TCP向服务器的21端口发送请求,建立控制通道。
- 该通道一旦建立,后续无论上传、下载等任何操作的指令信息都会通过该控制通道来传输。
- 此时使用三次握手来建立TCP连接。
2,当涉及到上传、下载操作时。
- 客户端会再一次随机一个端口Y,通过控制通道通知给服务器。
- 目的,是告知服务器,请求建立一个数据通道。但是,此时的TCP的SYN报文不是客户端发送的。
3,服务器收到通知后,通过本地的20端口主动连接客户端的端口Y,从而建立数据通道。
- 从而传输数据。
注意:数据通道不是FTP一开始就会建立的,而是只有涉及数据传输时才会建立。
传输模式----PASV模式(被动模式)
1,与主动模式相同,客户端随机选取一个端口X,通过TCP向服务器的21端口发送请求,建立控制通道。
2,当涉及到上传、下载操作时。
- 客户端会通过控制通道,通知服务器,自己想要建立数据通道的请求。
- 服务端收到通知请求后,会在本地随机一个端口Z,继续通过控制通道告知给客户端。
3,客户端收到服务端回应后,在本地随机一个端口Y,向对端端口Z发送SYN报文,建立数据通道。
被动模式--------解决了客户端隐藏在防火墙背后,无法建立数据通道的弊端。
在防火墙的认知中,服务FTP所代表的就是放通21号端口,而通过被动模式建立时,C/S的端口号都是1024以上的随机端口,导致防火墙无法放通。-------并且,此时是一个全新的TCP连接,对于防火墙而言,没有与之对应的会话表,也不会放通流量。-------解决思路:ASPF机制。
ASPF------针对应用层的包过滤技术
多通道协议-----特点就是先在控制隧道中协商后续通道使用的参数,然后根据协商结果来建立数据通道。由于数据通道的地址和端口是动态的,管理员无法预知,故无法编写策略规则。导致无法建立数据通道。
原理:检测报文的应用层协议,记录应用层信息中携带的关键数据,使得某些在安全策略中没有明确定义要放通的报文也能够正常转发。--------记录应用层协议的表项被称为**“server-map”表。逻辑:报文命中该表单后,不再收到安全策略的控制,相当于在防火墙上开启一条“隐形通道”**。
注:server-map表单通道,不要随意开启。
server-map表和会话表的区别
- 会话表中的会话时记录通信双方的连接在防火墙上的具体体现,其作用是记录通信双方的连接状态。
- 防火墙为某条连接的首包,生成会话后,该连接的后续报文命中会话后直接转发,不受安全策略控制。
- 而server-map表记录的不是当前连接的信息,而是防火墙预测的信息,未来的报文的特征。
- 从处理流程上看,防火墙收到报文后,先检查报文是否命中会话表,如果命中,则直接转发;如果没有命中,则说明是报文首包,接下来会查看是否命中server-map表,如果命中由ASPF机制生成的Server-map表,则报文不再收到安全策略的控制,会直接生成相应的会话表,并转发数据。
- Server-map表和会话表作为防火墙上最重要的表单,两者作用不同,不能相互替代。
1、域间开启
[Fw]firewall interzone trust dmz
[FWw-interzone-trust-dmz]detect ftp
2、全局开启
[Fw]firewall detect ftp --------与web界面操作相同
默认情况下,FTP协议的ASPF功能是开启的。