防火墙在识别RTSP协议方面起着至关重要的作用,特别是在NAT(网络地址转换)场景下。首先,我们需要了解防火墙、NAT以及RTSP协议的基本概念和作用。
防火墙是一种网络安全设备,用于保护内部网络免受外部网络的攻击。防火墙可以过滤网络流量,只允许符合安全策略的流量通过。NAT是一种网络地址转换技术,用于将一簇IP地址转换为另一簇IP地址。但是,NAT也会对网络流量产生一些影响,比如破坏了IP地址和端口号的原始对应关系。在NAT场景下,防火墙的作用更加重要。RTSP协议(实时流协议)是一种网络协议,用于实时流媒体数据的传输和控制。在NAT场景下,RTSP协议的识别和处理机制变得更加复杂。通过识别和处理RTSP协议的网络流量,防火墙可以确保RTSP协议的正确运行,同时保护网络的安全。RTSP协议的学习,可参考rfc2326(https://www.rfc-editor.org/rfc/rfc2326)或者防火墙ALG技术之RTSP协议穿墙术。
在NAT场景下,防火墙识别RTSP协议的主要方法如下:
1.观察和分析RTSP协议的数据包,识别出其中包含的命令字和响应。
2.查看实时流量的变化,重点关注OPTIONS、DESCRIBE、SETUP等命令字。这些命令字通常会触发NAT的变换,因此需要特别关注。
3.在防火墙的配置的基础上,创建规则识别RTSP协议并实现透明的NAT穿越,将RTSP协议的流量映射到正确的内部IP地址和端口号。
在处理RTSP协议的网络流量时,还需要特别注意以下事项:
1.TCP分段报文的处理。例如,DESCRIBE响应首包为TCP分段,其Content-Length是后续报文的长度。当IP-PORT变换时,需要预计算length字段的值,以确保报文的正确性。
2.SETUP命令字与其响应的处理。当SETUP命令字与其响应在命中NAT时,需要同步替换和还原IP-PORT字段,并创建相应的规则,以确保RTSP协议的正常运行。
3.当服务器响应500时对payload的替换。如果出现异常情况,如服务器返回500错误码,需要正确地替换payload中的IP-PORT字段,以避免对RTSP协议的正确性造成影响。
目前威努特工业防火墙对RTSP的识别,分为NAT下ALG_RTSP和非NAT下L7_RTSP。
1
NAT下ALG_RTSP
NAT下ALG_RTSP,根据NAT规则匹配的源NAT、目的NAT或FULLNAT与源端口是否转换,排列组合总共分为6种场景。
场景1.1
源NAT+源端口转换+ALG_RTSP
配置安全策略为放行RTSP服务。
配置源NAT策略为192.168.1.100访问192.168.1.10,转换为192.168.1.11访问192.168.1.10,其中源端口转换。
此时转换前RTSP报文为:
此时转换后RTSP报文为:
对比转换前后No.10的报文,负载处红框部分已经转换了源端口,同时后续的RTP和RTCP报文所用源端口均为墙两侧RTSP报文协商的端口,RTSP播放器已经正确播放。
场景1.2
源NAT+源端口不转换+ALG_RTSP
保持场景1.1的安全策略,配置源NAT策略为192.168.1.100访问192.168.1.10,转换为192.168.1.11访问192.168.1.10,其中源端口不转换。
此时转换前RTSP报文为:
此时转换后RTSP报文为:
对比转换前后No.10的报文,负载处红框部分源端口未转换,同时后续的RTP和RTCP报文所用源端口均为墙两侧RTSP报文协商的未转换端口,RTSP播放器已经正确播放。
场景1.3
目的NAT+源端口不转换+ALG_RTSP
保持场景1.1的安全策略,配置目的NAT策略为192.168.1.100访问192.168.1.210,转换为192.168.1.100访问192.168.1.10,其中源端口不转换。
此时转换前RTSP报文为:
此时转换后RTSP报文为:
对比转换前后No.10的报文,负载处红框部分表示目的地址正确转换,黄框部分源端口未转换,同时后续的RTP和RTCP报文所用源端口均为墙两侧RTSP报文协商的未转换端口,且通信同样命中目的NAT,RTSP播放器已经正确播放。
场景1.4
目的NAT+源端口转换+ALG_RTSP
保持场景1.1的安全策略,配置目的NAT策略为192.168.1.100访问192.168.1.210,转换为192.168.1.100访问192.168.1.10,其中源端口转换
此时转换前RTSP报文为:
此时转换后RTSP报文为:
对比转换前后No.10的报文,负载处红框部分表示目的地址正确转换,源端口正确转换,同时后续的RTP和RTCP报文所用源端口均为墙两侧RTSP报文协商的转换端口,且通信同样命中目的NAT,RTSP播放器已经正确播放。
场景1.5
FULLNAT+源端口转换+ALG_RTSP
保持场景1.1的安全策略,配置源NAT策略和目的NAT策略,逻辑合并最终NAT策略为192.168.1.100访问192.168.1.210,转换为192.168.1.11访问192.168.1.10,其中源端口转换。
此时转换前RTSP报文为:
此时转换后RTSP报文为:
对比转换前后No.10的报文,负载处红框部分表示目的地址正确转换,源端口正确转换,同时后续的RTP和RTCP报文所用源端口均为墙两侧RTSP报文协商的转换端口,且通信同样命中FULLNAT,RTSP播放器已经正确播放。
场景1.6
FULLNAT+源端口不转换+ALG_RTSP
保持场景1.1的安全策略,配置源NAT策略和目的NAT策略,逻辑合并最终NAT策略为192.168.1.100访问192.168.1.210,转换为192.168.1.11访问192.168.1.10,其中源端口不转换。
此时转换前RTSP报文为:
此时转换后RTSP报文为:
对比转换前后No.10的报文,负载处红框部分表示目的地址正确转换,源端口未转换,同时后续的RTP和RTCP报文所用源端口均为墙两侧RTSP报文协商的未转换端口,通信同样命中FULLNAT,RTSP播放器已经正确播放。
2
非NAT下L7_RTSP
场景2.1 非NAT+L7_RTSP
保持场景1.1的安全策略,即仅允许TCP-554端口数据通过,删除源NAT策略和目的NAT策略。
此时过墙前RTSP报文为:
此时过墙后RTSP报文为:
对比转换前后No.11的报文,负载处红框部分表示目的地址未转换,源端口未转换,报文未发生变化;同时后续的RTP和RTCP报文所用源端口均为墙两侧RTSP报文协商的未转换端口,RTSP播放器已经正确播放。
3
总结
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!