安全与带宽的危机
1999年初,某企业大厦网络(以下简称B大厦)受到了带宽和安全问题的困扰,为此,网络中心开始酝酿网络的升级改造。
B大厦内有研究院、集团、公司等单位。大厦内所有的计算机使用某大学(以下简称A大学)校园网分配的真实Internet IP,共有7个24位掩码网段,下面又进一步划分了不同掩码长度的子网,计有近500台计算机,运行Windows NT、Windows 9x、Solaris、AIX、IRIX等多种操作系统。中心交换机为IBM 8274,安装了两个百兆交换模块。中心服务器(Web、FTP、文件共享、光盘库、Exchange Server、SMS、Lotus Notes Domino、NT PDC/BDC、DNS、WINS、Proxy)使用PC/Alpha平台,全部直接连至8274的百兆交换端口。4个楼层各有一个百兆交换机分别使用3Com 3800(3C16910)、Intel E550T等型号,全部为三层可管理并支持VLAN。每个楼层交换机都上行至8274的百兆端口。内部网络运行稳定,速度基本上能够满足要求。
B大厦的网络通过无线网络设备和A大学办公楼相连,两端相距7km各有一台运行NetWare 3.x的无线网关机器,两台机器各装有一块AT&T WaveLan无线网卡,通过楼顶的高增益天线对连,连接速率为2Mbps。办公楼的主干网络是由4台Digital 900EF路由器组成的FDDI双环。其中一台900EF连接到A大学校园网作为Internet出口,另外3台各自接到不同的部门,有一台接到无线网关。
当时,B大厦内已经有员工400多人。2Mbps的Internet接入带宽远远跟不上需求。从网络结构上看,FDDI环通过10兆交换以太网端口接入A大学校园网,B大厦的主干网络为百兆以太网,因此整个网络的瓶颈为无线网。
为了解决带宽问题,我们探讨了多种方案,首先是敷设光纤。因为牵涉到市政等多方面的因素,敷设光纤的费用颇高,是我们无法承受的。而租用专线首先速度不能满足要求,费用也不低,没有必要,因此我们决定仍然使用无线网的方式,使用新的快速无线网技术对旧有设备进行升级。
另一个严重的问题是安全问题,此前,B大厦的网络持续受到来自Internet的攻击,包括MailSpam、PoD、大规模的端口扫描等,多次造成Exchange服务器宕机和Internet访问中断,影响了企业的日常运作。当时采用的安全措施是在FDDI环的第一台900EF上进行IP访问限制,而900EF属于已经过时的设备,仅支持简单的包过滤。早已不能满足网络安全的需要。另一方面,B大厦的内部网对外几乎完全没有设防,从外部可以很容易地窃取内部网未经严格设置的员工机器上的信息。必须采取措施防止这类问题的发生。
经过论证,我们决定增加一台或两台防火墙机器来抵御黑客攻击。当时Linux 2.2系列内核刚发布不久,2.2.x中全新的IPChains代替了从BSD中移植来的ipfw,在性能和配置方面得到了各方的好评,因此我们初步决定采用Linux系统配置IPChains来作为新的包过滤防火墙。
此外,还有IP的浪费问题也引起了我们的注意,因为两台无线网关占用了整整两个24位掩码网段。这是由于NetWare 3.x使用早期的RIP协议,不支持子网的进一步划分。我们也希望通过升级来省出IP,以便适应日益增长的网络规模的需要。
使用Linux升级无线网
当时,新一代无线局域网协议IEEE802.11b尚未发布,市场上有多种标称速率在8Mbps至12Mbps的无线网络产品,大多是基于专有协议。我们对其中的5种产品进行了现场测试。测试方法是两端使用两台笔记本电脑,都安装Windows 98,一端安装Server U 2.4 FTP服务器软件,另一端使用Windows 98自带的命令行ftp程序进行连接,多次下载20MB的文件。经测试,没有一家的产品传输速率在500KBps以上。而且有些产品随距离增加传输速率迅速衰减。经过比较,我们选择了Lucent公司的WaveLan IEEE。在7km的距离上,WaveLan IEEE的FTP实测速率可达400KBps左右,约为传统有线10兆以太网的二分之一(原因见后文"方兴未艾的无线网络技术"),随距离增大信号衰减不明显。而且,由于Lucent是即将出台802.11b的主要制订者之一,WaveLan IEEE已经事实上支持了这个标准,为我们提供了可扩展性。
厂家建议的方案是使用两个WavePointⅡAP专用无线网桥,各插一块WaveLan IEEE PCMCIA卡,两端通过馈线连接高增益天线对连。网桥可配置为工作在下两层,不需要单独的网段。因为WavePointⅡAP价格较高而WavaLan IEEE PCMCIA支持多种系统,我们开始探讨使用PC机代替专用无线网关的可能性。经过调查,发现在台式机上使用ISA桥接卡转接即可使用WavaLan IEEE PCMCIA卡。在厂商的配合下,经过实验,我们成功地实现了用两台Linux机器作为无线网关,并发现这种方案的效率要比使用两台WavePointⅡAP略高。而且这样还免去了根据计划要在网络中再增加Linux防火墙的麻烦,可以直接把无线网关配置为防火墙。但由于WavePointⅡAP具有管理程序可供实时查看信道情况,有助于我们的管理,且安装也比较简单,我们最终采用了一个WavePointⅡAP和一台Linux机器。我们选择将无线网的Linux网关安装在办公楼一端,主要是基于如下考虑:访问流量以进入方向为主,而网络速度是有线以太网较快,这样可以减弱启用IPChains对网络速度带来的影响。事实证明,后来启用IPChains(约30条规则)效率非常高,没有对网络速度产生影响。其次,是最大保护原则,这样可以保护包括WavePointⅡAP在内的尽量多的设备。
我们采用了RedHat Linux 6.0,内核版本为2.2.5。Lucent仅以二进制可执行模块和库的方式提供了Linux的驱动程序,非GPL授权。当时网上已经有了由志愿者开发的GPL版本,但尚处在早期测试阶段,功能支持不完善,我们未予采用。由于是在台式机上安装PCMCIA设备,我们需要配置含PCMCIA支持,而Linux 2.2.5内核中没有包括这一部分,于是我们选择ftp://csb.stanford.edu/pub/pcmcia/下载了最新的PCMCIA支持包,并进行编译安装。
在编译之前要先把WaveLan IEEE的驱动程序放入PCMCIA 卡服务程序源代码中,假设PCMCIA 卡服务程序源代码目录与WaveLan IEEE的驱动程序的打包文件出于同一目录中,则执行如下操作。
#cd pcmcia-cs-3.0.9
#tar xzvf ../wavelan2_cs-3.10.tar.gz
#make config
#make all
#make install
这时PCMCIA支持包已经编译安装完毕,需要再对无线网卡的IP参数进行配置。因为无线网卡的驱动识别和载入实在PCMCIA卡服务程序启动之后发生的,不同于编译到内核中或以内核模块方式载入驱动的普通以太网卡,因此需要在PCMCIA卡服务程序的配置文件中指定网卡的IP设置。首先,编辑/etc/pcmcia/config.opts,加入如下一行。
module "wavelan2_cs" opts "network_name=wirelessrouter"
这里的wirelessrouter是无线网的网络代号。这里也可以使用对等模式,参见无线网卡驱动程序的说明文件。然后,再编辑/etc/pcmcia/network.opts,设置网络参数。
*,*,*,*)
IF_PORT=""
BOOTP="n"
IPADDR="163.215.120.238"
NETMASK="255.255.255.240"
NETWORK="163.215.120.224"
BROADCAST="163.215.120.255"
GATEWAY="163.215.120.252"
DOMAIN="router.Au.edu.cn"
这时就可以启动PCMCIA卡服务程序了。
# /etc/rc.d/rc.pcmcia restart
此时如果听到"嘟"一声,说明设备已被识别。
另一端的无线网桥也需要经过简单地配置,首先根据说明书将一台PC机的IP设为与网桥的默认IP在同一个网段,然后运行网桥的配置管理程序。对网桥的配置进行修改,将网络代号填为与Linux配置文件中一致。这里要注意的是,虽然WavePoint Ⅱ AP行使网桥的功能,但并不妨碍为其分配IP,否则将无法通过网络进行管理。
随后就是各级路由的设定,为了达到节省IP的目的,我们把163.215.120.224/27网络分为两个子网分别为163.215.120.224/28和163.215.120.240/16。将连接无线网关的900EF的IP地址改为163.215.120.239,将Linux以太网卡的IP改为163.215.120.238,无线网卡的IP则与另一端的IBM8274的出口端口设在一个网段。这样便节省出了163.215.121.x和163.215.154.x这两个网段。最后,逐一进行各级的三层以上设备的静态路由设置,实现网络的全线贯通。
网关/防火墙的安全策略
无线网升级完成后,为了解决网络安全问题,我们进行了一系列的设置。
首先要确保网关本身的安全。我们采取了如下措施。
1.使用TCP Wrapper的访问限制功能,设置仅允许一个指定的IP(由网络管理人员使用)访问,这是通过修改/etc/hosts.allow和/etc/hosts.deny等文件来实现的,具体方法可参见本刊2000年第44期《设置安全的Linux服务器》一文(以下简称《设》文)。
2.在Linux网关上停止一切不必要的服务,包括telnet和ftp,并取而代之以SSH和scp,从而实现网络管理员和网关通讯时仅传输加密数据,并摒弃了口令认证的方式,使用更为先进的密钥交换认证。这是通过修改/etc/inetd.conf文件(可参见《设》文)和安装、配置SSH来实现的。现在SSH已经向SSH2全面转移,可在http://www.ssh.com/products/ssh/download.html下载。
3.为了加强网关的开机安全性,我们为BIOS设置口令,并为LILO设置口令,以防止未授权用户使用"Linux single"进入系统单用户模式。
4.在内、外两个边界路由器设置对Linux网关的直接访问限制。具体做法是,在FDDI环的上与Linux网关直接连接的一台900EF上禁止所有指向Linux网关两个IP(分别绑定在有线和无线两块网卡上)的IP包;在内部网的IBM 8274上设置禁止除源地址为网管IP以外的所有指向Linux网关IP的数据包。这里可能有些难以理解,有些人会认为因为这样阻断了Linux网关与外界的连接,使得Linux无法施行路由功能。事实上,所有目的地址不是Linux网关IP的数据包仍然可以通过网关,被正常路由。在这个方案中,把Linux看作一个可管理的网络设备更恰当。
通过以上的设置,我们几乎可以保证,除了IPChains和路由部分以外,即使Linux有后门,黑客也无法利用之。
然后是通过在Linux网关上设置IP包过滤防火墙来增强内部网的安全性。设置时,我们通过拒绝外来的SYN包来禁止从Internet向内部网发起主动TCP连接。仅允许指向特定IP特定端口(比如E-mail服务器的25端口和Web服务器的80端口)的数据包通过。这样基本上挡住了Internet对内部网络的攻击。这样设置后,内部网络的用户基本上可以透明地访问Internet,对于FTP等少数需要反向连接的应用,在客户端使用被动模式就可以使其恢复正常了。
总结
我们顺利解决了长期困扰B大厦网络的一系列问题。通过Linux无线网关/防火墙,我们节省了一台昂贵的专用无线网桥,在减少路由跃点数的同时建立起包过滤防火墙,基本解决了安全问题。还省出2个24位掩码网段的IP地址。当然,最重要的是不再有网络瓶颈,Internet访问速度得到了显著提高。可以说,我们事半功倍地完成了网络的升级和改造计划。
方兴未艾的无线网络技术
其实,无线网络技术已经发展了很久。AT&T(后来的lucent、avaya)早在20世纪90年代初就开发出了无线局域网技术和产品。1997年,IEEE 802.11无线局域网标准正式问世。802.11规定无线网络设备使用2.4GHz到2.4835GHz的频带进行通讯。在直序扩频(DSSS)方式下可提供2Mbps的传输速率,而在跳频扩频(FHSS)方式下可提供1Mbps的传输速率。802.11规定了漫游功能,使装有无线网络设备的系统可以在位置改变时自动选择新的接入点而保持与网络的连接。1999年秋天发布的802.11b将传输速率提高至11Mbps,并增加了自适应降速功能和SNMP协议的管理信息库(MIB)等特性。一般来说,相同标称速率下,无线局域网要比有线以太网低很多。这主要是因为无线网采用了与传统以太网不同的介质访问控制(MAC)协议,即CSMA/CA(带冲突避免的载波侦听多路访问),比以太网的CSMA/CD(带有冲突检测的载波侦听多路访问)效率低。
本文介绍的是无线局域网的一种扩展应用,即使用高增益天线扩展两个无线节点间的连接距离,最远可达几十公里,然后在两端分别与有线以太网桥接,实现两个局域网的远程连接。
在Internet浪潮和联网设备多样化趋势的共同推动下,无线网络技术近两年以前所未有的高速发展。蓝牙和HomeRF等技术相继面世。
蓝牙(Bluetooth)是由Ericsson、Nokia、IBM、Intel、Toshiba等公司在1998年联合提出的,面向短距离,低功率,低成本的应用环境,也就是手机、PDA、笔记本电脑等移动设备间的通讯。蓝牙的传输距离在10m以内,如果增加天线可以把距离增加到100m。蓝牙的最大传输速率为1Mbps,目前正在产品化。蓝牙已经获得了业界的广泛支持。IEEE最近在802.15标准中采用了蓝牙技术,微软的下一代操作系统Whistler也将支持蓝牙。和IEEE 802.11b一样,蓝牙也采用被称为工业/科学/医学(ISM)频带的2.4GHz频带进行通讯,蓝牙和无线局域网之间会相互影响。
HomeRF基于共享无线访问协议(Shared Wireless Access Protocol,SWAP),面向家庭应用,用来实现家庭网络设备的互联和资源共享,可提供1.6Mbps的传输速率。HomeRF最早是由Proxim开发的,得到Compaq、IBM、Intel和Motorola等业界巨人的支持。最近,美国联邦通讯委员会接受了HomeRF工作组的要求,将SWAP使用的2.4GHz频段中的跳频带宽增加为原来的5倍,使HomeRF能够传输实时音乐和视频信息。目前市场上已经出现了多种HomeRF设备。
与802.11b相比,HomeRF和蓝牙的共同优势在于成本低廉。802.11b主要面向商用环境,而HomeRF和蓝牙分别面向家用和移动通讯领域。三者相互之间的定位存在交叉,将展开一定的竞争,但总的来说会各自独立发展。
用不用Linux?
B大厦的网络虽然包含多种多样的操作系统平台,但在整体上是采用了微软的解决方案。网络中各种服务和应用都能很好地协同工作,并可享受充分的技术支持。出于个人喜好,我们曾经试着安装Linux系统(通过Samba)作为文件服务器,结果却差强人意,Linux的设置管理要比Windows复杂的多,妨碍了我们对各服务器进行统一的管理。而且,Linux缺乏必要的技术支持。对Linux的使用取决于网管人员的技术水平,一旦发生网管人员不能解决的事故就可能造成重大损失,这对于一个企业网络来说是不可接受的。而为单独的Linux服务器和发生可能性非常小的故障去购买Linux服务又显然是得不偿失的。事实证明,在一个充斥着Windows的网络中,使用基于任何其他平台的服务器都必须考虑到和已有网络(不仅包括服务器,还包括工作站)的集成,否则没有实际意义。Linux同样如此。在服务器领域,Linux更适用于较为单一的应用场合,比如网站的Web/Mail/FTP服务器等。
相比之下,Linux的路由功能是值得大书特书的。因为Linux诞生于Internet并和多数Unix在源代码级兼容,其路由部分是天生的强项,在业界具有良好的口碑。使用Windows NT/2000也能构建无线网关。当时Windows 2000 已经发布了Beta 2测试版本,我们发现Windows 2000在路由方面比Windows NT 4.0有了质的提高,但当时Windows 2000尚不支持我们选择的无线网设备。更重要的是,Windows 2000不具备Linux的高度可定制性,使用Linux,我们将内核经过精简定制,编译为300KB。在一台Pentium MMX 166、32MB内存的机器上仍能保证有大量资源空闲,而同样的配置远不能Windows 2000的需求。而且,虽然Windows 2000的路由组件在易用性方面较Linux具有优势,但在功能上不及Linux丰富完整,对于在安全方面要求颇高的路由设备,网络管理人员应该进行尽量缜密的设置,易用性的考虑变得次要了。因此,我们使用开放、可控制的Linux。
如果从稳定性和安全性考虑,使用FreeBSD或OpenBSD可能要比Linux略胜一筹。但它们当时尚不支持我们的无线网卡,因此也就无从比较了。
无线网的缺点以及需要注意的问题
无线网发送的是微波信号,易被物体阻挡,可能受到地形(树木、高层建筑等)、天气或其他因素的影响。曾经有一个例子,某公司和总部的无线连接在工作时间每隔15分钟中断一次,下班后却正常。系统管理员进行了大量检查,排除了设备故障、人为、电压等各方面的因素,仍然没有找到原因,后来,一个偶然的机会、他发现在和总部的直线方向上有一个工地,本来工地是挡不住连接的,但在施工过程中,塔吊需要调转装货,正好每隔15分钟一次。而装货时塔吊的位置正好处于连线上,阻挡住了连接。因此,使用无线接入,不仅在安装时要确保两端可视无障碍,还要考虑到日后的发展变化,比如树木长高、建筑施工等。因此应尽量向市政建设等方面多加咨询。另外,虽然2.4GHz属于民用频段,但在使用时必须遵守当地的有关规定。最后,要特别注意微波束携带大量能量、穿透能力强,事实上2.4GHz的频段和微波炉的频段相近,因此一定要尽量避免人员在无线收发设备(指室外的高增益天线,室内的无线网设备是安全的)附近长期逗留,至于人体挡住微波束不仅会造成无线网络中断,还会直接对人体造成危害。
为中型网络选择路由协议
通常有3种选择: 静态路由、RIP和OSPF。RIP的使用最简单,几乎不需要设置,只要在所有的网络设备中打开RIP选项,整个网络就能自动学习路由,填充路由表。但在升级实验过程中我们发现了两个问题。首先,任何一台联网计算机或网络设备只要启动RIP并广播声称自己是Internet出口,就会给整个网络带来混乱。其直接的结果就是使内部网无法访问Internet。其次,RIP不能禁止用户在内部网中建立非授权的子网,假如有员工盗用任何正式的Internet IP建立了子网,就可以越过900EF的包过滤访问教育网以外的收费站点,并且不被记录(我们的制度允许内部网访问教育网的"免费"IP,对于非"免费"IP则必须经过代理服务器),这虽然可以通过在包过滤路由器上进行一定的配置来防止,但从根本来说这是由RIP的缺陷造成的。此外,这种情况还会导致和Internet上被盗用的地址产生冲突。三者之中,静态路由是最原始的方法。OSPF是为大型网络设计的,功能最为强大。OSPF没有了RIP的缺点,但要比RIP难配置。对于我们的网络来说,还是静态路由更加简明。因此,在网络升级的过程中,我们把所有的路由/交换设备都改为使用静态路由。