演示:在思科IPS设备上实现联动防御―Blocking(命令防火墙、路由器等协同工作)
目标:
n理解思科IPS联动防御Blocking
n演示思科IPS联动其它设备(路由器)完成blocking的项目案例
理解思科IPS联动防御Blocking
该任务,主要描述思科IPS设备上完成Blocking功能,必须具备的理论,其中包括Blocking作用和意义、Blocking的组件与专业术语、实现Blocking技术的准备工作、实现Blocking的注意事项、以及Blocking的实施步骤等。
思科IPS设备上Blocking的作用与意义
它是一种IPS设备与其它网络设备进行联动比如思科的路由器、多业务集成交换机、防火墙等,在这种情况下思科的IPS设备可以命令其它的网络设备对攻击流量进行拦阻,当IPS处于旁路模式时,这种联动其它网络设备对攻击流量进行拦阻的行为非常有用。相反,如果IPS设备处于在线模式下,blocking的特性还没有那么明显,因为当IPS处于在线模式时,设备本身就可以拦阻很多违规流量。
实现Blocking的组件与专业术语
Blocking(阻拦功能):思科IPS设备上的一种功能,它使思科的IPS传感器可以联动思科的其它设备来拦阻攻击者的流量。
Devicemanagement(设备管理):思科IPS传感器与某些思科设备交互,阻止攻击源的能力。
Blockingdevice(阻拦设备):被IPS传感器管理的设备,比如思科器、交换机、PIX等。
Blockingsensor(阻拦传感器):为了控制一个或多个管理设备而配置的IPS传感器。
Managedinterface(被管理接口):应用动态创建ACL传感器的被管理设备上的接口,也叫做拦阻接口。
ActiveACL(活动ACL):它是被动态创建的ACL,IPS传感器将它应用到被管理的设备上。
实现Blocking技术的准备工作
要实现Blocking技术前必须的准备工作:IPS设备的command接口上必须有一个可通和网络通信的IP地址和正确的IP网关、允许telnet和SSH、有加密的密钥授权。如下图6.1所示:
IPS设备的command接口上必须有一个可通和网络通信的IP地址和正确的IP网关:
在如图6.1的环境中,假设您需要在IPS设备上要配置联动路由器R2的blocking技术,那么此时您必须为IPS的command接口配置IP地址192.168.1.254/24,并配置默认网关是192.168.1.1,在我们先前的所有关于IPS的实验环境中,对于默认网关的填写意义不是很大,因为IPS都不需要跨越IP子网通信,也不需要跨越IP子网完成任何管理行为,但是在如图6.1所示的环境中就不一样了,因为此时的IPS要向路由器R2(192.168.2.2)发送blocking联动功能,所以你必须正确配置IPS(192.168.1.254)与路由器R2(192.168.2.2)的成功通信,IPS(192.168.1.254)要和R2(192.168.2.2)成功通信的前提是IPS成功的配置了默认网关192.168.1.1,因为此时的IPS只是网络中的一个通信点而已,他必须要使用默认网关才能路由器到R2,关于这一点非常重要。
配置Blocking device(阻拦设备)支持telnet和SSH
Blocking device(比如:思科的路由器、交换机、PIX防火墙)支持telnet和SSH功能,因为思科IPS在完成Blocking时是使用telnet和SSH下发控制指令,所以阻拦设备必须配置telnet和SSH功能以支持Blocking。而且建议使用SSH,因为在网络中部署的IPS设备本身就属于安全设备,所以安全设备传送的数据,更应该得到安全保障。
有加密的密钥授权
如果您使用了SSH,那么你必须具备加密算法的使用授权,这些加密算法包括DES、3DES、AES等,注意某些设备上如果不激活授权许可,一些高级的加密算法将无法使用,比如在思科PIX防火墙上如果没有激活授权许可,那么AES将无法使用。
Blocking的实施指南建议
在实现Blocking时,建议在相关的设备接口上配置防止地址欺骗技术,必须配置需要在blocking中被永远排除的主机、定义要应用blocking的网络入口点,明确使用哪种分类的blocking、只为特定的SigID配置Blocking响应策略,不是所有SigID都需要配置blocking、决定适当的block时间。下面分别详细来理解上述事项的意义:
防止地址欺骗技术,以及需要在blocking中确认被排除的主机
如下图6.2所示,网络环境中路由器R1需要使用E1/0的接口IP地址192.168.1.1访问AAA服务器器,并且当网络中的IPS配置了blocking功能时,IPS需要telnet或者SSH到192.168.1.1为路由器R1下发配置,如果,此时,网络中有一黑客202.202.1.100伪造成R1的IP地址192.168.1.1去访问AAA服务器,注意,在网络世界中伪造一个IP地址是一件非常简单的事情。如果此时IPS发现了这个伪造行为,并触发了一个SigID的报警,如果在网络上直接deny 192.168.1.1这个地址,这种解决方案虽然可以过滤掉地址伪造入侵,但是如果真正的路由器R1(192.168.1.1)要访问AAA服务器就不行了,并且,此时IPS也无法通过192.168.1.1登陆到路由器R1去做blocking工作。所以防止地址欺骗技术,以及需要在blocking中确认被排除的主机是非常重要的工作。
具体做法如下:首先不要使用消极的方式来直接deny192.168.1.1这个地址,将192.168.1.1这个IP地址排除在blocking外,当然您在使用这个建议时要根据网络中的实际情况来决定,然后使用防止地址欺骗技术来杜绝IP地址欺骗,比如在如图6.2所示的网络环境中,应该在边界路由器R1的外部接口上完成如下配置:
在边界路由器R1上完成防止地址欺骗技术的配置:
R1(config)#interface ethernet 1/1
R1(config-if)#ip verify unicast reverse-path* 启动逆向路径检测功能
R1(config-if)#ip access-group 1 in
R1(config-if)#exit
R1(config)#access-list 1 deny 10.0.0.00.0.0.255
R1(config)#access-list 1 deny 172.16.0.0 0.240.255.255
R1(config)#access-list 1 deny 192.168.0.00.0.255.255
R1(config)#access-list 1 deny 127.0.0.0 0.255.255.255
R1(config)#access-list 1 permit any
关于上述ACL的配置说明:
在上述的ACL配置中,在边界路由器的外部接口的入方向上直接拒绝了所有源地址是RFC1918所定义的私有网络专用地址和环回测试地址进入内部网络,为什么要配置这样的ACL,原因很简单,因为从公共网络上进入内部会话中的源IP地址永远不可以是私有网络专用地址,肯定是公共网络的IP,这正是黑客利用管理员在执行网络安全管控时的心理漏洞来入侵网络的一种思路,因为管理员总会认为私有网络专用地址是安全的,总会认为它是自己内部网络中的IP地址。
定义要应用blocking的网络入口点,确定使用哪种分类的blocking
Blocking技术实际上就是IPS联动其它设备,比如路由器、交换机、防火墙,然后在这些设备上去动态的输写ACL,那么确定这些ACL应用的网络入口点(设备的接口)这将是一种非常重要事情,因为在网络上肯定有许多不同的设备,当然也就包括了很多不同的网络入口点,关于这一点的思考,可以参考ACL的应用做为标准。建议将blocking用于边界网络设备的外部接口的入方向上,因为这样可以在入侵流量进入网络设备之前就将其过滤掉。
注意:Blocking与思科的CBAC技术不能兼容,因为IPS和CBAC技术都是要调整外部接入的访问控制列表,关于CBAC的更多信息,请参看本专业系列教程的《防火墙技术》。
Blocking技术分为基于会话的blocking和基于主机的blocking,基于会话的blocking是过滤有明确目标地址和源地址的blocking,而基于主机的blocking是源地址是一个具有的明确的IP地址,而目标地址永远都是any的访问控制列表。一般情况下,如果要拦阻多个来自同一攻击源的blocking将使用基于主机的blocking技术,如果要拦阻不同攻击源,那么将使用基于会话的blocking。
注意:如果多个基于Connection(会话连接)的blocking都是使用相同的源地址即便是目标IP和端口不同,那么,在检测到这个会话三次后,这个基于Connection的blocking会自动转换成基于host的blocking。
只为特定的SigID配置Blocking响应策略,不是所有SigID都需要配置blocking
本章一直将描述blocking响应技术,但是大家不能先入为主,认为任何时候做blocking都是一个最好的选择,事实上,在很多情况下我们只会针对特点的SigID做blocking,比如LAND攻击、UDP洪水攻击等,并不是所有的SigID都适合做blocking,比如基于TCP的入侵检测,最佳的action是reset,因为这是最简单,也是最高效的解决方案。
理解Pre-blockACL和post-block ACL
现先来理解IPS是如何向网络设备输写ACL的,当被台路由器被配置成可以协同IPS完成block功能时,那么IPS首先向路由器上输写如下图6.3所示的ACL列表,事实上就是首先允许IPS自己,然后再允许其它所有数据包,如果某种流量触发了SigID的block,那么这个block行为的deny语句将在如图6.3中的两条语句之间进行插入。
但是现在有个问题:如下图6.4所示,假设在路由器上原先就配置有ACL列表,如果IPS走来就在路由器上配置如图6.3的ACL,那么路由器上原来的ACL将被“绕过”也叫做被旁路掉,更简单的说就是不生效,一切流量将被允许。此时,IPS在路由器上将原来的ACL折分为两个ACL,如下图6.4所示,一个是叫Pre-ACL一个叫Post-ACL,然后如果某种流量触发了SigID的block,那么这个block行为的deny语句将在Pre-ACL和Post-ACL之间插入,这样就不会“绕过”原先配置的ACL。
决定适当的block时间
默认block的时间是半个小时,也就是说IPS在路由器或者其它设备上所写入ACL的时间为30分钟,当30分钟后,IPS会在路由器或者其它设备上将原先写入的ACL动态的删除,那么用户可以根据自身网络的特性调整blocking的时间。
演示:思科IPS联动其它设备(路由器)完成blocking的项目案例
关于配置blocking的步骤:
n配置网络设备支持Telnet/SSH.
n在IPS上通过配置Know Hostkey获取网络设备的密钥。
n在IPS上选中相应的SigID的响应行为是block
n在IPS上配置block的全局属性
演示目标:配置思科IPS联动其它设备(路由器)完成blocking
演示环境:如下图6.5所示,
演示背景:将演示环境中的IPS配置成旁路模式,让其监控交换机fa0/1和fa0/2接口的流量,当IPS发现流量中存在异常(攻击流量)时,IPS将通过blocking联动路由器R2拦阻网络攻击流量。注意在这个过程中,建议将IPS配置成旁路模式,如果配置成在线模式(inline)那么拦阻将变成多此一举的行为,因为本身在线模式的IPS就可以第一时间防御攻击,那么再来实施blocking,在多数情况下将变得没有意义。
演示步骤:
第一步:首先要配置交换机支持端口镜像功能,因为IPS旁路模式的流量监控必须与交换机的端口镜像功能协同使用,否则处于旁路的IPS将无法获取监控流量。相关交换机上紧端口镜像功能的配置如下所示,除此之外,还必须为路由器R1和R2完成基本配置,包括接口IP地址的配置,路由协议的启动,至少要保证整个网络可以正常通信。这是整个演示的基础环境保障。
交换机端口镜像的配置:
S1(config)#monitorsession 1 source interface fastEthernet 0/1
* 配置镜像的源端口
S1(config)#monitorsession 1 source interface fastEthernet 0/2
* 配置镜像的源端口
S1(config)#monitorsession 1 destination interface fastEthernet 0/3
* 配置镜像的目标端口
路由器R1的基本配置:
R1(config)#interface e1/0
R1(config-if)#ipaddress 192.168.201.1 255.255.255.0
R1(config-if)#noshutdown
R1(config-if)#exit
R1(config)#interface e1/1
R1(config-if)#ipaddress 192.168.100.1 255.255.255.0
R1(config-if)#noshutdown
R1(config-if)#exit
R1(config)#routerrip* 在路由器R1上启动路由
R1(config-router)#noauto-summary* 关闭自动归纳功能
R1(config-router)#version 2 * 启动RIP的2号版本
R1(config-router)#network192.168.100.0* 公告子网192.168.100.0
R1(config-router)#network192.168.201.0 * 公告子网192.168.201.0
R1(config-router)#exit
路由器R2的基本配置:
R2(config)#interfaceethernet 1/0
R2(config-if)#ipaddress 192.168.201.2 255.255.255.0
R2(config-if)#noshutdown
R2(config-if)#exit
R2(config)#interfaceethernet 1/1
R2(config-if)#ipaddress 192.168.200.1 255.255.255.0
R2(config-if)#noshutdown
R2(config-if)#exit
R2(config)#router rip
R2(config-router)#no auto-summary
R2(config-router)#version 2
R2(config-router)#network192.168.201.0
R2(config-router)#network192.168.200.0
R2(config-router)#exit
第二步:配置IPS的G0/1接口工作在旁路模式下,关于这一点的配置细节在项目五中有详细描述,在这里就不做重复描述,如果配置正确,应该得到如下图6.6所示的接口参数特性。
第三步:配置路由器R2支持Telnet/SSH功能,要使路由器R2支持被IPS进行SSH管理,必须为路由器R2配置登陆的用户名、密码、域名后缀、生成公私钥对等,具体配置如下所示:
配置路由器R2支持SSH:
R2(config)#enablepassword ips*为路由器R2的enable用户密配置密码
R2(config)#usernamecisco password cisco* 配置SSH的用户名与密码
R2(config)#ip domain-nameips.com*配置路由器R2的域名后缀。
然后使用crypto key generate rsa指令在路由器本地生产公私钥对,具体如下图6.7所示,在这里可以保持默认512的密钥长度。
R2(config)#line vty0 4*进入虚拟控制终端的线序0-4
R2(config-line)#loginlocal*登陆时使用本地安全数据库中的用户名和密码进行验证。
R2(config-line)#transportinput ssh* 允许SSH传入。
第四步:现在配置IPS上通过Known Host key获取网络设备的密钥。在IPS的图型化配置界面下的configuration\SSH\Known HostKeys\的Add如下图6.8所示,获取路由器R2的密钥。在IP Address中填入192.168.201.2地址后,单击Retrieve Host Key可以自动获取路由器R2的密钥。
第五步:在IPS上配置相应的SigID的响应行为是block,在这个演示环境中,通过Sig ID来定位Sig1102的signature,然后选中Actions按钮,如下图6.9所示,当出现图6.10的各个选项时,请选择Request Blockconnection项,也就是当有违规的流量触发Sig1102时,将拦阻这个违规的会话。
第六步:现在开始配置blocking的全局参数,在IDM配置环境中,导航到configuration/blocking/Blocking Properties如下图6.11所示,关于每个选项具体的意义在图中都有备注与解释。
然后,在Blocking/Blocking Login Profiles来配置阻拦设备的登陆配置文件,在如图6.12的对话框中,知个配置项的解释如图所示。完成配置后,单击OK。进一步配置Blocking/Blocking Device,出现如图6.13所示的对话框要求配置blocking的具体设备的参数,其中各个选项的解释如图所示,在这里需要特别申明一下关于Sensor’s NAT address选项的意义。
理解Sensor’s NAT address选项:
在该演示环境中Sensor’s NAT address选项可以不作任何配置,因为Sensor与网络的通信没有经过任何NAT路由器,但是如果是图6.14所示的环境,就必须配置Sensor’s NAT address,回忆一下本项目中曾经描述过当使用Block功能时,IPS将会在路由器上去输写一条允许IPS自身访问路由器的ACL语句,在图6.14的环境中,IPS原本的地址是192.168.2.100,如果它要控制R2实现Block功能,那么它就需要在路由器R2上插入一条permit 192.168.2.100的ACL语句让IPS可以成功的访问路由器R2,在这个特定的环境中,这条permit 192.168.2.100没有任何意义,因为192.168.2.100经过了NAT路由器R1将源IP192.168.2.100翻译成了202.202.1.2,所以对于路由器R2而言,它根本看到192.168.2.100这个IP地址,那么,在此时就需要在IPS上配置Sensor’s NAT address为202.202.1.2,这样IPS就可以在路由器R2上输写ACL时写成permit202.202.1.2而不是192.168.2.100,这就是Sensor’sNAT address的意义。
最后是配置Blocking Device Interface选项,如下图6.15所示,关于各项参数的意义如图所示,在该环境中的拦阻设备是路由器R2(192.168.201.2)并在E1/0接口的进入方向上实施拦阻。
当完成上述所有配置后,在没有发启正式的攻击测试之前,可以来到拦阻设备路由器R2上,使用show access-lists查看路由器的ACL列表,如下图6.16所示,可以看到一个名字IDS_ethernet1/0_in_0的ACL列表,其中有两条语句:一条的表示允许IPS设备192.168.201.254访问该路由器,另一条表示允许一切访问,如果某个违规流量触发了配置了block功能的SigID,那么deny(拒绝)违规流量的语句将在这两条ACL语句之间插入具体内容。更多信息请参看本项目的理解Pre-block ACL和post-block ACL部分。
第七步:正式开始使用LAND攻击测试block的效果,首先当您发起LAND攻击时,如果您前面所有的配置没有错误,那么攻击流量将触发Signature1102,然后此时会引发blocking行为,最后IPS会在拦阻设备R2上插入拒绝LAND攻击流量的ACL语句。下图6.18所示为LAND攻击触发sig1102的告警事件,图6.19所示为告警事件的详细信息,BlockConnectionRequested:true。
此时来到拦阻设备R2上,通过show access-lists指令可以看到在IPS预配置的ACL中插入了deny LAND攻击的流量,即源和目标是同一个IP地址,并且可以看到被拒绝的包有796个,Block成功。
本文出自 “无名的基督” 博客,转载请与作者联系!