CBAC即基于上下文的访问控制协议,通过检查防火墙的流量来发现管理TCPUDP的会话状态信息。这些状态信息被用来在防火墙访问列表创建临时通道。通过在流量一个方向上配置ip inspect列表,放行其返回流量。被允许会话是指来源于受保护的内部网络会话。它不能用来过滤每一种TCP/IP协议,CISCO IOS支持检查的协议有:

 

Keyword NameProtocol
cuseemeCUSeeMe Protocol
ftpFile Transfer Protocol
h323H.323 Protocol (for example Microsoft NetMeeting or Intel Video Phone)
httpHTTP Protocol
rcmdR commands (r-exec, r-login, r-sh)
realaudioReal Audio Protocol
rpcRemote Procedure Call Protocol
smtpSimple Mail Transfer Protocol
sqlnetSQL Net Protocol
streamworksStreamWorks Protocol
tcpTransmission Control Protocol
tftpTFTP Protocol
udpUser Datagram Protocol
vdoliveVDOLive Protocol

 

有时我们需要为某些应用在一个方向上放行数据流,并只允许这些应用的返回流量制数据流通过,这时只需在单个接口的一个方向上配置CBAC,即可实现只允许属于现有会话的数据流进入内部网络,用户可以在一个或多个接口的2个方向上配置CBAC

配置数据流过滤的第一步是决定是否在防火墙的一个内部接口或外部接口上配置CBAC。在该环境下,所谓内部是指会话必须主动发起以让其数据流被允许通过防火墙的一侧;“外部是指会话不能主动发起的一侧(从外部发起的会话被禁止)。如果要在2个方向上配置CBAC,应该先在一个方向上使用适当的“Internal”“External”接口指示配置CBAC。在另一个方向上配置CBAC时,则将该接口指示换成另一个。可以说,ACLCBAC是互补的,把两者合理的组合起来可使网络更加安全。

 

特别要注意的是,CBAC只能用于IP数据流。只有TCPUDP数据包能被检查,其他IP数据流 (ICMP)不能被CBAC检查,只能采用访问控制列表对其进行过滤。在不做应用层协议审查时,像自反访问控制列表一样,CBAC可以过滤所有的TCPUDP会话。只有连接的控制信道会被CBAC审查和监视,数据信道不会被审查。如在FTP会话中,控制信道(通常是TCP端口21)和数据信道(通常是TCP端口20)的状态变化都会被监视,但只有控制信道才会被审查。

 

CBAC提供高级的基于应用层的内容过滤功能包括:

 

  1. 流量过滤:CBAC能够基于应用层智能地过滤TCP/UDP,甚至过滤的连接可以从被保护的网络发起.所以CBAC可以检测防火墙任意一边发起的流量.如果没有CBAC,流量过滤只能停留在网络层及以下(普通ACL),最多是传输层(自反列表)。CBAC不仅可以检测网络层、应用层的信息,而且能通过检测应用层信息(比如FTP连接信息、RPCsql*net)来识别会话的状态。通过CBAC,可以防止普通的恶意的JAVA程序***网络.通过配置,可以允许用户只能运行内部JAVA脚本或者是外部的被信任的脚本。
  2. 流量检测:CBAC通过检查出口流量来建立临时会话表允许回包通过。通过检测应用层,维持TCP/UDP会话信息,CBAC可以防止一些网络***比如刚SYN-flooding.SYN-flooding是一种DoS***.***通过向服务器发送大量的不能建立全连接的连接请求导致服务器资源耗尽而崩溃而不能提供正常的服务。CBAC通过检测包的TCP连接序列号是否在合理的范围内来决定丢弃可疑的包.可以配置CBAC丢弃半连接状态的连接.而且CBAC可以检测到非正常的大量的连接并且产生警报。CBAC还可以防止一些分段IP包的DOS***.因为***可以通过发送许多非初试化的IP分段或者完整的分段包通过路由器,而这是被路由器ACL允许的,这样的包到达服务器或者主机后会导致注意花时间来试这重组不完整的包。
  3. 警报和审计:CBAC同时会产生实时的警报和审计信息.增强的审计信息通过使用SYSLOG来跟踪所有网络流量.你可以具体到只审计某个应用程序产生的信息。
  4. ***检测:CBACSMTP只提供有限的***检测.在中或高端路由器上,CBAC提供专门的IDS。能使路由器更安全地部署在边界上。