知己知彼 用VLAN技术防御黑客攻击

为什么要用VLAN呢?VLAN的实施是从逻辑上对用户进行了划分,使不同VLAN之中的用户无法直接通信。这种技术方便实施,节约资金。然而随着VLAN的应用范围越来越广,而同VLAN相关的安全管理问题也越来越严重。

VLAN技术的应用为网络的安全防范提供了一种基于管理方式上的策略方法,我们可以根据企业网络管理的特点有针对性地选择不同的VLAN划分手段。虽然网络安全在某种程度上得到了一定的保障,但安全往往与危险并存,面对这些花样翻新的攻击手段,如何采取有效的防范措施?在本文中,将针对应用VLAN技术管理的网络,介绍黑客的攻击手段和我们可以采取的防御手段。

一.常见的VLAN攻击

目前常见的VLAN的攻击有以下几种:

1.802.1Q 和 ISL 标记攻击

标记攻击属于恶意攻击,利用它,一个 VLAN 上的用户可以非法访问另一个 VLAN 。例如,如果将交换机端口配置成 DTP(DYNAMIC TRUNK PROTCOL) auto ,用于接收伪造 DTP(DYNAMIC TRUNK PROTCOL) 分组,那么,它将成为干道端口,并有可能接收通往任何 VLAN 的流量。由此,恶意用户可以通过受控制的端口与其它 VLAN 通信。 有时即便只是接收普通分组,交换机端口也可能违背自己的初衷,像全能干道端口那样操作(例如,从本地以外的其它 VLAN 接收分组),这种现象通常称为“VLAN 渗漏”。

对于这种攻击,只需将所有不可信端口(不符合信任条件)上的 DTP(DYNAMIC TRUNK PROTCOL) 设置为“关”,即可预防这种攻击的侵袭。 Cisco Catalyst 2950 、 Catalyst 3550 、 Catalyst 4000 和 Catalyst 6000 系列交换机上运行的软件和硬件还能够在所有端口上实施适当的流量分类和隔离。

2.双封装 802.1Q/ 嵌套式 VLAN 攻击

在交换机内部, VLAN 数字和标识用特殊扩展格式表示,目的是让转发路径保持端到端 VLAN 独立,而且不会损失任何信息。在交换机外部,标记规则由 ISL 或 802.1Q 等标准规定。

ISL 属于思科专有技术,是设备中使用的扩展分组报头的紧凑形式,每个分组总会获得一个标记,没有标识丢失风险,因而可以提高安全性。

另一方面,制订了 802.1Q 的 IEEE 委员会决定,为实现向下兼容性,最好支持本征 VLAN ,即支持与 802.1Q 链路上任何标记显式不相关的 VLAN 。这种 VLAN 以隐含方式被用于接收802.1Q端口上的所有无标记流量。

这种功能是用户所希望的,因为利用这个功能,802.1Q端口可以通过收发无标记流量直接与老 802.3 端口对话。但是,在所有其他情况下,这种功能可能会非常有害,因为通过 802.1Q 链路传输时,与本地 VLAN 相关的分组将丢失其标记,例如丢失其服务等级( 802.1p 位)。

但是基于这些原因——丢失识别途径和丢失分类信息,就应避免使用本征 VLAN ,更不要说还有其它原因,如图1所示。

知己知彼 用VLAN技术防御黑客攻击

图 1 双封装攻击

先剥离,再送回攻击者 802.1q 帧 ,VLAN A、 VLAN B 数据包含本征VLAN A 的干道 VLAN B 数据

注意: 只有干道所处的本征 VLAN 与攻击者相同,才会发生作用。

当双封装 802.1Q 分组恰巧从 VLAN与干道的本征 VLAN 相同的设备进入网络时,这些分组的 VLAN 标识将无法端到端保留,因为 802.1Q 干道总会对分组进行修改,即剥离掉其外部标记。删除外部标记之后,内部标记将成为分组的惟一 VLAN 标识符。因此,如果用两个不同的标记对分组进行双封装,流量就可以在不同 VLAN 之间跳转

这种情况将被视为误配置,因为 802.1Q 标准并不逼迫用户在这些情况下使用本征 VLAN 。事实上,应一贯使用的适当配置是从所有 802.1Q 干道清除本地 VLAN (将其设置为 802.1q-all-tagged 模式能够达到完全相同的效果)。在无法清除本地 VLAN 时, 应选择未使用的 VLAN 作为所有干道的本地 VLAN ,而且不能将该 VLAN 用于任何其它目的 。 STP、DTP(DYNAMIC TRUNK PROTCOL)和UDLD等协议应为本地 VLAN 的唯一合法用户,而且其流量应该与所有数据分组完全隔离开。

3.VLAN跳跃攻击

虚拟局域网(VLAN)是对广播域进行分段的方法。VLAN还经常用于为网络提供额外的安全,因为一个VLAN上的计算机无法与没有明确访问权的另一个VLAN上的用户进行对话。不过VLAN本身不足以保护环境的安全,恶意黑客通过VLAN跳跃攻击,即使未经授权,也可以从一个VLAN跳到另一个VLAN。

VLAN跳跃攻击(VLAN hopping)依靠的是动态中继协议(DTP(DYNAMIC TRUNK PROTCOL))。如果有两个相互连接的交换机,DTP(DYNAMIC TRUNK PROTCOL)就能够对两者进行协商,确定它们要不要成为802.1Q中继,洽商过程是通过检查端口的配置状态来完成的。

VLAN跳跃攻击充分利用了DTP(DYNAMIC TRUNK PROTCOL),在VLAN跳跃攻击中,黑客可以欺骗计算机,冒充成另一个交换机发送虚假的DTP(DYNAMIC TRUNK PROTCOL)协商消息,宣布它想成为中继; 真实的交换机收到这个DTP(DYNAMIC TRUNK PROTCOL)消息后,以为它应当启用802.1Q中继功能,而一旦中继功能被启用,通过所有VLAN的信息流就会发送到黑客的计算机上。

中继建立起来后,黑客可以继续探测信息流,也可以通过给帧添加802.1Q信息,指定想把攻击流量发送给哪个VLAN。

4.VTP攻击

VLAN中继协议(VTP,VLAN Trunk Protocol)是一种管理协议,它可以减少交换环境中的配置数量。就VTP而言,交换机可以是VTP服务器、VTP客户端或者VTP透明交换机,这里着重讨论VTP服务器和VTP客户端。用户每次对工作于VTP服务器模式下的交换机进行配置改动时,无论是添加、修改还是移除VLAN,VTP配置版本号都会增加1,VTP客户端看到配置版本号大于目前的版本号后,就自动与VTP服务器进行同步

恶意黑客可以让VTP为己所用,移除网络上的所有VLAN(除了默认的VLAN外),这样他就可以进入其他每个用户所在的同一个VLAN上。不过,用户可能仍在不同的网段,所以恶意黑客就需要改动他的IP地址,才能进入他想要攻击的主机所在的同一个网段。

恶意黑客只要连接到交换机,并在自己的计算机和交换机之间建立一条中继,就可以充分利用VTP。黑客可以发送VTP消息到配置版本号高于当前的VTP服务器,这会导致所有交换机都与恶意黑客的计算机进行同步,从而把所有非默认的VLAN从VLAN数据库中移除出去。

这么多种攻击,可见我们实施的VLAN是多么的脆弱,不过我们值得庆幸的是:如果交换机的配置不正确或不适当,才有可能引发意外行为或发生安全问题。所以我们在下面会告诉大家配置交换机时必须注意的关键点。

二.TRUNK接口的安全性

交换机的端口有两种工作状态:一是Access状态,也就是我们用户主机接入时所需要的端口状态;二是Trunk状态,主要用于跨交换的相同VLAN_id之间的VLAN通讯。、

Access状态一般被我们称之为正常状态,是主机的正常接入接口,这种接口的状态能引起安全的问题很小,我们不在这里详细的描述了。

干道技术(Trunking)是通过两个设备之间点对点的连接来承载多个VLAN数据的一种方法。以下两种方法可以实现以太网干道连接ISL(交换机间链路,Cisco私有协议) 802.1Q(IEEE组织制度,国际标准)。

前文提到的802.1Q 和 ISL 标记攻击,就是利用的Trunk的原理来实现的。那么我们在进行Trunk的操作中,怎样做才能更有效的避免这个安全隐患呢?

我们已经知道,在实施Trunk时,我们可以不进行任何的命令操作,也可以完成在跨交换的相同VLAN-ID之间的通讯。这是因为我们有DTP(DYNAMIC TRUNK PROTCOL)。我们所有的接口上缺省使用了下面这条命令
Switch(config-if)#switchport mode dynamic desirable

这条命令使我们所有的接口都处于了自适应的状态,会根据对方的接口状态来发生自适应的变化,对方是Access,就设置自己为Access;对方是Trunk,就设置自己为Trunk。除了desirable这个参数以外,还有一个和它功能比较相似的参数:Auto。这两个参数其实都有自适应的功能,稍微的一点不同在于是否是主动的发出DTP(DYNAMIC TRUNK PROTCOL)的包,有就是说是否主动的和对方进行端口状态的协商。Desirable能主动的发送和接收DTP包,去积极和对方进行端口的商讨,不会去考虑对方的接口是否是有效的工作接口,而Auto只能被动的接收DTP包,如果对方不能发送DTP消息,则永远不会完成数据通信。说到这,大家肯定认为Auto这个参数安全系数要比Desirable参数,其实这两个参数的实施所产生的安全隐患是一样的。大家想想,VLAN跳跃攻击往往是对方将自己的接口设为主动自适应状态,那么我们不管用哪个参数,其结果是完全一样的。

这样的两个参数本意是给我们减轻工作负担,加快VLAN的配置而产生的。但随着网络的不断发展,针对这个特性而引发的安全隐患(比如:VLAN的跳跃攻击就是利用了这个特性),越来越引起我们的关注。

想要解决这个安全隐患,只需进行以下操作。

步骤1:我们首先将交换机上所有接口上,输入这个命令:

Switch(config-if)# switchport mode access

我们将交换机的所有接口都强制设为Access状态,这样做的目的是当攻击者设定自己的接口为Desirable状态时,怎么协商所得到的结果都是Accsee状态。使攻击者没法利用交换机上的空闲端口,伪装成Trunk端口,进行局域网攻击。

再在Trunk接口上输入:

Switch(config-if)# switchport mode trunk

这条命令的功能,就是强制使端口的状态成为Trunk。不会去考虑对方接口状态,也就是说不管对方的接口是什么状态,我的接口都是Trunk。大家注意:这条命令仅仅在Trunk的真实接口上输入,这样使我们的接口在状态上是唯一的,可控性明显的增强了。

其次我们可以在Trunk的接口上再输入下面这条命令:

Switch(config-if)#switchport trunk allowed vlan 10,2

分类:默认分类 时间:2015-03-07 人气:1
本文关键词:
分享到:

相关文章

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.087 (s). 10 q(s)