您的位置:首页 > 编程语言 > Java开发

利用SpringAOP手动实现一个缓存

2013-12-26 00:11 603 查看
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
本文出自 “blog” 博客,请务必保留此出处http://fegar.blog.51cto.com/172567/408415
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: