CBAC提供以下功能:
*流量过滤
*流量检测
*警报和审计跟踪
****阻断
就是过滤
CBAC基于应用层协议会话信息智能化地过滤TCP和UDP数据包。当CBAC被配置之后,仅当初始化了到相关的需要访问的网络连接的时候才会允许特定的TCP和UDP流量通过防火墙。CBAC可以检查会话是起源于内部还是起源于外部,它可以用于intranet,extranet,internet范围的网络。CBAC不仅仅可以检查三层和四层信息,它甚至可以检查应用层的一些信息,它检查会话连接信息以确定会话状态。使用CBAC甚至可以完全过滤未经压缩的或被嵌入的java applets。
流量检查
CBAC检查流经防火墙的流量以发现并管理TCP和UDP的会话状态信息,这些状态信息是用来创建临时性访问权限开放的。它允许相关会话的返回流量和附加数据连接。
对应用层数据包的检查以及对TCP和UDP会话信息的维持,使CBAC可以检测并阻止不可避免的如SYN-flooding的网络***。
可以帮助阻止DOS网络***。
警报和审计跟踪
可以产生实时和审计跟踪信息。增强的审计跟踪特性使用SYSLOG以追踪所有网络业务。
***阻断
CBAC支持有限的***检测
CBAC不能做什么?
它不支持对所有协议的智能化过滤,它只过滤由用户指定的协议。如果没有指定相关协议,已存在的ACL会对那些协议进行过滤。CBAC不会为没有指定的协议打开临时性的访问入口。
CBAC只检测并保护穿越了防火墙的***。
CBAC只检测有限各类的***,不能检测所有各类的***。CBAC并不是一个完善的牢不可破的防御系统。经过精心策划的巧妙的***仍然会奏效。CBAC只是能够检测并阻止常见的一些***。
CBAC如何工作:
检查数据包
指定希望被检查的协议,并且指定检查开始的接口和接口方向,只有指定协议类型才能执行检查。
如果没有配置访问控制列表或通过了访问控制列表的过滤,防火墙才会对数据包进行检查。如果数据包被ACL过滤丢弃掉了,CBAC是不会对其进行检查的。
CBAC检查会跟踪所有TCP数据包的序列号,并丢弃那些序列号不在期望值以内的数据包。
CBAC检查可识别的在控制频道的应用程序命令,检测并阻止相应的应用程序级别的***。
如果CBAC怀疑有***,DoS特性会做以下行为:
产生报警消息
保护可能被阻塞掉的系统资源
阻止疑似***的数据包
CBAC使用超时和阀值来管理会话状态信息,以帮助决定什么时候会丢弃那些未完全建立的会话。
CBAC支持三个应对DoS***的阀值:
*半开连接的TCP或UDP会话的总数
*基于时间的半开会话的数量
*每主机的仅TCP的半开连接的数量
如果该阀值超过,CBAC会有两个可靠项:
发送重围消息给最早的半开会话连接的终端,将资源标记为可用以提供后续syn数据包使用。
在只有TCP会话的案例中,CBAC根据配置的阀值临时性地阻塞所有的SYN数据包。当数据包被阻塞的时候,TCP三次握手是不会被初始化的,这样可以阻止本该由有效的连接使用的路由器的内存和处理器资源被消耗。
会话状态信息管理表
当数据包被检查的时候,一个包含会话状态信息的状态表会被更新。
近似的UDP“会话”
UDP没有事实上的连接,软件通过检查数据包里的信息和其它UDP数据包有什么相似之处近似地将它看作一个会话。
CBAC根据状态表里维护的信息动态地创建和删除防火墙接口的ACL条目。
临时性的ACL不会被写入NVRAM
哪些情况下会使用CBAC
*标准的TCP和UDP因特网应用
*多媒体应用
*Oracle支持
CBAC处理过程
1.数据包到达防火墙外部接口
2.在与接口出向相反的方向上由ACL对其检查,数据包被允许
3.数据包被CBAC检查以决定并记录跟连接相关的状态信息,被以一条新条目记录进状态表。
4.依据已获取的状态信息,CBAC创建一个临时的ACL条目并将其插入到外部接口的入向扩展访问列表的开头。该临时访问列表条目设计用于允许跟刚才检查的出向数据包的这个连接相关的入向数据包。
5.出向数据包被转发出接口
6.然后,一个入向数据包到达外部接口。该包是先前出向连接会话的返回数据包,由于前面创建的ACL,该数据包被允许
7.入向允许的数据包被CBAC检查,连接状态表里相应的条目会被进行必要的更新。基于更新状态信息,入向扩展ACL的临时条目会被修改以只允许跟该连接相关的数据包通过。
8.任何跟该连接相关的入向或出向数据包都会被检查并更新状态表中的相关条目并根据实际情况修改临时入向ACL条目。
9.当连接结束或计时器超时,连接状态表里的相关条目会被删除,并且该连接的相关入向ACL条目也会被删除。
注:
出向访问列表允许所有的流量
入向访问流量拒绝所有流量,由CBAC检查数据包然后再加入相关ACL以允许特定流量。
可以配置CBAC对以下协议流量进行过滤
所有TCP会话
所有UDP会话
-
CU-SeeMe
FTP
H.323
HTTP
Microsoft NetShow
UNIX R命令集(比如 rlogin,rexec,rsh)
RealAudio
RSTP(实时传输协议)
RPC(SUN RPC,而不是DCE RPC)
SMTP(简单邮件传输协议)(注意这里SMTP不是ESMTP,对SMTP的配置不能支持ESMTP)
SQL*Net
StreamWorks
TFTP
VDOLive
局限性
CBAC只支持IP协议流量,只有TCP和UDP数据包能被检查。
注意如果在配置CBAC的时候重新配置ACL,当心ACL会拒绝TFTP流量进入那个接口,这样就不能通过该接口进行网络重启。
源或目的地址是防火墙的数据包不会被CBAC检查
CBAC忽略ICMP不可达消息
H.323和RSTP协议检查仅支持如下客户端/服务器型的多媒体应用程序:Cisco IP/TV,RealNetworks RealAudio G2 Player,Apple QuickTime 4.
CBAC的性能
吞吐量改进
查询散列表,可以通过改变散列表的大小来改变并发连接数的多少
每秒连接数改进
将会话的第一个包检查,后续的包进行正常的转发。
CPU使用率改进
只检查第一个包,后续包正常转发
CBAC的配置:
步骤:
1.决定路由器的内外接口
2.创建一个普通的IP ACL用于过滤进入和离开网络的流量,确定将会检查允许离开网络的流量。
3.改变连接的全局超时值。可选。
Router(config)# ip inspect tcp synwait-time #_of_seconds 对指定的TCP会话建立等待多长时间
Router(config)# ip inspect tcp finwait-time #_of_seconds 等待多长时间删除已经终止的TCP会话的相关条目
Router(config)# ip inspect tcp idle-time #_of_seconds 维护已经在状态表里的但已经没有流量交换的空闲TCP会话多长时间后会删除相关条目。默认是3600秒
Router(config)# ip inspect udp idle-time #_of_seconds 在删除相关条目之前维持多长时间的UDP空闲连接
Router(config)# ip inspect dns-timeout #_of_seconds 删除条目之前维持多长时间的DNS会话
4.配置端口应用映射,指定CBAC要检查的端口,这是针对使用非标准端口的应用程序来说的
CBAC使用PAM来确定在一个连接上应该执行什么类型的审查
Router(config)#ip port-map application_name port port_number [list acl_number]
5.定义检查规则。这些规则定义哪些条目会被加入到状态表并且返回流量会被允许进入。如果出向流量没有匹配检查规则,路由器将不会检查它并将其视为普通流量。
一、审查规则组件
Router(config)#ip inspect name inspection_name protocol [alert {on | off}] [audit-trail {on | off}] [timeout seconds] 这个命令用于审查除java、URL和RPC之外的所有类型的流量
二、基本的TCP和UDP审查
a)         Router(config)#ip inspect name inspection_name tcp [alert {on | off}] [audit-trail {on | off}] [timeout seconds]
b)        Router(config)#ip inspect name inspection_name udp [alert {on | off}] [audit-trail {on | off}] [timeout seconds]
三、ICMP审查
Router(config)#ip inspect name inspection_name icmp [alert {on | off}] [audit-trail {on | off}] [timeout timeout]
对于ICMP连接中返回流量的默认超时值是10秒。
四、HTTP审查
Router(config)#ip inspect name inspeciton_name http [urlfilter] [java-list standard_acl_number] [alert {on | off}] [audit-trail {on | off}] [timeout seconds]
Urlfilter用于审查和过滤url,java-list用于审查和过滤java小程序。
五、RPC审查
Router(config)#ip inspect name inspection_name rpc program-number program-number [wait-time minutes] [alert {on | off}] [audit-trail {on | off}] [timeout seconds]
六、SMTP审查
Router(config)#ip inspect name inspection_name smtp [alert {on | off}] [audit-trail {on | off}] [timeout seconds]
七、分片审查
Router(config)#ip inspect name inspection_name fragment max number_of_fragments timeout seconds_to_reassemble
八、Skinny审查
Router(config)#ip inspect name inspection_name skinny [alert {on | off}] [autit-trail {on | off}] [timeout seconds]
Router(config)#ip inspect name inspection_name tftp [alert {on | off}] [audit-trail {on | off}] [timeout seconds]
6.激活路由器接口上的检查规则,这样路由器才会使用CBAC检查流量
Router(config)#interface type [slot_number] port_number
Router(config)#ip inspect inspection_name {in | out}
7.通过发送流量通过路由器来测试配置。
Show ip inspect [parameter]
Debug ip inspect parameter

转载于:https://blog.51cto.com/fegar/408415

CBAC(基于内容的访问控制)相关推荐

  1. Context-Based Access Control (CBAC) 基于上下文的访问控制 理论知识

    CBAC即基于上下文的访问控制协议,通过检查防火墙的流量来发现管理TCP和UDP的会话状态信息.这些状态信息被用来在防火墙访问列表创建临时通道.通过在流量一个方向上配置ip inspect列表,放行其 ...

  2. 基于上下文的访问控制与基于区域策略的防火墙

    基于上下文的访问控制与基于区域策略的防火墙 拓扑图 地址表 Device Interface IP address R1 F 0/0 192.168.22.1 S 0/0/0 10.1.22.1 R2 ...

  3. 基于角色的访问控制(RBAC)

    来自:编程新说 很多时候,需要对一些事物进行控制,如一个房间,为了不让人随便进,通常会装一把锁,如果要想进入,你必须得有一把钥匙,且还得和这个锁匹配才行. 基于此做一个抽象,其实包含三方面内容: 1) ...

  4. 15 -Flask构建弹幕微电影网站-基于角色的访问控制

    本章内容: 基于角色的访问控制 已上线演示地址: http://movie.mtianyan.cn 项目源码地址:https://github.com/mtianyan/movie_project 基 ...

  5. RHEL6.3配置Apache服务器(4) 基于用户的访问控制

    在上篇博文中介绍了基于客户端地址的访问控制,这种方法设置起来相对比较简单,但是不具备太大的实用价值.在实际应用中,我们大都是希望通过对用户进行身份验证从而来进行访问控制,在这篇博文中将主要介绍这种基于 ...

  6. ASP.NET Core 基于声明的访问控制到底是什么鬼?

    从ASP.NET 4.x到ASP.NET Core,内置身份验证已从基于角色的访问控制(RBAC)转变为基于声明的访问控制(CBAC). 我们常用的HttpContext.User属性ASP.NET ...

  7. .Net Core实战之基于角色的访问控制的设计

    前言 上个月,我写了两篇微服务的文章:<.Net微服务实战之技术架构分层篇>与<.Net微服务实战之技术选型篇>,微服务系列原有三篇,当我憋第三篇的内容时候一直没有灵感,因此先 ...

  8. 基于角色的访问控制'的权限管理的数据库的设计实现

    RBAC基于角色的访问控制的权限管理系统数据库设计与实现 use [master] go -- 检查数据库 [RBAC]是否存在,如果存在则删除(只测试用,不然会丢数据.) -- Search fro ...

  9. 基于角色的访问控制模型(RBAC)——学习笔记

    基于角色的访问控制模型(RBAC),英文全称Role-Base Access Control,是20世纪90年代推出的一种访问控制模型,模型通过角色(Role)将用户(User)和访问许可(Permi ...

最新文章

  1. 003_数据模型一览
  2. python 递归函数_连载|想用Python做自动化测试?递归函数
  3. 机器学习、深度学习方面书籍收集(持续更新……)
  4. 教师资格证科目一的法律重点总结
  5. 天眼查数据采集、分析、深度挖掘
  6. 世界五大黑客:代码创造他们,他们改变世界!...
  7. 【python学习笔记】python运算符以及简单语句
  8. 电路设计布线技巧十规则
  9. css3实现下拉列表框
  10. 精品基于PHP实现的剧影评|剧评影评系统
  11. IOS学习笔记56-IOS7状态栏适配方法一
  12. IOT物联网商业源码完整版下载附搭建教程
  13. 【C语言】三级指针烧脑题
  14. 金刚铠甲心咒全文注音
  15. 达芬奇pro的FPGA学习笔记0--对自己想说的话以及之后的项目规划
  16. 20150910互联网产业园_子页面(图文)
  17. 探索产品研发流程及步骤
  18. 数字化转型 — 新能源汽车 — 生产制造流程 — 冲压车间
  19. 李开复:新公司今日起开始招聘
  20. 你最擅长的领域是什么

热门文章

  1. mongodb 内建用户
  2. Linux 运维和网站开发,你更愿意让哪个作为您的职业?为什么?
  3. 由于授权协议中的一个错误,远程计算机中断了会话
  4. 10个迷惑新手的Cocoa,Objective-C开发难点和问题
  5. AgileEAS.NET平台开发实例-药店系统-报表开发(上)
  6. Linux 批量加用户
  7. 漫谈ERP实施服务的三种境界
  8. ASP.NET Core 2.0 : 九.从Windows发布到CentOS的跨平台部署
  9. Queue.LinkedList
  10. Java的jar文件安装成windows 服务