VLAN可能带来灾难 如何避免

交换机不是被设计用来作安全设备的,其功能仍是以提高网络性能为主。如果要将交换机纳入安全机制的一部分,前提是首先要对交换机进行正确的配置,其次交换机的制造商要对交换机软件的基础标准有着全面理解并彻底实现了这些标准。如果对网络安全有着严格的要求,还是不要使用共享的交换机,应该使用专门的交换机来保证网络安全。如果一定要在不可信的网络和可信的用户之间共享一个交换机,那么带来的只能是安全上的灾难。
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地址,也许需要在物理上直接访问目标系统。
这两种情况中所描述的问题能够通过使用交换机软件来得到改善,这些软件的功能是消除数据包在传送时所需要的信息。在Cisco的高端交换机中,将每个VLAN所存在的生成树进行分离。其他的交换机要么具有类似的特点,要么能被设置成可以对各个VLAN里的成员的桥接信息进行过滤。
链路聚合
多个交换机可以通过配制机制和在交换机间交换数据包的标签来共享同一VLAN。你可以设置一个交换机,使得其中一个端口成为链路,在链路上可以为任何VLAN传送数据包。当数据包在交换机之间传递时,每个数据包被加上基于802.1Q协议的标签,802.1Q协议是为在桥接器间传送数据包而设立的IEEE标准。接收交换机消除数据包的标签,并将数据包发送到正确的端口,或在数据包是广播包的情况下发送到正确的VLAN。
这些四字节长的802.1Q被附加在以太网数据包头中,紧跟在源地址后。前两个字节包含81 00,是802.1Q标签协议类型。后两个字节包含一个可能的优先级,一个标志和12比特的VID(VLAN Identifier)。VID的取值在0到4095之间,而0和4095都作为保留值。VID的默认值为1,这个值同时也是为VLAN配置的交换机的未指定端口的默认值。
根据Cisco交换机的默认配置,链路聚合是推荐的配置。如果一个端口发现另一个交换机也连在这个端口上,此端口可以对链路聚合进行协商。默认的链路端口属于VLAN1,这个VLAN被称作该端口的本地VLAN。管理员能够将链路端口指定给任何VLAN。
可以通过设置链路端口来防止这种VLAN间数据包的传送,将链路端口的本地VLAN设置成不同于其他任何VLAN的VID。记住链路端口的默认本地VLAN是VID 1。可以选择将链路端口的本地VLAN设置为1001,或者任何交换机允许的且不被其他任何VLAN所使用的值。
防火墙和VLAN
知道了交换机如何共享VLAN信息之后,就可以更准确地评价支持VLAN的防火墙。支持VLAN的防火墙从支持VLAN的交换机那里获得头部带有802.1Q标签的数据包,这些标签将被防火墙展开,然后用来进行安全规则的检测。尽管到目前为止,我们只讨论了以太网的情况,802.1Q标签同样适用于其他类型的网络,比如ATM 和FDDI。
802.1Q标签并不能提供身份验证,它们只不过是交换机用来标志从特定VLAN来的特定数据包的一种方式。如同许多年来人们伪造IP源地址一样,VLAN标签同样可以被伪造。最新的Linux操作系统带有对工作于VLAN交换机模式的支持,可以生成本地系统管理员可以选择的任意VLAN标签。
安全使用802.1Q标签的关键在于设计这样一种网络:交换机链路连接到防火墙接口,而基于VLAN标签的安全检测将在防火墙接口进行。如果有其他的线路能够到达防火墙的接口,伪造VLAN标签的可能性就会增大。交换机本身必须被正确配置,进行链路聚合的链路端口要进行特殊配置,然后加入到非默认VID中。
在任何关于交换机的讨论中,保护对交换机设备的管理权限这一结论是永远不变的。交换机和其他网络设备一样可以从三种途径进行管理:Telnet、HTTP和SNMP。关掉不使用的管理途径,在所使用的管理途径上也要加上访问控制。因为当攻击者来自网络外部时,防火墙可以控制他对交换机的访问;当攻击者来自网络内部或者攻击者获得了访问内部系统的权限而发起攻击时,防火墙对此将无能为力。

文章录入:aaadxmmm    责任编辑:aaadxmmm

(0)

相关推荐

  • VLAN可能带来灾难 如何避免

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

  • js 面向对象的技术创建高级 Web 应用程序

    JavaScript 对象是词典 在 C++ 或 C# 中,在谈论对象时,是指类或结构的实例.对象有不同的属性和方法,具体取决于将它们实例化的模板(即类).而 JavaScript 对象却不是这样.在 JavaScript 中,对象只是一组名称/值对,就是说,将 JavaScript 对象视为包含字符串关键字的词典.我们可以使用熟悉的"."(点)运算符或"[]"运算符,来获得和设置对象的属性,这是在处理词典时通常采用的方法.以 下代码段 复制代码 代码如下: var

  • 详解Java编程中对线程的中断处理

    1. 引言 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时--都需要通过一个线程去取消另一个线程正在执行的任务.Java没有提供一种安全直接的方法来停止某个线程,但是Java提供了中断机制. 如果对Java中断没有一个全面的了解,可能会误以为被中断的线程将立马退出运行,但事实并非如此.中断机制是如何工作的?捕获或检测到中断后,是抛出InterruptedException还是重设中断状态以及在方法中吞掉中断状态会有什么后果?Thread.st

  • windows 2003中IIS6的安全配置

    IIS安全配置主要有3个方面需要注意 设置主目录权限 删除不需要的扩展名映射 删除危险的IIS组件 安装IIS时应该注意只安装必需的服务,建议不要安装 Index Server.FrontPage Server Extensions.示例WWW站点等功能. 关闭不必要的服务,服务开的多不是好事,将不必要的服务通通关掉,特别是连管理员都不知道的和一些危险的服务,免得给系统带来灾难,同时也能节约一些系统资源.可在服务器上关闭以下服务: Computer Browser:维护网络上计算机的最新列表,以

  • 一步步教你3个月打造10万IP的流量(实战演练)

    最近很想写一篇这样的文章,想总结出所有常用的和不常用的推广方法.分析如何在短期内打造高流量网站.昨天在公司写了一个前言部分,但是公司的安全系统太强了,超过200字就不能发.所以准备整理一下再发,除了前言部分,还打算分为第一讲,第二讲,总共打算写十讲.有一部分推广方法是大家常用的,另外一部分是自己总结和被大家忽视的.本人所讲的内容,绝对可以号称"实战演练",拿一个流量为0的网站三个月做到10万IP给家看,但我每天只能最多用一个小时上落伍,因为其它时间都用来推广和策划的.(写于2005-11-18)

  • 华为公司三层以太网交换机基本原理及转发流程

    1. 二层转发流程1.1. MAC地址介绍MAC 地址是48 bit 二进制的地址,如:00-e0-fc-00-00-06.可以分为单播地址.多播地址和广播地址.单播地址:第一字节最低位为0,如:00-e0-fc-00-00-06多播地址:第一字节最低位为1,如:01-e0-fc-00-00-06广播地址:48 位全1,如:ff-ff-ff-ff-ff-ff注意:1)普通设备网卡或者路由器设备路由接口的MAC 地址一定是单播的MAC 地址才能保证其与其它设备的互通.2) MAC 地址是一个以太网

  • access改mdb为asp所带来的灾难 附mdb防下载方法

    先不说直接改后缀,直接可以用网快等工具直接下载,其实这样你已经是为入侵者打开了大门.入侵者可以利用asp/asa为后缀的数据库直接得到webshell. 一.思路 大家都知道<%%>为asp文件的标志符,也就是说一个asp文件只会去执行<%%>之间的代码,access+asp的web系统的所有数据都是存放在数据库文件里(mdb文件),由于管理者把mdb文件改为了asp文件,如果我们提交的数据里包含有<%%>,那当我们访问这个asp数据库的时候就会去执行<%%>

  • 第三层交换技术及在VLAN子网规划中的应用

    在传统的校园网模式中,网络互连一般是一个或多个主干交换机下连多级交换机,交换机间通过路由器来进行通信的结构,传统路由器工作在OSI模型的网络层,并且基于软件进行路由的计算和包的转发.随着校园网规模的扩大,用户的增加,各种基于IP协议的应用(如视频会议,远程教育)的迅猛发展,传统路由在校园网的安全管理和流量控制方面益发成为一个瓶颈问题,而传统交换机虽是有快速处理能力.但它本质是一种多端口网桥,不可避免会产生广播,无法实现路由,为解决这个矛盾,网络厂商提出了第三层交换的思想. 第三层交换技术工作原理

  • Java接口默认方法带来的问题分析【二义性问题】

    本文实例分析了Java接口默认方法带来的问题.分享给大家供大家参考,具体如下: 一 点睛 Java 8中,如果一个类实现两个或多个接口,即"变相"的多继承,但是若其中两个接口都包含一个名字相同的default方法,会出现二义性问题. 二 实战 1 代码 interface faceA //定义接口faceA { void someMethod( ); default public void DefaultMethod( )//定义接口中默认方法 { System.out.println

  • ASP/VBScript中CHR(0)的由来以及带来的安全问题分析

    该字符标识着字符串的结束,也称作null-terminated,这个给脚本编程尤其是ASP编程带来了一定的麻烦,很多人可能会问为什么要保留这个特殊字符,我们可以追溯到编写操作系统的语言之一C语言,学过C/C++的童鞋可能知道,在字符串中标识一个字符串结束靠的就是结尾的\0(NULL或者0),否则不能称作为字符串,只能说是字符串数组,任何对于字符串操作的函数如果传入的字符串丢掉了这个结束NULL字符,都有可能会出现异常. 复制代码 代码如下: char strbuf[] = "Hello"

随机推荐