知己知彼 用VLAN技术防御黑客攻击2008-01-21 10:33:28 来源:IT168.com 作者:张琦 点击:
为什么要用VLAN呢?VLAN的实施是从逻辑上对用户进行了划分,使不同VLAN之中的用户无法直接通信。这种技术方便实施,节约资金。然而随着VLAN的应用范围越来越广,而同VLAN相关的安全管理问题也越来越严重。 ![]() 们所有的接口上缺省使用了下面这条命令:
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,20,30 这条命令定义了在这个Trunk的接口只允许VLAN10,20,30的数据从此通过.如果还有其他VLAN存在,他们的数据将不能通过这个Trunk接口通过。这样允许那些VLAN通过,那些不能通过,就很容易实施。我们就通过这种简单控制数据的流向而达到安全的目的。 在完成了上述提升我们的VLAN安全三条命令后,我们的这些接口已经具备了较高的安全性。但读者肯定还有个疑问,那就是使用了这些命令后,DTP这些协议是否还在工作?回答是肯定的,DTP协议依旧在工作。 所以我们最后还有一条强烈建议大家在配制VLAN时,必加的命令: Switch(config-if)#switchport nonegotiate 大家一看到这条命令,就知道它的功能了。Nonegotiate的意思就是不协商。所以上面这条命令就是帮助我们彻底的将发送和接收DTP包的功能完全关闭。在关闭的DTP协议后,该接口的状态将永远稳定成Trunk,使接口的状态达到了最大的稳定性,最大化避免了攻击者的各种试探努力。 另外,在802.1Q的Trunk中还有一个相关的安全问题,那就是Native VLAN。众所周知,在Cisco的Catalyst系列的交换机中,有几个缺省的VLAN。对于以太网用户而言,我们需要了解其中最重要的一个,那就是VLAN 1。缺省情况下,交换机的所有以太网接口都属于VLAN 1。而且我们在配置二层交换机上配置IP地址时,也是在VLAN 1这个接口下完成的。 在802.1Q的干道协议中,每个802.1Q封装的接口 ![]()
|
|
||||
|
|
||||
|
|
|
||||
|
|
||||
|
|
|
||||
|
|
||||
|
|