寒水教研No5.3基于上下文的访问控制cbac陈辉寒水教研内容提要CBAC概述1CBAC工作原理2CBAC语法3CBAC实验4寒水教研1、CBAC概述CiscoIOS防火墙特性集一个高级防火墙模块。即基于上下文的访问控制(context-basedaccesscontrol)。CBAC能够智能过滤基于应用层的TCP和UDP的会话;CBAC能够在access-list打开一个临时的通道给起源于内部网络向外的连接,同时检查内外两个方向的会话。ACL与CBAC是互补的,它们的组合可实现网络安全的最大化。功能:状态包过滤:对内部网络、企业和合作伙伴互连以及企业连接internet提供完备的安全性和强制政策。Dos检测和抵御:CBAC通过检查数据报头、丢弃可疑数据包来预防和保护路由器受到攻击。实时报警和跟踪:可配置基于应用层的连接,跟踪经过防火墙的数据包,提供详细过程信息并报告可疑行为。寒水教研2、CBAC工作原理1用户发起一个Telnet出站连接,。如果入站接口上ACL允许该流量,路由器则对该流量进行CBAC审查。2如果ACL允许该流量。则与状态表中条目作比较,如果该连接不存在则添加一个条目;如果存在,则重置该连接的空闲超时值。3如果是一个新的连接条目,路由器在外部接口入方向的ACL中添加一个动态的ACL条目,以允许返回的流量进入网络。寒水教研CBAC工作原理寒水教研3、CBAC语法一R(config)#ipinspecttcpsynwait-time等待三次握手的时间(30s)R(config)#ipinspecttcpfinwait-time清除会话前等待时间(5s)R(config)#ipinspecttcpidle-timeTCP连接空闲时间(3600s)R(config)#ipinspectudpidle-timeudp连接空闲时间(30s)R(config)#ipinspectdns-timeoutdns查询的存在时间(5s)R(config)#ipinspectnameinspection_nameprotocol[alert{on|off}][audit-trail{on|off}][timeoutseconds]•Inspection_name定义一个CBAC规则的名字•Protocol指定所要审查的协议•Alert/audit打开警告或审计功能•Timeout如果省略这个关键字,将使用全局超时时间寒水教研CBAC语法二ipinspectmax-incompletehighnumber-CBAC关闭连接之前最大的half-open连接数(500)ipinspectmax-incompletelownumber-CBAC停止关闭连接的half-open连接数(400)(注:超过500个half-open连接数就关闭,低于400连接数就不再关闭)ipinspectone-minutehighnumber-CBAC关闭连接之前每分钟的half-open连接数(500)ipinspectone-minutelownumber-CBAC停止关闭连接的每分钟half-open连接数(400)(注:每分钟超过500个half-open连接数就开始关闭,于400就不再关闭)ipinspecttcpmax-incompletehostnumberblock-timeseconds-去往同一目的地的连接数超过(50)就关闭寒水教研4、相关参数支持的协议:cuseeme,fragment,ftp,h323,http,icmp,netshow,rcmd(UNIXRcommands),realaudio,rpc,rtsp,sip,skinny,smtp,sqlnet,streamworks,tcp,tftp,udp,andvdolive。告警:会显示的一些消息,如:路由器资源不够,DoS攻击和其他威胁。告警默认情况会开启,并自动显示在console线程上。关闭全局告警:Router(config)#ipinspectalert-off审计:会追踪CBAC检查的连接,获取他们的统计信息。默认情况下审计是关闭的。全局开启CBAC审计,Router(config)#ipinspectaudittrail寒水教研5、CBAC实验Pc110.1.1.101/24E0/120.1.1.1/24E0/010.1.1.1/2420.1.1.101ServerRouter要求:在router上进行CBAC访问控制,只允许pc1telnetserver及pingserver,但不允许server访问pc1。寒水教研设置CBAC及访问控制ROUTER(config)#access-list100permitip10.1.1.00.0.0.255any允许内网所有流量ROUTER(config)#access-list101permiticmpany10.1.1.00.0.0.255echoreplyROUTER(config)#access-list101denyipanyany拒绝其它所有流量ROUTER(config)#ipinspectnamecbac_telnettcp定义CBAC开启TCP和UDPROUTER(config)#ipinspectnamecbac_telnetudpROUTER(config)#inte0/0ROUTER(config-if)#ipaccess-group100in内网加载访问列表,但没加CBACROUTER(config)#inte0/1ROUTER(config-if)#ipaccess-group101in外网加载列表寒水教研测试没有加载CBAC的效果Pc1:telnet20.1.1.2没有成功的进行远程连接Trying20.1.1.2...%Connectiontimedout;remotehostnotrespondingROUTER#showipaccess-lists查看ROUTER的访问列表ExtendedIPaccesslist100permitip10.1.1.00.0.0.255any(30matches)ExtendedIPaccesslist101permiticmpany10.1.1.00.0.0.255echo-reply(5matches)denyipanyany没有加载任何条目寒水教研加载CBAC并测试将CBAC加载到接口:ROUTER(config)#inte0/0ROUTER(config-if)#ipinspectcbac_telnetin加载CBAC测试telnet连接并在ROUTER上查看访问列表条目:Pc1:telnet20.1.1.2连接成功ROUTER#showipaccess-lists查看访问列表条目ExtendedIPaccesslist100permitip10.1.1.00.0.0.255any(65matches)ExtendedIPaccesslist101permittcphost20.1.1.2eqtelnethost10.1.1.1eq11005(27matches)发现动态的加载条目,CBAC实验成功permiticmpany10.1.1.00.0.0.255echo-reply(5matches)denyipanyany寒水教研查看cbac配置shipinspectconfigshipinspectinterfacesshipinspectname*shipinspectsessions寒水教研6、CBAC防御DoS攻击1、内部网络(E0/0输入方向):①允许内部访问DMZ区的所有服务器②允许内部访问Internet上mail外的服务③审查所有输出流量,允许返回流量进入2、DMZ区域(E2输入方向):①允许E-mail服务器与外部转发电子邮件②允许DNS服务器转发DNS查询③允许从DMZ到内外网络的返回流量3、外部网络(E1输入方向):①Internet可以访问DMZ区域的E-mail服务器、DNS服务器和WEB服务器②Internet不可以访问内部网络。寒水教研CBAC防御DoS攻击Router(config)#ipaccess-listextendedinternal_ACLRouter(config-ext-nacl)#permittcpanyhost192.1.2.1eqsmtpRouter(config-ext-nacl)#permittcpanyhost192.1.2.1eqpopRouter(config-ext-nacl)#denytcpanyanyeppopRouter(config-ext-nacl)#denytcpanyanyeqsmtpRouter(config-ext-nacl)#permitipanyanyRouter(config-ext-nacl)#exitRouter(config)#ipinspectnameinternal_CBACftpRouter(config)#ipinspectnameinternal_CBAChttpRouter(config)#ipinspectnameinternal_CBACtcpRouter(config)#ipinspectnameinternal_CBACudpRouter(config)#ipinspectnameinternal_CBACicmpRouter(config)#interfaceethernet0/0Router(config-if)#ipaccess-groupinternal_ACLinRouter(config-if)#ipinspectinternal_CBACin寒水教研CBAC防御DoS攻击Router(config)#ipinspecttcpsynwait-time15Router(config)#ipinspecttcpidle-time60Router(config)#ipinspectudpidle-time20Router(config)#ipinspectmax-incompletehigh400Router(config)#ipinspectmax-incompletelow300Router(config)#ipinspectone-minutehigh400Router(config)#ipinspectone-minutelow300Router(config)#ipinspecttcpmax-incompletehost250↘TCP的建立时间为15秒↘TCP的空闲超时为60秒↘UDP的空闲超时为20秒↘半开连接阀值为400↘1分钟连接尝试次数为400↘主机最大半开连↘接数为250寒水教研实验一、CBACPc110.1.1.101/24E0/120.1.1.1/24E0/010.1.1.1/2420.1.1.101ServerRouter要求:在router上进行CBAC访问控制,只允许pc1telnetserver及pingserver,但不允许server访问pc1。寒水教研