版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,ALG在netfilter中的实现,,,目录,alg overview netfilter alg implementation ftp sip,,什么是ALG,ALG:application level gateway 一种在安全设备里面分析和修改应用层协议内容的技术,,ALG的用途,创建动态连接 有些应用层协议在协议交互过程中需要创建动态连接,动态连接的参数通过协议内容传递。连接可以分为控制连接
2、和数据连接。一般来说,包含动态连接参数的连接叫做控制连接;不包含动态连接参数的连接叫做数据连接。由于在配置安全设备的过滤策略时,无法预知动态连接的地址和端口,所以需要ALG技术来帮助动态连接穿越安全设备。 修改协议内容 如果在安全设备上启用了地址转换(NAT)功能,那些在协议内容中传递动态连接参数的应用协议就有可能无法工作(协议内容中的地址有可能是私有地址,或者是需要映射到私有地址的公开地址)。ALG技术可以修改协议内容中的地址或端口,进而帮助这些应用协议正确穿越安全设备。,,ALG的实现,关键字匹配 在协议内容里查找地址或端口的关键字。 协议解析 解析协
3、议内容,生成相应的数据结构。,,ALG的要点,什么时候创建动态连接? 根据协议内容判断何时需要创建动态连接。需要注意动态连接的参数。 什么时候修改协议内容? 开启地址转换功能时才需要修改协议内容。不仅要修改地址,而且可能需要修改端口。 如何修改协议内容? 协议内容中的地址和端口是如何表示的?是字符串还是数字(十进制还是十六进制)。协议中的相关项是否需要修改(比如数据长度)。校验和是否需要重新计算?是否需要分配一个新的数据包。,,ALG的图示,原始控制连接,新建数据连接,新建控制连接,新的控制连接还可以创建新的控制连接或
4、数据连接,新的数据连接传输数据,不需要关心应用层协议内容,,netfilter ALG,conntrack conntrack是管理连接的模块。每个连接都可以与一个ip_conntrack_helper关联。ip_conntrack_helper是netfilter中用来分析应用层协议的数据结构。 nat nat是完成地址转换功能的模块。每个连接都可以与一个ip_nat_helper关联。ip_nat_helper是netfilter中用来修改应用层协议的数据结构。,,ip_conntrack_helper,www.k
5、,ip_nat_helper,,ip_conntrack_expect,ip_conntrack,ip_conntrack_expect,ip_conntrack,ip_conntrack_expect,原始控制连接与expect没有关联,新建动态连接与expect有关联,,调用流程,ip_conntrack-helper-help,ip_conntrack.nat-helper-help,ip_conntrack-helper-help,ip_conntrack.nat-helper-ex
6、pect,ip_conntrack_expect-expectfn,ip_conntrack.nat-helper-help,原始控制连接调用流程,新建动态连接调用流程,子连接的helper,父连接的helper,,ip_conntrack_helper调用点,NF_IP_PRE_ROUTING,NF_IP_LOCAL_IN,NF_IP_LOCAL_OUT,NF_IP_FORWARD,NF_IP_POST_ROUTING,ROUTE,ROUTE,链路层,传输层,网络层,,ip_nat_helper调用点,NF_IP_P
7、RE_ROUTING,NF_IP_LOCAL_IN,NF_IP_LOCAL_OUT,NF_IP_FORWARD,NF_IP_POST_ROUTING,ROUTE,ROUTE,链路层,传输层,网络层,,重要函数,ip_conntrack_expect_related 把expect与conntrack关联起来 ip_conntrack_change_expect 修改expect的参数 ip_conntrack_unexpect_related 解除expect与conntrack的关联关系,,源转换的地址变化,OSRC
8、,ODST,RSRC,RDST,转换前 OSRC = RDST;ODST RSRC 转换后 OSRC != RDST;ODST RSRC 注:O(ORIGINAL);R(REPLY);SRC(SOURCE);DST(DESTINATION),,目的转换的地址变化,OSRC,ODST,RSRC,RDST,转换前 OSRC = RDST;ODST RSRC 转换后 OSRC = RDST;ODST ! RSRC 注:O(ORIGINAL);R(REPLY);SRC(SOURCE);DST(DESTINATION),,地址转
9、换与发送方向,注1:ORIGINAL是连接的ORIGINAL方向;REPLY是连接的REPLY方向。 注2:OUT,发出方向;IN,进入方向,,注意事项,ip_conntrack_helper与ip_nat_helper之间如何传递参数? ip_conntrack_helper-help分析应用层协议,可以把分析结果保存在ip_conntrack_expect.help中。这样可以避免在ip_nat_helper-help中再次分析应用层协议。 IP_NAT_HELPER_F_ALWAYS的作用? 一般情况下,只有连接有与之关联的expect才会调用ip_
10、nat_helper-help,有几个expect就会调用几次。如果有这个标记,那么,即使连接没有与之关联的expect,ip_nat_helper-help依然会被调用。 连接中与应用层协议相关的结构? 连接中,与应用层协议相关的结构是ip_conntrack.help。,,ftp协议概览,面向命令行的协议,命令行以rn结束。 控制连接,目的端口默认是21。 控制连接传输命令,数据连接传输数据。 创建数据连接的命令有两种 PORT:主动方式,数据连接由服务器发起。 PASV:被动方式,数据连接由客户端发起。,,ftp
11、协议过程,客户端,服务端,客户端,服务端,控制连接,数据连接,在控制连接上传输port或pasv命令,创建数据连接,,PORT分析,客户端,服务端,1:客户端向服务端发送PORT命令,2:服务端向客户端发起数据连接,防火墙上创建一个服务端到客户端的expect,expect的源端口未知。如果启用了NAT,需要修改PORT字串中的地址和端口,同时更新expect中的目的地址和端口。,,PASV分析,客户端,服务端,1:客户端向服务端发送PASV命令,2:服务端向客户端发送连接参数,3:客户端向服务端发起数据连接,防火墙上
12、创建一个客户端到服务端的expect,expect的源端口未知。如果启用了NAT,需要修改227字串中的地址和端口,同时更新expect中的目的地址和端口。,,不转换,注1:消息编号请参考前面的PORT和PASV命令的时序图。 注2:没有注释的项代表既不创建连接,也不修改地址。,,源转换,,目的转换,,协议匹配方法,PORT字串 PORT h1,h2,h3,h4,p1,p2 227字串 227 Entering Passive Mode (h1
13、,h2,h3,h4,p1,p2),,注意事项,数据连接地址与控制连接地址不一致的问题 port或227字串中的地址可能与控制连接的地址不一致(可以是其他主机的地址),这样会导致潜在的漏洞出现。,,sip协议概览,采用与http类似的格式 当前版本是2.0 基于UDP或TCP 默认端口是5060,,sip协议元素,,代理模式,,重定向模式,,SIP Phone A,SIP
14、 Phone B,1: REGISTER,2: 200 OK,3: REGISTER,4: 200 OK,SIP SERVER,注册,,SIP Phone A,SIP Phone B,1: INVITE SDP A,2: INVITE SDP A,3: 180 Ringing,4: 180 Ringing,5: 200 OK SDP B,6: 200 OK SDP B,7: ACK,8: INFO,9: 200 OK,10: INFO,11: 200 OK,SIP SERVER,双向数据流,呼叫,,SIP Phone
15、A,SIP Phone B,1: BYE,2: 200 OK,SIP SERVER,挂断,,sip消息格式,消息头,消息体,sip消息分为请求和应答两种。请求消息以请求 命令开头;应答消息以状态码开头。在消息头里 包含对消息体的描述。,消息体是可选的。它的内容在消息头中有描述。 比如sdp消息。,,REGISTER sip: SIP/2.0 Via: SIP/2.0/UDP 0 Max-Forwards: 70 From: ;epid=82042903F996B1 To: Cal
16、l-ID: 12225896430 CSeq: 1 REGISTER User-Agent: Polycom VSX 3000 Release 7.0.1 - 27Jul2004 1:54 Contact: Content-Length: 0,请求消息举例,,SIP/2.0 200 OK Via: SIP/2.0/UDP 0 Server: Applico-MMS/3.2.22 To: ;tag=1434379463257 From: Call-ID: 12225896430 CSeq: 1 RE
17、GISTER Contact: ;expires=3600 Content-Length: 0,应答消息举例,,v=0 o=mhandley 2890844526 2890842807 IN IP4 s=SDP Seminar i=A Seminar on the session description protocol c=IN IP4 2/127 t=2873397496 2873404696 a=recvonly m=audio 49170 RTP/AVP 0 m=video 51372 RTP/AVP 3
18、1 m=application 32416 udp wb,sdp举例,,sip字段,REQUEST URI:请求地址或帐号 FROM:源帐号 TO:目的帐号 CONTACT:主机监听地址和端口 VIA:应答回复地址和端口,,sdp字段,o:发送消息的地址 c:本机监听地址 m:本机音频、视频监听端口,,不转换(1),SIP Phone A,SIP Phone B,SIP SERVER,,注册过程,注1:消息编号参见前面的注册,呼叫,挂断的时序图
19、。 注2:没有注释的消息,表示不需要创建连接,也不需要修改内容。 注3:*表示无法确定消息的发送方向(sip的每个消息都有可能在一个新 连接中发送),,呼叫过程,,挂断过程,,不转换(2),SIP Phone B,SIP Phone A,SIP SERVER,,注册过程,,呼叫过程,,挂断过程,,源转换(1),SIP Phone A
20、,SIP Phone B,SIP SERVER,FIREWALL上配置PhoneA,PhoneB通过源转 换访问SIP SERVER。PhoneA,PhoneB的地 址是私网地址,SIP SERVER的地址是公网地址。,,注册过程,注1:消息编号参见前面的注册,呼叫,挂断的时序图。 注2:没有注释的消息,表示不需要创建连接,也不需要修改内容。,,呼叫过程,,挂断过程,,源转换(2),SIP Phone B,SIP Phone A,SIP SER
21、VER,FIREWALL上配置PhoneB通过源转换访问 SIP SERVER。PhoneB的地址是私网地址, PhoneA,SIP SERVER的地址是公网地址。,,注册过程,,呼叫过程,,挂断过程,,目的转换(1),SIP Phone B,SIP Phone A,SIP SERVER,FIREWALL上配置PhoneA,PhoneB通过目的转 换访问SIP SERVER。PhoneA,PhoneB的地址 是公网地址,SIP SERVER的地址是私网地址。,,注册过程,,呼叫过程,,挂断过程,,目的转换(2),SIP Phone B,SIP Phone A,SIP SERV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- ISO10012-2026《质量管理-测量管理体系要求》之19:“7.4沟通”专业指导问答材料(雷泽佳编制-2026A0)
- 会计实习总结15篇
- 2024年全国教师资格之中学体育学科知识与教学能力考试绝密预测题(详细参考解析)
- 2024年语文学困生辅导计划
- 农村留守儿童的教育关怀-以隆回县九龙村为例
- 2026年办公楼消防系统安装合同三篇
- 5.3.3 十字路口交通控制系统
- 2026年河北张家口市高三下高考第二次模拟考试数学试卷
- 2026年高二物理下学期期中考试试卷及答案(一)
- 2026年低压电工实操知识全真模拟考试卷及答案(十七)
- T/CSPSTC 79-2021城镇滨水景观工程技术规程
- 2025年全国高考物理试题及答案
- 柴油发电机房安全管理制度及操作规程
- 先天性胆总管囊肿课件
- 2024年公路工程质量检验评定标准
- 2025年广西南宁青秀区建政街道办事处招聘6人历年高频重点提升(共500题)附带答案详解
- 【MOOC】健康传播:基础与应用-暨南大学 中国大学慕课MOOC答案
- 乳恒牙龋齿充填治疗
- 汽车吊维保记录
- 废旧电力线路回收协议书
- 2023年北京大学强基计划数学试题真题答案解析(精校打印版)
评论
0/150
提交评论