网络安全学习 day5
状态检测和会话技术
状态检测以
“
数据流量
”
为单位来对报文进行检测和转发。即对一条流量的第一个报文进行包过滤规
则检查,并将判断结果作为这条流量的
“
状态
”
记录下来
。对于该条流量的后续报文,直接根据这个
“
状态
”来判断是否转发还是丢弃,而不会再次检查报文的内容。
总结:
在状态检测防火墙之前,包过滤防火墙只根据设定好的
静态规则
来判断是否允许报文通过,它认为
报文都是
无状态的独立个体
,不关注报文产生的前后因果。
这一点,就要求如果是包过滤防火墙,就必须在每一个方向上都配置一条规则,来放通流量信
息
。
存再状态检测防火墙之后,
使用基于连接状态的检测机制,将通信双方之间交互的属于同一个连接
的所有报文都作为整体的数据流来对待
。
会话
会话
--->
指的是通信双方的连接在防火墙上的具体体现
。
一条会话就标识通信双方的一个连接,而防火墙上允许多条会话的存在,此时的集合被称为
会话表
(
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
[FW-interzone-trust-dmz]detect ftp
2、全局开启
[FW]firewall detect ftp ---与web界面操作相同
默认情况下,FTP协议的ASPF功能是开启的