防火墙ALG技术之RTSP协议穿墙术
2022-11-29 11:11:30   来源: 威努特工控安全   评论:0 点击:

 

  1、RTSP协议学习

  1.1 RTSP协议简介

  RTSP(Real Time Streaming Protocol,实时流协议)是TCP/IP 协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。RTSP对流媒体提供了诸如暂停、快进等控制,而它本身并不传输数据,RTSP的作用相当于流媒体服务器的远程控制;媒体数据的传输可通过RTP/RTCP协议来完成。服务器端可以自行选择使用TCP或UDP来传输串流内容,不是特别强调时间同步,所以比较能容忍网络延迟。

  1.2  RTSP协议与HTTP协议

  区别:RTSP协议是有状态的,RTSP的命令需要知道现在正处于一个什么状态;也就是说RTSP的命令总是按照顺序来发送,某个命令总在另外一个命令之前要发送,RTSP不管处于什么状态都不会断掉连接。而HTTP协议则是无状态的,HTTP在发送一个命令以后,连接就会断开,且命令之间是没有依赖性。RTSP协议使用TCP的554端口,HTTP协议则是使用TCP的80端口。

  联系:两者都用纯文本来发送消息,并且RTSP协议的语法及消息参数和HTTP协议类似。

  1.3  RTSP协议与RTP(RTCP)协议

  RTP(Real Time Transport Protocol,实时传输协议),提供时间标志、序列号以及其他能够保证在实时数据传输时处理时间的方法。RTP是基于UDP协议的,只是包裹内容信息。

  RTCP(Real Time Transport Control Protocol,实时传输控制协议),是RTP的控制部分,用来保证服务质量和成员管理。RTP和RTCP是一起使用的。

  RTSP(Real Time Streaming Protocol,实时流协议),RTSP具体数据传输交给RTP,提供对流的远程控制。RTSP的客户端连接服务器是通过SDP(Session Description Protocol,会话描述协议)传递信息。

  1.4  RTSP协议常用方法

  OPTIONS:客户端向服务器发起OPTIONS请求,用于获取服务器提供的可用方法;服务器的响应信息则包括其提供的可用方法。

  DESCRIBE:客户端向服务器发起DESCRIBE请求,用于获取会话描述信息;服务器的响应信息则包括对此会话的描述信息。

  SETUP:客户端向服务器发起SETUP请求,用于建立RTSP会话并确定传输模式;服务器的响应信息则包括对该会话的确认信息。

  PLAY:客户端向服务器发起PLAY请求,告知服务器通过SETUP中指定的机制开始发送数据;服务器的响应信息则包括对该请求的确认信息。

  TEARDOWN:客户端向服务器发起TEARDOWN请求,告知服务器终止媒体流传输并释放相关资源;服务器的响应信息则包括对该请求的确认信息。

  1.5 RTSP协议交互过程

  如图1-1所示,Client表示RTSP客户端、Server表示RTSP服务器,展示了RTSP消息的交互过程。

  

  图1-1 RTSP消息交互过程

  1.6 RTSP协议报文分析

  

  第1步,客户端与服务器TCP三次握手建立连接。

 

  第3步,客户端继续发送一个RTSP描述命令(DESCRIBE),询问服务器提供的媒体描述信息;服务器通过一个SDP描述来反馈流数量、媒体类型等信息。

  

  第4步,客户端分析该SDP描述,为会话中的每一个流(trackID)发送一个RTSP建立命令(SETUP),通知服务器客户端用于接收媒体数据的传输方式。

  

  第5步,流媒体连接建立完成,客户端发送一个播放命令(PLAY),服务器就开始在UDP上传输音频视频流(RTP)到客户

端。

 

  第6步,在播放过程中客户端还可以向服务器发送命令来控制快进、快退和暂停(PAUSE)等。最后客户端发送一个终止命令(TEARDOWN)结束流媒体会话。

 


 

  2.RTSP协议穿越防火墙

  如图2-1所示,展示了RTSP协议穿越防火墙时常见的组网拓扑示意图,私网RTSP客户端经过防火墙的SNAT(源网络地址转换)后获取公网RTSP服务器上的视频资源。


 

  2.1   场景一:正向安全策略+源NAT

 

  该场景下,防火墙配置安全策略正向(Trust->Untrust)放通TCP-554端口、源NAT、不开启RTSP ALG,其数据转发过程如下:

  (1)客户端向服务器发起TCP三次握手连接,建立RTSP 554端口控制连接;

  (2)服务器向客户端发送UDP音频视频数据流,其目的IP地址与目的端口号为防火墙源NAT转换后的公网IP地址和端口号;

  (3)防火墙未开启RTSP ALG,无法感知TCP控制连接协商的UDP数据端口,安全策略阻断该UDP数据流,UDP数据传输失败;

  (4)服务器没有收到客户端返回的确认包,将控制连接TEARDOWN后重新开始协商控制连接,连接建立后使用TCP传输音频视频流。

  2.2 场景二:正向安全策略+源NAT+RTSP ALG

  该场景下,防火墙配置安全策略正向(Trust->Untrust)放通TCP-554端口、源NAT、开启RTSP ALG,其数据转发过程如下:

  (1)客户端向服务器发起TCP三次握手连接,建立RTSP 554端口控制连接;

  (2)防火墙开启RTSP ALG,将记录NAT会话,自动添加放通TCP控制连接协商的UDP数据端口的策略 ;

  (3)服务器向客户端发送UDP音频视频数据流,其目的IP地址与目的端口号为防火墙源NAT转换后的公网IP地址和端口号;

  (4)防火墙根据控制连接的NAT会话将上述UDP数据流的目的IP地址及端口还原为私网IP地址及端口,安全策略放通,UDP数据传输成功。

  2.3 场景三:双向安全策略+源NAT

  该场景下,防火墙配置安全策略双向(Trust<->Untrust)全通、源NAT、不开启RTSP ALG,其数据转发过程如下:

  (1)客户端向服务器发起TCP三次握手连接,建立RTSP 554端口控制连接;

  (2)服务器向客户端发送UDP音频视频数据流,其目的IP地址与目的端口号为防火墙源NAT转换后的公网IP地址和端口号;

  (3)防火墙未开启RTSP ALG,不会根据控制连接的NAT会话将上述UDP数据流的目的IP地址及端口还原为私网IP地址及端口,从而数据无法到达客户端,UDP数据传输失败;

  (4)服务器没有收到客户端返回的确认包,将控制连接TEARDOWN后重新开始协商控制连接,连接建立后使用TCP传输音频视频流。

  2.4 场景四:双向安全策略+源NAT+RTSP ALG

  该场景下,防火墙配置安全策略双向(Trust<->Untrust)全通、源NAT、开启RTSP ALG,其数据转发过程如下:

  (1)客户端向服务器发起TCP三次握手连接,建立RTSP 554端口控制连接;

  (2)防火墙开启RTSP ALG,将记录NAT会话,自动添加放通TCP控制连接协商的UDP数据端口的策略 ;

  (3)服务器向客户端发送UDP音频视频数据流,其目的IP地址与目的端口号为防火墙源NAT转换后的公网IP地址和端口号;

  (4)防火墙根据控制连接的NAT会话将上述UDP数据流的目的IP地址及端口还原为私网IP地址及端口,安全策略放通,UDP数据传输成功。

  以上和大家分享了RTSP穿越防火墙源NAT的场景,另有对目的NAT场景感兴趣的小伙伴也可继续深入交流。

相关热词搜索:工业互联网安全

上一篇:今年14起重大勒索软件攻击事件回顾
下一篇:工程加密机制漏洞

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
分享到: 收藏