一、TRUNK接口及VTP协议的安全性
TRUNK接口的安全性:
交换机的端口有两种工作状态:一是Access状态,也就是我们用户主机接入时所需要的端口状态;二是Trunk状态,主要用于跨交换的相同 VLAN_ID之间的VLAN通讯。Access状态一般被我们称之为正常状态,是主机的正常接入接口。干道技术(Trunking)是通过两个设备之间 点对点的连接来承载多个VLAN数据的一种方法。以下两种方法可以实现以太网干道连接:ISL(交换机间链路,Cisco私有协议)、 802.1Q(IEEE组织制度,国际标准)。
目前常见的802.1Q 和 ISL 标记***,就是利用的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端口,进行局域网***。
步骤2:在需要成为Trunk的接口上输入:
Switch(config-if)# switchport mode trunk
这条命令的功能,就是强制使端口的状态成为Trunk。不会去考虑对方接口状态,也就是说不管对方的接口是什么状态,此接口都是Trunk。注意:这条命令仅仅在Trunk的真实接口上输入,这样使接口在状态上是唯一的,可控性明显的增强了。
步骤3:在Trunk的接口上再输入下面这条命令:
Switch(config-if)#switchport trunk allowed vlan 10,20,30
这条命令定义了在这个Trunk的接口只允许VLAN10、20、30的数据从此通过,如果还有其他VLAN存在,他们的数据将不能通过这个Trunk接口。通过这种简单控制数据的流向而达到安全的目的。
在完成了上述提升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封装的接口都被作为干道使用,这种接口都有一个Native VLAN并被分配Native VLAN ID(缺省是VLAN 1),802.1Q不会标记属于Native VLAN的数据帧,而所有未被标记VLAN号的数据帧都被视为Native VLAN的数据。那么VLAN 1作为缺省的Native VLAN,在所有的交换机上都是相同,因此由Native VLAN引起的安全问题,在局域网中必须引起我们的重视。解决这个安全隐患的办法就是更改缺省Native VLAN,可以用一条命令:
Switch(config-if)# switchport trunk native vlan 999
这条命令需要在一个封装了801.1Q的接口下输入,这条命令将缺省的Native VLAN更改为VLAN 999。执行这条命令后,Native VLAN不相同的交换机将无法通讯,增加了交换机在划分VLAN后的安全性。
VTP协议的安全性
VTP(VLAN Trunking Protocol)是一个用于传播和同步关于整个交换网络的VLAN信息的协议,工作在OSI参考模型的第二层。VTP使我们在扩展交换网络规模时减少人 工配置的工作量,并通过统一地管理交换网络中VLAN的增加、删除和名称变更,以维持整个网络VLAN配置的一致性,最大限度地减少可能带来问题的错配和 配置不一致情况(如VLAN名称重复使用或错误的VLAN类型说明)。
一个VTP域由一个或多个共享相同VTP环境的互连交换机组成,一个交换机只能配置到一个VTP域中。缺省地,Catalyst交换机置于无管理域的状态 (不属于任何VTP域),直到它通过干道链路收到关于某个VTP域的通告或人工将其配置到某VTP域中。对单个VTP服务器的VLAN配置,会通过干道链 路传播给所有连接到该VTP域的交换机。VTP信息只在干道链路上传送出去。
在实际的工作中,往往需要一次性的配置多台Cisco的交换机,这时VTP协议给我们很大的帮助,使我们迅速的完成VLAN的部署。但VTP这个协议在应 用过程中和DTP协议具有相同的问题。VLAN中继***就是利用VTP的缺点实施***的。在解释防范VTP***前,先简单的回顾一下VTP的原理:
交换机在VTP域中以三种模式之一来工作:服务器模式、客户模式、透明模式。默认为服务器模式,但只有当一个管理域名被指定或获知后,其VLAN信息才会 被通告出去。VTP通告被泛洪到整个VTP域,通常每隔5分钟或VLAN配置发生改变时,都会产生VTP通告。VTP通告通过厂家默认的 VLAN(VLAN l)使用组播帧传送,包含在VTP通告中的VLAN配置版本号起着关键的作用,高版本号表明所通告的VLAN信息比原来储存的信息更新。
在同步VLAN信息之前,接收VTP通告的设备必须检查各种参数:首先检查VTP域名、域密码是否与本地交换机所配置的相匹配,接着检查配置版本号是否比 现在保存版本号更高,如果是这样的话交换机就同步通告的VLAN信息,这种信息同步是采用覆盖(overwrite)的方式。如果要复位当前的配置版本 号,用命令delete vtp。
VTP服务器每次调整VLAN信息时,就会让配置版本号递增1,并用新的配置版本号发出VTP通告。但在VTP透明模式下,交换机不参与更新同步,配置版本号总是为0。
VTP裁剪(Pruning)用VLAN通告来决定什么时候在干道连接上泛洪是不必要的。缺省地,在VTP域中干道连接承载所有VLAN的数据,在企业网 络中往往不是每个交换机上都有接口划分到所有VLAN,VIP修剪功能通过限制泛洪数据传到那些不必要的主干链路来增加可用的带宽。修剪功能只能在VTP 服务器上启用。
回顾了VTP的基本原理后,我们再来看,CISCO Catalyst交换机上的缺省VTP配置:
VTP的缺省配置取决于交换机型号和软件版本
VTP模式:缺省地设置为VTP服务器模式
VTP裁剪: 2950,3550等关闭
VTP版本:VTP协议有版本1和版本2
VTP域名:可以直接指定或从通过干道链路学来。缺省地交换机没有VTP域名。
VTP密码:无
VTP的模式缺省是VTP的服务器模式,这种模式下可以任意的删除、添加、或更改VLAN的信息,所以这种模式下的安全性非常重要。***者通过 VTP***获取权限后,对我们的局域网的架构可以任意更改了,造成网络的严重混乱。所以建议在进行VTP协议实施时,不管一个域中有多少台交换机,只保留 一台是VTP的服务器模式,其他都是VTP的客户模式。
另外,为了保证VTP域的安全,VTP域可以设置密码,域中所有交换机必须设置成一样的密码,在VTP域中的交换机配置了同样的密码后,VTP才能正常工作,而不知道密码或密码错误的交换机讲无法获知VLAN的消息。
二、生成树协议的安全
STP(Spanning Tree Protocol 生成树协议)是一种网桥协议,它使用STA来动态地找出冗余链路,并创建生成树拓扑数据库。网桥之间相互交换BPDU信息,以检测出网络中的环路,然后通过关闭所选择的网桥接口来删除这些环路。
目前常见生成树协议***主要有:
1、 抢占根桥或伪装根桥。这种情况将会导致网络性能或网络连接问题。
2、 发送伪造BPDU耗费交换机资源或使网络产生回路,甚至导致网络崩溃。
针对以上情况,思科的方案主要是基于下面的特性:
•根防护:能够防止接入端口的交换机(或***源模拟)成为根桥。
Switch(config)#spanning-tree portfast bpduguard
•BPDU防护:能够防止交换设备意外(或***者故意)连接到启用PortFast特性的端口。
Switch(config)#spanning-tree guard root
•BPDU过滤:能够限制交换机不向接入端口发送不必要的BPDU。
注意:不能在连接到其它交换机上的端口配置BPDU过滤,否则可能导致桥接环路;在部署BPDU过滤的时候应当格外小心。BPDU过滤不是一种推荐配置。
Switch(config)#spanning-tree bpdufilter default
不当之处,请各位多多指教!
转载于:https://blog.51cto.com/1841cisco/1274835