APP下载

企业无线管控方案研究

2015-12-03

网络安全和信息化 2015年5期
关键词:路由器交换机管控

一般来说,企业用户目前使用无线路由器有两种模式,一种是NAT模式,即将墙点出来的网线接入WAN口,而无线终端则通过无线路由器自带的DHCP服务分配一个私网地址(一般为192.168 .X .X或者10 .X.X .X),所有接入的无线终端通过WAN口IP共享上网。另外一种则是网桥模式,即不使用WAN口,将墙点出来的网线接入某个LAN口中,无线终端通过公司的DHCP服务器分配IP地址。针对这些情况,本文给出了两种解决方案。

图1 无线管控设备部署图

方案一分析

在企业Internet出口处部署无线管控设备,通过分析访问Internet的流量找出无线路由器和无线终端,并对其进行针对性的管控,具体部署图如图1所示。

从上图1可以看出,无线管控设备(AC)部署于内网核心交换机和防火墙之间,以透明模式接入,能够对访问Internet的流量进行全面分析。

1.方案优势

(1)上网行为管理技术已经较为成熟,针对无线IP和应用的管控效果较好。

(2)设备直接以透明模式接入,部署简单,网络架构无需大的变更。

(3)能管控以NAT模式接入的无线路由器,还能管控以网桥模式接入的无线路由器下接入的终端。

(4)能够自动收集数据,有比较成熟的报表系统供分析和决策。

2.方案缺陷

(1)只能针对上外网的无线路由器进行管控,即如果某个无线路由器接入了公司局域网,只访问公司内网资源,不访问Internet,那么该设备将无法发现该终端。

(2)只能识别出无线路由器的WAN口IP,无法取得无线路由器的其他信息,如品牌、MAC地址和接入交换机端口等信息。

(3)部署在网关处,存在单点故障的风险。

(4)需要一定的投资来购买硬件设备。

方案二分析

与方案一中使用纯技术手段不同,方案二结合企业自身IT基础架构,采用技术+管理的方式来实施无线管控。技术方面自主研发检测脚本程序,实时检测无线路由器接入情况。管理方面建议完善无线路由器出库登记制度,结合检测软件检测出的结果,找出非法接入的无线路由器。

下面将对检测脚本程序和无线路由器登记制度分别进行介绍。

1.自动检测程序

首先对无线路由器自动检测程序进行介绍。该检测程序的工作原理是搜集无线MAC地址库,从网关设备(核心交换机或者路由器)的ARP信息库中查询到无线路由器的相关信息。脚本程序是采用大多数网络管理人员熟悉的VBScript语言开发,后台数据库采用的是MySQL,整个检测程序主要包括四个模块:IEEE MAC入库模块、无线MAC库查询模块、网关ARP数据抓取模块及无线节点扫描模块,这四个模块之间属于顺序执行的关系,每个模块功能各由一个脚本程序来完成。下面将对四个模块分别进行介绍。

(1)IEEE MAC入库模块

IEEE组织发布了一个权威的全球MAC地址分配表,下载地址为http://standards.ieee .org/regauth/oui/oui.txt,表里详细记录了网络设备厂商与MAC地址段的分配关系,这是一个文本文件,需要使用写字板打开,文件内格式如下所示:

从上述例子可以看出,MAC地址是按段分配给各个厂家的,以00-19-E0开头的这段MAC地址分配给厂家TP-Link。这个MAC地址分配文件内容就是由这些分配段组成。为了方便在程序中调用,我们需要将这个MAC分配表导入MySQL数据库中。本模块正是利用脚本程序将这些记录自动导入到MySQL数据库中,如果未来该分配表发生变化,即可重新利用该模块将新的分配表导入数据库中。

下面将对该模块的关键部分进行介绍,由于需要进行数据库操作,所以必须先安装MySQL数据库,然后定义数据库连接字符串,MySQL数据库连接字符串内容主要包括数据源名、Driver名称、数据库服务器 IP、User、Password、目的数据库名称及数据库端口(MySQL端口一般为3306)组成。

数据库连接成功后,就需要创建数据库及相关的表,本文创建了network_db数据库,该数据库用于存放所有模块所涉及到的表,在本模块中需要创建Mac_lib表,用于存放MAC地址分配表中的所有信息,该表包含序号、MAC分配段、公司名称三个属性。创建数据库和表都需要使用SQL语句,语句“create database if not exists network_db”即可创建数据库network_db,其他表的创建与此类似。

利用SQL语句创建完相应的数据库和表后,就需要将文件中的内容读入数据库MAC_lib表中,基本原则是采用循环,逐行进行选择性读入,关键代码如下:串的那一行

(2)无线MAC库查询模块

本模块是从(1)中生成的MAC地址库中抽取出相应的无线设备生产厂商的MAC地址记录,如TP-Link、D-Link等,这个库是动态变化的,由用户决定无线MAC库的内容。具体实现就是根据厂商的名称在Mac_lib表中进行查询,找到对应的表项,插入到Macwireless_lib表中,该模块也涉及到数据库操作,SQL语 句"create table if not exists network_db.Macwireless_lib (Mac_num int(4),Mac_id varchar(12)NOT NULL,company_id varchar(100) NOT NULL)"创建了Macwireless_lib表,语句"insert into network_db .Macwireless_lib select* from network_db .Mac_lib where company_id like'%tp-link%'"将对应的厂商MAC分配项插入到Macwireless_lib表中。这里暂时只加入了TP-Link厂家,未来可以根据需求重新定义SQL语句进行扩展。

(3)网关ARP数据抓取模块

本模块通过调用SecureCRT,执行对应的脚本程序从网关实时抓取出ARP信息,然后将信息存入数据库供程序分析。由于从核心交换机(型号为Cisco 6509)利用“show ip arp”抓取出来的ARP信息是按行分布的,为方便起见,先将这些信息存入一个过渡文件arp_switch6509.rtf中,然后再将这个文件内容再逐行写入network_db数据库的arp_switch6509表中,这里就涉及到导出数据和写数据库两步操作。

我们采用Cisco交换机中的管道和tee命令,将对应的ARP信息分离出来,然后采用TFTP上传的方式,将抓取的信息上传至TFTP服务器上,即可完成数据从核心交换机导出的工作,当然,这都是脚本程序自动完成的,其中还涉及到自动登录、自动输入、自动识别等系列流程,关键代码如下:

crt .Session .Connect “/TELNET " & hexin_ip”

hexin_ip为核心交换机的IP地址,这条命令启动SecureCRT自动Telnet到核心交换机上。

其中temp_user为登录交换机的用户名,上述这两条命令可以监控SecureCRT交互界面,出现“Username:”后,就自动输入用户名,然后回车。后续输入密码、enable密码以及各类交换机命令,都可以采用类似的方式。

ARP数据导出到文件后,即可写入数据库中供后续扫描模块使用。这一部分相对简单,就是常规的写数据库操作,通过循环逐行将文件中的ARP信息写入数据库,关键代码如下:

上述代码就是通过insert语句将ARP信息写入数据库中的arp_switch6509表,写入的属性包括序号、MAC地址,IP地址和所属VLAN。

(4)无线节点扫描模块

本模块根据(2)和(3)获得的无线MAC地址库和网关ARP信息库进行分析,判断ARP库中每条记录的MAC字段是否属于无线MAC地址库中的地址段,如果属于无线MAC,则查询并记录下相关的信息,信息包括无线路由器的MAC地址、WAN口IP地址、接入交换机的端口、制造商及检测时间。由于企业网络架构一般呈树形结构分布,交换机之间通过Trunk口进行互联,接入端交换机通过Access接口与终端进行连接,无线路由器作为终端处于这棵树的末梢位置,所以在搜索无线路由器的具体位置时,我们采用了树的搜索算法,能够直接定位到接入层交换机的某个端口,然后通过综合布线的点位图,即可定位到无线路由器的物理位置。

2.模块代码介绍

下面将对该模块的关键代码进行介绍。

本文将扫描出的无线路由器信息都存放于数据表wirelessInfo_switch6509中,该数据表的属性包括序号、MAC地址、IP地址、位置、制造商、扫描时间等。由于搜索无线路由器的位置相对比较复杂,但是无线路由器的其他信息获取相对简单,所以整个模块分为获取位置信息和获取其他信息两部分。

(1)如何获取其他信息

首先介绍如何获取其他信息(除位置属性以外的其他属性),这些信息通过arp_switch6509和Macwireless_lib两个表的匹配就可以获取,具体方法是将两个数据表中的MAC字段进行循环比较,如果两表中的MAC字段相同,说明arp_switch6509表中对应的表项即为某个无线路由器的信息,将对应的信息写入wirelessinfo_switch6509数据表中即可,关键代码如下:

(2)获取无线路由位置信息

下面介绍如何获取无线路由器位置信息,具体实现是针对wirelessinfo_switch6509表中的无线路由器MAC地址信息,利用循环,从树根(核心交换机)开始,利用“show Mac-address”命令,从交换机的MAC地址转发表中找到对应目的MAC地址的下一跳端口,然后利用“show cdp neighbors”命令,找到相邻的交换机,如果结果为空,则说明该目的端口已经是无线路由器的接入端口,可以结束此次搜索;如果不为空,则继续登录对应交换机,采取同样的操作。这样通过遍历整棵树,直到找到最终的无线路由器接入端口。

当然,这个过程同样需要使用交换机的自动登录程序,这在前面已有介绍,在此不再赘述。

下面对关键代码进行介绍:

图2无线路由器检测程序流程图

整个检测程序的流程图如图2所示。

3. 无线路由器登记制度

利用上述的检测程序检测出局域网内的无线路由器后,我们如何去识别合法与非法的无线路由器呢?这就需要在管理上下功夫了。由于企业内部电子设备的领用一般都有严格的出库流程,本文从完善此流程的角度出发,建立相应的无线路由器登记制度,当用户申请无线路由器获批后,需前往库房管理处领取设备,而库房管理员除了登记设备型号、序列号等信息,还需要登记无线路由器WAN口的MAC地址,登记后的无线路由器视为合法。完成上述登记内容后,方案二的整套流程如图2所示。

(1)用户提出无线路由器使用申请。

(2)申请审批通过后,用户赴库房领取设备,库管人员分配设备,登记设备型号、SN和MAC地址等信息。

(3)客服人员为用户部署无线路由器,交付给用户使用。

(4)定期(如一个月)利用无线路由器检测程序进行扫描,导出扫描结果。

(5)将扫描结果提交给库管人员,库管人员将无线路由器设备登记表与扫描结果进行对照,找出其中非法接入的无线路由器。

(6)将非法接入的无线路由器信息,包括IP、MAC以及位置(接入交换机的端口)提交给客服人员。

(7)客服人员根据上述信息,结合点位图即可定位到无线路由器的具体位置,对其进行处理。

4.方案二特点

(1)方案优势

检测程序旁路部署,任意一台连入局域网的PC机即可安装,不占用任何资源,不会对网络产生任何影响。

定位较为准确,不仅能获知无线路由器的制造商,更能追踪到无线路由器的物理位置。

检测结果不受无线路由器是否上外网所限制,只要无线路由器与网关有过通讯,即可准确识别出来。

程序完全自主开发,无需任何投资费用;而且程序具有通用性,很容易移植到其他企业环境。

(2)方案缺陷

由于我们无法对数据流量进行深度的协议分析,所以该方案只能对以NAT模式接入的无线路由器进行检测,无法检测出以网桥模式接入的无线路由器下的终端。

暂时只能检测,无法对无线路由器和无线终端进行技术上的管控。

必须收集厂商的无线MAC地址分配表才能进行准确检测。对于TP-Link,D-Link等专业无线设备厂商,收集其MAC地址分配表相对简单,但是对于其他一些综合设备厂商,则需要花费更大的精力去收集。

方案比较

上述两种方案各有优劣,方案一较为成熟,更加侧重于从技术上进行控制,很多厂商已经推出了一整套无线管控解决方案,IT预算充足的企业可以考虑。方案二更加侧重于从管理上对用户进行引导,更加灵活,而且不需要任何投资,扫描程序也很容易移植,自身管理和技术能力较强的企业可以参考。

猜你喜欢

路由器交换机管控
买千兆路由器看接口参数
EyeCGas OGI在泄漏管控工作中的应用
多端联动、全时管控的高速路产保通管控平台
管控老年高血压要多管齐下
修复损坏的交换机NOS
使用链路聚合进行交换机互联
你所不知道的WIFI路由器使用方法?
失控还是管控?
PoE交换机雷击浪涌防护设计
罗克韦尔自动化交换机Allen-Bradley ArmorStratix 5700