网络入侵检测技术已成为网络防护的重要手段之一,入侵检测技术的基础是对网络中数据的收集,目前的方法主要有安放探针设备、采用共享式Hub以及利用网络设备本身提供的数据监控功能等。在实际的应用环境尤其是在局域网中最方便而且最实用的手段应该是利用网络设备的自身功能进行数据收集。
我们在实际的网络集成工作中经常会使用Cisco公司Catalyst系列交换机,这里就此类设备监控功能的配置进行介绍,希望能够对网络管理人员以及安全防护的实施有一定的帮助(本文以Catalyst4000系列交换机为例)。
配置SPAN对话(SPAN Session)
基本功能
通过设置SPAN对话能够对本交换机端口或整个VLAN的数据流进行监视,被监控的数据流可以由协议分析设备进行分析处理。
工作方式
SPAN对话由一个目的端口和一组源端口组成,它将一个或多个VLAN上的一个或多个源端口的数据包复制到目的端口上。SPAN不影响源端口的正常工作,也不会影响正常的交换机操作。在交换网络中可以配置多个SPAN对话,只有当目的端口可操作,同时源端口或源VLAN中的任意一个端口活动时才可激活SPAN对话。
配置命令
将被监视的端口或VLAN配置为源端口,将接收被复制数据包的端口设置为目的端口。
set span {src_mod/src_ports | src_vlan} dest_mod/dest_port [rx | tx | both] [filter vlan] [inpkts {enable | disable}] [learning {enable | disable}] [create]
配置说明
src_mod/src_ports: 源模块/端口号。它们可以存在于任何VLAN中,也可以配置一个或多个VLAN作为源端口(src_vlans),此时该VLAN中的所有端口作为SPAN对话中的源端口。一个端口可以配置为多个SPAN对话的源端口。
dest_mod/dest_port: 目的模块/端口号。每个SPAN对话中只有一个目的端口,同一个端口不能作为多个SPAN对话的目的端口,一个目的端口不能被配置为源端口,活动的目的端口不参与Spanning Tree。
[rx | tx | both]: 通过源端口的流量可以分为进入(ingress)、外出(egress)、双向(both)三类,可以在SPAN对话中配置监视的是哪种类型的数据包。当监视整个VLAN的数据时只能为双方向的数据流。
[filter vlan]: Trunk VLAN过滤,6.3(1)以后的版本可以对源端口为Trunk的端口进行VLAN限制过滤,只允许指定VLAN的流量被复制到目的端口。
[inpkts {enable | disable}]: 缺省情况下目的端口被激活后将不接收进入的数据包,造成目的端口不能与其他设备进行通信,可以通过配置允许进行转发,此时发送的数据包在本端口所属的VLAN内进行交换。此目的端口将不参与本VLAN的Spanning Tree。
[learning {enable | disable}]: 当允许目的端口进行转发时,可以设置允许从目的端口学习源MAC地址,此项只影响与目的端口相连的设备。缺省时为enable,但当配置inpkts enable时应同时配置learning enable。
[create]: 采用create可以产生新的SPAN对话,最多可以同时运行5个SPAN对话。
注意
1. SPAN对话只能监视本交换机内的数据包。
2. 交换机的sc0接口不能配置为SPAN源端口。
3. EtherChannel端口不能作为SPAN目的端口。
4. 在进行SPAN对话配置时,如果目的端口的Trunking模式为“On” 或 “Nonegotiate”,则SPAN包将以原Trunking配置的封装格式进行转发,同时这个目的端口将停止Trunking。
配置例子:
例1:
配置port 2/5 (the SPAN source) 的出入双向数据包被复制到port 2/10 (the SPAN destination)。
Console> (enable) set span 2/5 2/10
Console> (enable) show span
Destination : Port 2/10
Admin Source : Port 2/5
Oper Source : None
Direction : transmit/receive
Incoming Packets: disabled
Learning : enabled
Filter : -
Status : active
-----------------------------
Total local span sessions: 1
Console> (enable)
例2:
配置VLAN 522和523为SPAN source, port 2/1 为SPAN destination:
Console> (enable) set span 522-523 2/1
Console> (enable) show span
Destination : Port 2/1
Admin Source : VLAN 522-523
Oper Source : Port 2/1-2
Direction : transmit/receive
Incoming Packets: disabled
Learning : enabled
Filter : -
Status : active
----------------
Total local span sessions: 1
Console> (enable)
禁止SPAN
set span disable [dest_mod/dest_port | all] 通过禁止目的端口可以清除SPAN对话。
例如:
Console> (enable) set span disable 2/3
This command may disable your span session(s).
Do you want to continue (y/n) [n]? y
Disabled Port 2/3 to monitor transmit/receive traffic of Port
Incoming Packets disabled. Learning enabled.
Console> (enable)
注:以上命令适用于set命令集的Catalyst系列交换机,对一些IOS命令的交换机如Catalyst2950、3500等,其命令有所不同。
[page]
配置RSPAN
目前许多局域网环境是由多台交换机组成的,SPAN对话只能对本交换机内的数据进行捕获,而其他交换机上的数据则无法获得。Cisco公司针对这种情况开发了远程SPAN(RSPAN)功能,能够对远端交换机的数据进行监视。目前能够实现RSPAN功能的交换机局限在Cisco4000、6000、2948G、2980G上,且软件版本要求为6.3(1)或以后,在整个端到端路径中不允许有其他类型的交换机以及其他厂商的交换机,这也是目前实施RSPAN的一个很大的限制。下面介绍一下RSPAN的配置。
工作方法
RSPAN具有SPAN的所有特征,同时又具有跨越多个交换机进行监视的功能。
配置命令
1. 配置RSPAN VLAN,在VTP enabled的情况下,在一个交换机上进行设置就可以传播到VTP domain。
set vlan vlan_num rspan
2. 配置RSPAN对话的源端口
set rspan source {mod/ports... | vlans...} {rspan_vlan} reflector mod/port [rx | tx | both] [filter vlans...] [create]
3. 配置RSPAN对话的目的端口
set rspan destination {mod_num/port_num} {rspan_vlan} [inpkts {enable | disable}] [learning {enable | disable}] [create]
此配置在目的端口所在的设备上进行,与SPAN配置命令大体相同,但需指出与目的端口相关联的rspan_vlan。
注意事项
1. 在RSPAN session中traffic类型可以不同(ingress、egress或both),但对于同一个交换机上的所有源端口必须相同。
2. RSPAN sessions与SPAN sessions可以共存,最多5个。
3. 对于RSPAN,可以在多个交换机上分布源端口和目的端口。作为反射端口的端口不能作为源或目的端口。
4. SPAN能够监视所有网络数据流,包括多播以及桥协议数据单元(BPDU),RSPAN不支持对BPDU的监视。
配置例子
1. 配置VLAN500作为RSPAN VLAN
Console> (enable) set vlan 500 rspan
vlan 500 configuration successful
2. 配置RSPAN对话的源端口
指定RSPAN VLAN为500,反射端口为2/34,监视源端口2/3的接收方向数据。
Console> (enable) set rspan source 2/3 500 reflector 2/34 rx
Rspan Type : Source
Destination : -
Reflector : Port 2/34
Rspan Vlan : 500
Admin Source : Port 2/3
Direction : receive
Incoming Packets: -
Learning : -
Filter : -
Status : active
Console> (enable) 2001 May 02 13:22:17 %SYS-5-SPAN_CFGSTATECHG: remote span source session active for remote span vlan 500
③配置RSPAN对话目的端口
配置 port 3/1 作为 RSPAN 目的端口,RSPAN VLAN为500
Console> (enable) set rspan destination 3/1 500
Rspan Type : Destination
Destination : Port 3/1
Rspan Vlan : 500
Admin Source : -
Oper Source : -
Direction : -
Incoming Packets: disabled
Learning : enabled
Filter : -
Status : active
Console> (enable)
禁止 RSPAN 对话
set rspan disable source [rspan_vlan | all]
set rspan disable destination [mod_num/port_num | all]
禁止所有允许的源对话:
Console> (enable) set rspan disable source all
This command will disable all remote span source session(s).
Do you want to continue (y/n) [n]? y
Disabled monitoring of all source(s) on the switch for remote span.
Console> (enable)
通过rspan_vlan号,禁止一个源对话:
Console> (enable) set rspan disable source 100
Disabled monitoring of all source(s) on the switch for rspan_vlan 100.
Console> (enable)
禁止所有目的对话:
Console> (enable) set rspan disable destination all
This command will disable all remote span destination session(s).
Do you want to continue (y/n) [n]? y
Disabled monitoring of remote span traffic for all rspan destination ports.
Console> (enable)