演示:在思科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:它是被动态创建的ACLIPS传感器将它应用到被管理的设备上。

实现Blocking技术的准备工作

要实现Blocking技术前必须的准备工作:IPS设备的command接口上必须有一个可通和网络通信的IP地址和正确的IP网关、允许telnetSSH、有加密的密钥授权。如下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(阻拦设备)支持telnetSSH

Blocking device(比如:思科的路由器、交换机、PIX防火墙)支持telnet和SSH功能,因为思科IPS在完成Blocking时是使用telnet和SSH下发控制指令,所以阻拦设备必须配置telnet和SSH功能以支持Blocking。而且建议使用SSH,因为在网络中部署的IPS设备本身就属于安全设备,所以安全设备传送的数据,更应该得到安全保障。

有加密的密钥授权

如果您使用了SSH,那么你必须具备加密算法的使用授权,这些加密算法包括DES3DESAES等,注意某些设备上如果不激活授权许可,一些高级的加密算法将无法使用,比如在思科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.

nIPS上通过配置Know Hostkey获取网络设备的密钥。

nIPS上选中相应的SigID的响应行为是block

nIPS上配置block的全局属性

演示目标:配置思科IPS联动其它设备(路由器)完成blocking

演示环境:如下图6.5所示,

演示背景:将演示环境中的IPS配置成旁路模式,让其监控交换机fa0/1fa0/2接口的流量,当IPS发现流量中存在异常(***流量)时,IPS将通过blocking联动路由器R2拦阻网络***流量。注意在这个过程中,建议将IPS配置成旁路模式,如果配置成在线模式(inline)那么拦阻将变成多此一举的行为,因为本身在线模式的IPS就可以第一时间防御***,那么再来实施blocking,在多数情况下将变得没有意义。

演示步骤:

第一步:首先要配置交换机支持端口镜像功能,因为IPS旁路模式的流量监控必须与交换机的端口镜像功能协同使用,否则处于旁路的IPS将无法获取监控流量。相关交换机上紧端口镜像功能的配置如下所示,除此之外,还必须为路由器R1R2完成基本配置,包括接口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号版本

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

第二步:配置IPSG0/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成功。