11-会话管理配置
本章节下载: 11-会话管理配置 (243.23 KB)
目 录
会话管理是为了实现攻击检测及防范等基于会话进行处理的业务而抽象出来的公共功能。此功能把传输层报文之间的交互关系抽象为会话,并根据发起方和响应方的报文信息对会话进行状态更新和老化,支持多个业务特性分别对同一个业务报文进行处理。
会话管理主要基于传输层协议对报文进行检测。其实质是通过检测传输层协议信息来对连接的状态进行跟踪,并对所有连接的状态信息进行基于会话表和关联表的统一维护和管理。
客户端向服务器发起连接请求报文的时候,系统会创建一个会话表项。该表项中记录了一个会话所对应的请求报文信息和回应报文信息,包括源IP地址/端口号、目的IP地址/端口号、传输层协议类型、应用层协议类型、会话的协议状态等。对于多通道协议(特指部分应用协议中,客户端与服务器之间需要在已有连接基础上协商新的连接来完成一个应用),会话管理还会根据协议的协商情况,创建一个或多个(由具体的应用协议决定)关联表表项,用于关联属于同一个应用的不同会话。关联表项在多通道协议协商的过程中创建,完成对多通道协议的支持后即被删除。
上述会话管理的工作原理描述仅针对目的地址为单播地址的报文,对于目的地址是组播地址的报文稍有不同。组播报文到达设备后通常经由一个入接口到多个出接口进行转发,因此对于同一个应用的组播报文的连接,在入接口和多个出接口均会建立起各自的会话表项,我们称这类组播报文触发建立的会话表项为组播会话表项,以区别于单播报文触发建立的单播会话表项。若无特殊说明,本文中的会话表项不区分单播和组播类型。
目前会话管理在设备上实现的具体功能如下:
· 支持对各协议报文创建会话、更新会话状态以及根据协议状态设置老化时间。
· 支持ICMP/ICMPv6差错报文的映射,可以根据ICMP/ICMPv6差错报文携带的信息查找原始的会话。
· 支持设置长连接会话,保证指定的会话在一段较长的时间内不会被老化。
· 支持应用层协议(如FTP)的控制通道和动态数据通道的会话管理。
长连接老化时间仅在TCP会话进入稳态(TCP-EST状态)时生效。在会话稳态时,长连接老化时间具有最高的优先级,其次为应用层协议老化时间,最后为协议状态老化时间。
当会话数目过多时,若设备响应速度过慢,建议将协议状态老化时间或应用层协议老化时间调高。
会话管理配置任务如下:
· 配置会话老化时间
· 配置会话日志功能
· 配置会话统计功能
以下配置用于实现根据会话所处协议状态来设置会话表项的老化时间。处于某协议状态的会话,如果在该协议状态老化时间内未被任何报文匹配,则会由于老化而被系统自动删除。
(1) 进入系统视图。
system-view
(2) 配置各协议状态的会话老化时间。
session aging-time state { fin | icmp-reply | icmp-request | icmpv6-reply | icmpv6-request | rawip-open | rawip-ready | syn | tcp-close | tcp-est | tcp-time-wait | udp-open | udp-ready } time-value
缺省情况下,各协议状态的会话老化时间为:
¡ FIN:30秒。
¡ ICMP-REPLAY:30秒。
¡ ICMP-REQUEST:60秒。
¡ ICMPv6-REPLAY:30秒
¡ ICMPv6-REQUEST:60秒
¡ RAWIP-OPEN:30秒。
¡ RAWIP-READY:60秒。
¡ SYN:30秒。
¡ TCP-CLOSE:2秒。
¡ TCP-EST:3600秒。
¡ TCP-TIME-WAIT:2秒。
¡ UDP-OPEN:30秒。
¡ UDP-READY:60秒。
对于处于TCP-EST状态的TCP会话以及处于UDP-READY状态的UDP会话,根据所属的应用层协议类型或应用的老化时间进行老化,老化时间可配置。对于进入稳定状态的其它应用层协议的会话,则仍然遵循协议状态的会话老化时间进行老化。
(1) 进入系统视图。
system-view
(2) 配置应用层协议的会话老化时间。
session aging-time application application-name time-value
缺省情况下,部分协议的会话老化时间如下,单位为秒:
¡ DNS:1。
¡ FTP:3600。
¡ GTP-CONTROL:60。
¡ GTP-USER:60。
¡ GPRS-DATA:60。
¡ GPRS-SIG:60。
¡ H225、H245:3600。
¡ RAS、SIP:300。
¡ RTSP:3600。
¡ TFTP:60。
¡ ILS:3600。
¡ MGCP-CALLAGENT:60。
¡ MGCP-GATEWAY:60。
¡ PPTP:3600。
¡ RSH:60。
¡ SCCP:3600。
¡ SQLNET:600。
¡ XDMCP:3600。
¡ BOOTPC:120。
¡ BOOTPS:120。
¡ FTP-DATA:240。
¡ HTTPS:600。
¡ L2TP:120。
¡ NETBIOS-DGM:3600。
¡ NETBIOS-NS:3600。
¡ NETBIOS-SSN:3600。
¡ NTP:120。
¡ QQ:120。
¡ RIP:120。
¡ SNMP:120。
¡ SNMPTRAP:120。
¡ STUN:600。
¡ SYSLOG:120。
¡ TACACS-DS:120。
¡ WHO:120。
其它预定义应用层协议和自定义应用层协议的缺省会话老化时间为1200秒。
可以将符合指定特征且进入TCP-EST状态的TCP会话设置为长连接会话,该类会话的老化时间不会随着状态的变迁而改变。可以设置长连接会话的老化时间,或者将其设置为永不老化。
对于长连接会话规则触发生成的长连接会话不会因为其配置的删除、修改或没有报文命中而被删除,只有当会话的发起方或响应方主动发起关闭连接请求、达到长连接会话老化时间或管理员手动删除该会话时,才会被删除。
(1) 进入系统视图。
system-view
(2) 配置长连接会话规则。
session persistent acl [ ipv6 ] acl-number [ aging-time time-value ]
会话日志是为满足网络管理员安全审计的需要,对用户的访问信息、用户IP地址的转换信息、用户的网络流量信息等进行记录,并可采用日志的格式发送给日志主机或者输出到信息中心。
存活时间或收发数目达到一定阈值的会话才会以日志的形式进行记录并输出,该阈值包括以下两种类型:
· 时间阈值:当一个会话存在的时间达到设定的时间阈值时,输出会话日志。
· 流量阈值:分为报文数阈值和字节数阈值两种。当一个会话收发的报文数或字节数达到设定的流量阈值时,输出会话日志。为使流量阈值能触发输出会话日志,必须开启软件快速转发的会话统计功能;否则,会话会由于无法统计报文的流量信息而不能通过流量阈值触发输出会话日志。
同时配置了时间阈值和流量阈值的情况下,只要有一个阈值到达,就会输出相应的会话日志,并将所有的阈值统计信息清零。
同时只能有一种流量阈值有效,以最后一次配置的阈值类型为准,例如,先配置报文数阈值再配置字节数阈值,则当前有效的阈值是字节数阈值,只会输出达到字节数阈值的会话日志。
开启会话日志功能后,若开启了新建会话日志功能和删除会话日志功能,则在会话表创建和删除时分别输出一次会话日志;否则在会话表创建和删除时不会输出会话日志。
因为会话日志仅支持通过Flow日志或快速日志输出方式进行输出,缺省使用Flow日志形式,所以开启会话日志功能后,必须配置Flow日志或快速日志输出的相关功能才能输出会话日志信息。有关Flow日志模块的相关配置请参见“网络管理和监控配置指导”中的“Flow日志”。有关快速日志输出模块的相关配置请参见“网络管理和监控配置指导”中的“快速日志输出”。
(1) 进入系统视图。
system-view
(2) (可选)配置输出会话日志的时间阈值。
session log time-active time-value
缺省情况下,不依据时间阈值发送会话日志。
(3) (可选)配置输出会话日志的流量阈值。
session log { bytes-active bytes-value | packets-active packets-value }
缺省情况下,未配置输出会话日志的流量阈值。
(4) (可选)开启新建会话日志功能。
session log flow-begin
缺省情况下,新建会话日志功能处于关闭状态。
(5) (可选)开启删除会话日志功能。
session log flow-end
缺省情况下,删除会话日志功能处于关闭状态。
(6) 进入接口视图。
interface interface-type interface-number
(7) 开启会话日志功能。
session log enable { ipv4 | ipv6 } [ acl acl-number ] { inbound | outbound }
缺省情况下,会话日志功能处于关闭状态。
开启软件快速转发的会话统计功能之后,设备将对收到和发送的基于会话的业务报文数目和报文字节数进行统计。基于单播会话的报文统计信息可通过display session table命令查看,基于单播报文类型的报文统计信息可通过display session statistics命令查看;基于组播会话的报文统计信息可通过display session table multicast命令查看,基于组播报文类型的报文统计信息可通过display session statistics multicast命令查看。
(1) 进入系统视图。
system-view
(2) 开启软件快速转发的会话统计功能。
session statistics enable
软件快速转发的会话统计功能处于关闭状态。
开启会话表项使用率突变告警功能后,系统会以10秒为周期对会话表项使用率进行统计,若设备达到会话表项使用率突变告警阈值条件,则会输出相应的会话告警信息。用于对会话表项突然大幅升高或降低的情况进行监控,以便实时了解设备会话表项的稳定性。
会话表项变化率是指周期结束时与周期起始时会话表项数量的差值所占周期起始时的会话表项数的百分比。会话表项起始使用率是指设备检测周期起始时的会话数所占系统会话最大规格数的百分比。
当设备会话数在一个周期的变化率达到会话表项突变告警阈值,且会话表项的起始使用率大于起始告警阈值时,则会产生告警。
(1) 进入系统视图。
system-view
(2) 开启会话表项使用率突变告警功能。
session alarm usage-abrupt enable
缺省情况下,会话表项使用率突变告警功能处于关闭状态。
(3) 配置会话表项使用率的突变告警阈值。
session alarm usage-abrupt threshold threshold-value [ base-threshold base-value ]
缺省情况下,会话表项突变告警阈值为20%,会话表项起始使用率告警阈值为10%。
开启会话新建速率突变告警功能后,系统会以10秒为周期对会话表项新建速率进行统计,若设备达到会话新建速率突变告警阈值条件,则会输出相应的会话告警信息。用于对会话表项新建速率突然大幅升高或降低的情况进行监控,以便实时了解设备会话表项的稳定性。
会话新建速率变化率是指周期结束时与周期起始时会话新建速率的差值所占周期起始时的会话新建速率的百分比。会话新建速率起始百分比是指设备检测周期起始时新建速率所占10万的百分比值。
当设备会话新建速率在一个周期的变化率达到会话新建速率突变告警阈值,且会话新建速率起始百分比大于起始告警阈值时,则会产生告警。
(1) 进入系统视图。
system-view
(2) 开启会话新建速率突变告警功能。
session alarm rate-abrupt enable
缺省情况下,会话新建速率突变告警功能处于关闭状态。
(3) 配置会话新建速率的突变告警阈值。
session alarm rate-abrupt threshold threshold-value [ base-threshold base-value ]
缺省情况下,会话新建速率突变告警阈值为20%,会话新建速率起始告警阈值为10%。
开启会话尝试新建速率突变告警功能后,系统会以10秒为周期对会话表项尝试新建速率进行统计,若设备达到会话尝试新建速率突变告警阈值条件,则会输出相应的会话告警信息。用于对会话表项尝试新建速率突然大幅升高或降低的情况进行监控,以便实时了解设备会话表项的稳定性。
会话尝试新建速率变化率是指周期结束时与周期起始时会话尝试新建速率的差值所占周期起始时的会话尝试新建速率的百分比。会话尝试新建速率起始百分比是指设备检测周期起始时尝试新建速率所占10万的百分比值。
当会话尝试新建速率在一个周期的变化率达到会话新建速率突变告警阈值,且会话尝试新建速率起始百分比大于起始告警阈值百分比时,产生告警。
(1) 进入系统视图。
system-view
(2) 开启会话尝试新建速率突变告警功能。
session alarm try-rate-abrupt enable
缺省情况下,会话尝试新建速率突变告警功能处于关闭状态。
(3) 配置会话尝试新建速率的突变告警阈值。
session alarm try-rate-abrupt threshold threshold-value [ base-threshold base-value ]
缺省情况下,会话尝试新建速率突变告警阈值百分比为20%,会话尝试新建速率起始告警阈值百分比为10%。
缺省情况下ALG不支持对分片报文进行处理,开启该功能后,指定协议的分片报文将支持进行ALG处理,当前仅支持对SIP协议的分片报文开启该功能。
(1) 进入系统视图。
system-view
(2) 开启ALG支持分片报文处理功能。
session alg fragment sip
缺省情况下,ALG支持分片报文处理功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后会话的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除会话统计信息。
表1-1 会话管理显示和维护
操作 |
命令 |
显示应用层协议的会话老化时间 |
display session aging-time application |
显示各协议状态的会话老化时间 |
display session aging-time state |
显示关联表项信息 |
display session relation-table { ipv4 | ipv6 } |
显示单播会话统计信息 |
display session statistics [ history-max | summary ] |
根据五元组显示IPv4单播会话统计信息 |
display session statistics ipv4 { destination-ip destination-ip | destination-port destination-port | protocol { dccp | dns | ftp | gtp | h323 | http | icmp | ils | mgcp | nbt | pptp | raw-ip | rsh | rtsp | sccp | sctp | sip | smtp | sqlnet | ssh | tcp | telnet | tftp | udp | udp-lite | xdmcp } | source-ip source-ip | source-port source-port } * |
根据五元组显示IPv6单播会话统计信息 |
display session statistics ipv6 { destination-ip destination-ip | destination-port destination-port | protocol { dccp | dns | ftp | gtp | h323 | http | icmpv6 | ils | mgcp | nbt | pptp | raw-ip | rsh | rtsp | sccp | sctp | sip | smtp | sqlnet | ssh | tcp | telnet | tftp | udp | udp-lite | xdmcp } | source-ip source-ip | source-port source-port } * |
显示组播会话统计信息 |
display session statistics multicast |
显示IPv4单播会话表信息 |
display session table ipv4 [ [ responder ] { application application-name | destination-ip start-destination-ip [ end-destination-ip ] | destination-port destination-port | protocol { dccp | icmp | raw-ip | sctp | tcp | udp | udp-lite } | source-ip start-source-ip [ end-source-ip ] | source-port source-port | state { dccp-closereq | dccp-closing | dccp-open | dccp-partopen | dccp-request | dccp-respond | dccp-timewait | icmp-reply | icmp-request | rawip-open | rawip-ready | sctp-closed | sctp-cookie-echoed | sctp-cookie-wait | sctp-established | sctp-shutdown-ack-sent | sctp-shutdown-recd | sctp-shutdown-sent | tcp-close | tcp-close-wait | tcp-est | tcp-fin-wait | tcp-last-ack | tcp-syn-recv | tcp-syn-sent | tcp-syn-sent2 | tcp-time-wait | udp-open | udp-ready | udplite-open | udplite-ready } } * ] [ verbose ] |
显示IPv6单播会话表信息 |
display session table ipv6 [ [ responder ] { application application-name | destination-ip start-destination-ip [ end-destination-ip ] | destination-port destination-port | protocol { dccp | icmpv6 | raw-ip | sctp | tcp | udp | udp-lite } | source-ip start-source-ip [ end-source-ip ] | source-port source-port | state { dccp-closereq | dccp-closing | dccp-open | dccp-partopen | dccp-request | dccp-respond | dccp-timewait | icmpv6-reply | icmpv6-request | rawip-open | rawip-ready | sctp-closed | sctp-cookie-echoed | sctp-cookie-wait | sctp-established | sctp-shutdown-ack-sent | sctp-shutdown-recd | sctp-shutdown-sent | tcp-close | tcp-close-wait | tcp-est | tcp-fin-wait | tcp-last-ack | tcp-syn-recv | tcp-syn-sent | tcp-syn-sent2 | tcp-time-wait | udp-open | udp-ready | udplite-open | udplite-ready } } * ] [ verbose ] |
显示IPv4组播会话表信息 |
display session table multicast ipv4 [ [ responder ] { destination-ip start-destination-ip [ end-destination-ip ] | destination-port destination-port | protocol { dccp | icmp | raw-ip | sctp | tcp | udp | udp-lite } | source-ip start-source-ip [ end-source-ip ] | source-port source-port } * ] [ verbose ] |
显示IPv6组播会话表信息 |
display session table multicast ipv6 [ [ responder ] { destination-ip start-destination-ip [ end-destination-ip ] | destination-port destination-port | protocol { dccp | icmpv6 | raw-ip | sctp | tcp | udp | udp-lite } | source-ip start-source-ip [ end-source-ip ] | source-port source-port } * ] [ verbose ] |
显示会话数目的Top 10排名统计信息 |
display session top-statistics { last-1-hour | last-24-hours | last-30-days } |
删除关联表项 |
reset session relation-table [ ipv4 | ipv6 ] |
清除单播会话统计信息 |
reset session statistics |
清除组播会话统计信息 |
reset session statistics multicast |
删除所有IP类型的单播会话表项 |
reset session table |
删除IPv4单播会话表项 |
reset session table ipv4 [ source-ip source-ip ] [ destination-ip destination-ip ] [ protocol { dccp | icmp | raw-ip | sctp | tcp | udp | udp-lite } ] [ source-port source-port ] [ destination-port destination-port ] |
删除IPv6单播会话表项 |
reset session table ipv6 [ source-ip source-ip ] [ destination-ip destination-ip ] [ protocol { dccp | icmpv6 | raw-ip | sctp | tcp | udp | udp-lite } ] [ source-port source-port ] [ destination-port destination-port ] |
删除所有IP类型的组播会话表项 |
reset session table multicast |
删除IPv4组播会话表项 |
reset session table multicast ipv4 [ source-ip source-ip ] [ destination-ip destination-ip ] [ protocol { dccp | icmp | raw-ip | sctp | tcp | udp | udp-lite } ] [ source-port source-port ] [ destination-port destination-port ] |
删除IPv6组播会话表项 |
reset session table multicast ipv6 [ source-ip source-ip ] [ destination-ip destination-ip ] [ protocol { dccp | icmpv6 | raw-ip | sctp | tcp | udp | udp-lite } ] [ source-port source-port ] [ destination-port destination-port ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!