避免虚拟局域网可能带来的灾难

交换机不是被设计用来作安全设备的,其功能仍是以提高网络性能为主 。假如要将交换机纳入安全机制的一部分,前提是首先要对交换机进行正确的配置,其次交换机的制造商要对交换机软件的基础标准有着全面理解并彻底实现了这些标准 。假如对网络安全有着严格的要求,还是不要使用共享的交换机,应该使用专门的交换机来保证网络安全 。假如一定要在不可信的网络和可信的用户之间共享一个交换机,那么带来的只能是安全上的灾难 。

VLAN的确使得将网络业务进行隔离成为可能,这些业务共享同一交换机甚至共享一组交换机 。但是交换机的设计者们在把这种隔离功能加入到产品之中时,优先考虑的并不是安全问题 。VLAN的工作原理是限制和过滤广播业务流量,不幸的是,VLAN是依靠软件和配置机制而不是通过硬件来完成这一任务的 。

最近几年,一些防火墙已经成为VLAN设备,这意味着可以制定基于包标签的规则来使一个数据包转到特定的VLAN 。然而,作为VLAN设备的防火墙也为网页寄存站点增加了很多灵活的规则,这样防火墙所依靠的这些标签在设计时就不是以安全为准则了 。交换机之外的设备也可以生成标签,这些标签可以被轻易地附加在数据包上用来欺骗防火墙 。

VLAN的工作原理究竟是怎样的?VLAN又有着什么样的安全性上的优点呢?假如决定使用VLAN作为安全体系的一部分,怎样才能最大限度地避免VLAN的弱点呢?

分区功能

“交换机”一词最早被用来描述这样一种设备,这种设备将网络业务在被称之为“端口”的网络接口间进行交换 。就在不久以前,局域网的交换机被称作“桥接器” 。现在,即使是与交换机相关的IEEE标准中也不可避免地用到“桥接器”这一术语 。

桥接器用来连接同一局域网上不同的段,这里的局域网指的是不需要路由的本地网络 。桥接器软件通过检测收到数据包中所含的MAC地址来获悉哪个端口联接到哪个网络设备 。最初,桥接器将所有收到的数据包发送到每个端口,经过一段时间以后,桥接器通过建立生成树和表的方法获悉如何将数据包发送到正确的网络接口 。这些生成树和表将MAC地址映射到端口的工作,是通过一些选择正确网络接口和避免回路的算法来完成的 。通过将数据包发送到正确的网络接口,桥接器减少了网络业务流量 。可以将桥接器看作是连接两条不同道路的高速公路,在高速公路上只通过两条道路间必要的交通流量 。

尽管桥接器从整体上减少了网络业务流量,使得网络可以更加高效地运行 。桥接器仍然需要对所有端口进行广播数据包的发送 。在任何局域网中,广播的含义是:一个消息广播发送给局域网内所有系统 。ARP(地址解析协议)包就是广播信息的一个例子 。

随着端口数目和附加治理软件数目的增多,桥接器设备的功能变得越来越强 。一种新的功能出现了:桥接器具有了分区功能,可被分成多个虚拟桥 。当通过这种方式进行分区时,广播信息将被限制在与虚拟桥和对应的VLAN的那些端口上,而不是被发送到所有的端口 。

将广播限制在一个VLAN中并不能够阻止一个VLAN中的系统访问与之连接在同一桥接器而属于不同VLAN的系统 。但要记住,ARP广播被用来获得与特定IP对应的MAC地址,而没有MAC地址,即使在同一网络中的机器也不能相互通信 。

Cisco网站上描述了在两种情况下,数据包可以在连接于同一交换机的VLAN中传送 。在第一种情况下,系统在同一VLAN中建立了TCP/IP连接,然后交换机被重新设置,使得一个交换机的端口属于另一个VLAN 。通信仍将继续,因为通信双方在自己的ARP缓冲区中都有对方的MAC地址,这样桥接器知道目的MAC地址指向哪个端口 。在第二种情况下,某人希望手动配制VLAN,为要访问的系统建立静态ARP项 。这要求他知道目标系统的MAC地址,也许需要在物理上直接访问目标系统 。

推荐阅读