第 34 章 无线通讯

目录

34.1. 无线 LAN
34.2. 蓝牙
34.3. 红外线数据传送

摘要

可以通过多种方法使用 Linux 系统与其它计算机、手提电话或外围设备进行通信。WLAN(无线 LAN)可用于将便携式计算机联网。蓝牙可用于将单独的系统部件(鼠标、键盘)、外围设备、手提电话、PDA 和单独的计算机互相连接。IrDA 通常用于与 PDA 或手提电话的通讯。本章介绍所有这些技术和它们的配置。


34.1. 无线 LAN

无线 LAN 已成为移动计算的不可缺少的一部分。当今,大多数笔记本电脑都配有内置 WLAN 卡。用于 WLAN 卡无线通讯的 802.11 标准是由 IEEE 组织制订的。最初,此标准实现的最大传送速率是 2MBit/s。此后,此标准进行了多次补充以提高数据传送速率。这些补充定义了调制、传送输出和传送速率等详细内容:

表 34.1. 各种 WLAN 标准的概述

名称

频带 (GHz)

最大传送速率 (MBit/s)

注释

802.11

2.4

2

已过时;目前市场上不销售采用此标准的最终设备

802.11b

2.4

11

广泛采用

802.11a

5

54

较少使用

802.11g

2.4

54

向后兼容 11b

此外还有一些专有标准,如 Texas Instruments 对 802.11b 进行调整后形成的标准(有时也称为 802.11b+),其最大传送速率为 22MBit/s。但采用这种标准的卡的普及程度有限。

34.1.1. 硬件

SUSE Linux 不支持 802.11 卡。支持采用 802.11a、802.11b 和 802.11g 的大多数卡。现在新推出的卡通常符合 802.11g 标准,但采用 802.11b 的卡仍然是可用的。通常,支持具有以下芯片的卡:

  • Aironet 4500、4800

  • Atheros 5210、5211、5212

  • Atmel at76c502、at76c503、at76c504、at76c506

  • Intel PRO/Wireless 2100、2200BG、2915ABG

  • Intersil Prism2/2.5/3

  • Intersil PrismGT

  • Lucent/Agere Hermes

  • Ralink RT2400、RT2500

  • Texas Instruments ACX100、ACX111

  • ZyDAS zd1201

还支持许多很少用到且市面上不再有售的较早的卡。可在地址为 http://www.linux-wlan.org/docs/wlan_adapters.html.gzAbsoluteValue Systems 万维网站点上获得 WLAN 卡及其采用的芯片的详细列表。http://wiki.uni-konstanz.de/wiki/bin/view/Wireless/ListeChipsatz 概述了各种 WLAN 芯片。

有些卡需要固件图,固件图在初始化驱动程序时必须被装载到卡中。Intersil PrismGTAtmelTI ACX100 和 ACX111 就是这种情况。使用 YaST 联机更新可以方便地安装固件。SUSE Linux 附带了 Intel PRO-Wireless 卡的固件,在检测到此类型的卡时,YaST 将自动安装该卡。已安装系统的 /usr/share/doc/packages/wireless-tools/README.firmware 中提供了有关此主题的详细信息。

可通过运行 ndiswrapper 应用程序来使用不带本机 Linux 支持的卡。ndiswrapper 使用大多数 WLAN 卡附带的 Windows XP 驱动程序。

请遵循以下步骤来设置 ndiswrapper:

  1. 使用 YaST 安装包 ndiswrapper

  2. 为无线网络适配器下载相应的 Windows XP 驱动程序。使用 http://ndiswrapper.sourceforge.net/mediawiki/index.php/List 的受支持的卡列表中提及的驱动程序。来自您的网卡安装 CD 的未受测试的驱动程序可能可以工作,但是它们可能会导致意外问题。

  3. 解压缩存档文件。每个驱动程序包含带有 .inf 扩展名的文件以及一个或多个 DLL。作为 root 用户,使用命令 ndiswrapper -i driver_name.inf 安装驱动程序。它将所有必需的文件复制到 /etc/ndiswrapper/ 目录并为卡创建配置文件。

  4. 使用命令 ndiswrapper -l 检查已经正确安装了该驱动程序。

  5. 使用命令 modprobe ndiswrapper 装载模块。系统日志 /var/log/messages 指示成功或失败。

  6. 如果一切正常,可以输入 ndiswrapper -m 从而在系统启动时装载模块。

  7. 使用网络设备+网卡配置 YaST 中的无线网络适配器。将设备类型选择为无线,将配置名称选择为 O 并将模块名称选择为 ndiswrapper。保留其它字段为默认值。

在安装了包 ndiswrapper 之后,有关 ndiswrapper 的说明可以在 /usr/share/doc/packages/ndiswrapper/README.SUSE 中找到。有关 ndiswrapper 的详细信息,请参见该项目的万维网站点 http://ndiswrapper.sourceforge.net/support.html

34.1.2. 功能

在无线联网中,会使用各种技术和配置来确保连接的快速、高质量和安全。不同的操作类型适合不同的设置。很难选择正确的鉴定方法。各种可用加密方法有各自的优点和缺陷。

34.1.2.1. 操作方式

无线网络基本上可分为受控网络和特殊网络。受控网络具有一个管理元素:访问点。在这种方式(也称为基础结构方式)中,网络中的 WLAN 站的全部连接都通过访问点运行,访问点也充当以太网的连接点。特殊网络没有访问点。各个工作站直接互相通讯。在特殊网络中,传送范围和参与工作站的数目都受到很大限制。因此,采用访问点通常更加有效。甚至可以将 WLAN 卡用作访问点。大多数卡支持此功能。

与使用缆线连接的网络相比,无线网络中的数据更容易被截获,无线网络更容易受到攻击,所以各标准都包括了鉴定和加密方法。IEEE 802.11 标准最初的版本在术语 WEP 下对这些方法进行了说明。但是,WEP 被证明是不安全的(请参见 第 34.1.5.2 节 “安全性”),因此 WLAN 行业(组织名为 Wi-Fi 联盟)制订了一个名为 WPA 的新扩展,用以弥补 WEP 的缺陷。后来的 IEEE 802.11i 标准(也称为 WPA2,因为 WPA 基于 802.11i 的草案版本)包括 WPA 和其它一些鉴定和加密方法。

34.1.2.2. 鉴定

为了确保只有经过授权的工作站才能连接,受控网络中使用了多种鉴定机制:

打开

开放系统是不要求鉴定的系统。任何工作站都可以加入网络。不过,可以使用 WEP 加密(请参见 第 34.1.2.3 节 “加密”)。

共享密钥(按照 IEEE 802.11)

在此过程中,使用 WEP 密钥来进行鉴定。但不建议采用此过程,因为它使 WEP 密钥容易受到攻击。攻击者所需要做的就是在足够常的时间内监听站点和访问点之间的通信情况。在鉴定过程中,双方将交换相同的信息,一次使用的是加密形式,一次使用的是未加密形式。这使得可以使用适当的工具来重构建密钥。由于方法使用 WEP 密钥来进行鉴定和加密,因此不能提高网络的安全性。具有正确 WEP 密钥的站点可以鉴定、加密和解密。不具有密钥的工作站无法解密接收到的包。因此,无论它是否必须对本身进行鉴定都不能进行通讯。

WPA-PSK(按照 IEEE 802.1x)

WPA-PSK(PSK 代表“预共享密钥”)的工作方式与共享密钥过程类似。所有参与工作站和访问点需要相同的密钥。密钥长度为 256 位,并且通常作为通行密码来输入。此系统不需要像 WPA-EAP 那样的复杂密钥管理,并且更适合个人使用。因此,有时将 WPA-PSK 称为 WPA“家庭”。

WPA-EAP(按照 IEEE 802.1x)

实际上,WPA-EAP 不是一个鉴定系统,而是一个传输鉴定信息的协议。WPA-EAP 用于保护企业中的无线网络。在个人网络中,很少使用 WPA-EAP。因此,WPA-EAP 有时称为 WPA“企业”。

WPA-EAP 需要 Radius 服务器来鉴定用户。EAP 提供三种不同的方法用于连接和鉴定服务器:TLS(传输层安全)、TTLS(隧道传输层安全)和 PEAP(受保护的可扩展身份鉴定协议)。在 nutshell 中,这些选项的作用如下所示:

EAP-TLS

TLS 鉴定依赖于服务器和客户机的证书互相交换。首先,服务器为客户机(客户机会评估服务器)提供其证书。如果证书被认为有效,则接下来客户机会对服务器提供其证书。当 TLS 是安全的,它要求在网络中具有运转的认证管理基础结构。此基础结构在专用网络中很少见。

EAP-TTLS 和 PEAP

TTLS 和 PEAP 都是两个阶段的协议。在第一个阶段,将建立安全性,在第二个阶段,将交换客户机鉴定数据。在需要认证管理的情况下,它们所需的认证管理费用比 TLS 要少得多。

34.1.2.3. 加密

有多种加密方法可确保所有未授权用户不能读取无线网络中交换的数据包并且不能访问网络:

WEP(在 IEEE 802.11 中定义)

此标准使用 RC4 加密算法,最初密钥长度为 40 位,后来也使用 104 位的密钥。通常,将此长度声明为 64 位或 128 位,这取决于是否包括初始化矢量的 24 位。但是,此标准有一些缺陷。攻击者能够成功攻击此系统生成的密钥。不过,使用 WEP 总比根本不加密网络要好。

TKIP(在 WPA/IEEE 802.11i 中定义)

WPA 标准中定义的这一密钥管理协议使用与 WEP 相同的加密算法,但弥补了其缺陷。由于为每个数据包生成一个新密钥,从而有效阻止了对这些密钥的攻击。TKIP 与 WPA-PSK 一起使用。

CCMP(在 IEEE 802.11i 中定义)

CCMP 对密钥管理进行了说明。通常,它用于与 WPA-EAP 连接,但也可以与 WPA-PSK 一起使用。加密依照 AES 进行,该加密比 WEP 标准的 RC4 加密更强大。

34.1.3. 使用 YaST 进行配置

要配置您的无线网卡,请启动 YaST 网卡模块。这里还可以选择是使用 YaST 还是 NetworkManager 来管理网卡。如果选择 YaST,请在网络地址设置中选择设备类型无线接着单击下一步。在无线网卡配置(如 图 34.1 “YaST:配置无线网卡” 所示)进行 WLAN 操作的基本设置:

图 34.1. YaST:配置无线网卡

YaST:配置无线网卡
操作方式

我们可以将工作站以三种不同的方式集成到 WLAN 中。哪种方式合适取决于要在其中进行通讯的网络:特殊(对等网络,无访问点)、受控(网络由访问点管理)或(您的网卡应用作访问点)。要使用 WPA-PSK 或 WPA-EAP 方式,必须将操作方式设置为受控

网络名称 (ESSID)

为实现相互通讯,无线网络中的所有工作站都需要相同的 ESSID。如果未指定任何内容,则网卡会自动选择一个访问点,但它可能不是您所希望使用的。

鉴定方式

为您的网络选择合适的鉴定方法:开放共享密钥WPA-PSKWPA-EAP。如果选择了 WPA 鉴定,则必须设置网络名称。

专家设置

单击此按钮将打开一个对话框,用于对 WLAN 连接进行详细配置。下面的内容提供了此对话框的详细说明。

完成基本设置后,即可将您的工作站部署在 WLAN 中。

[Important]无线网络中的安全性

确保使用所支持的鉴定和加密方法之一来保护您的网络通讯。如果未加密 WLAN 连接,则第三方便可以截获所有网络数据。即使进行弱加密 (WEP) 也比根本不加密要好。相关信息请参考 第 34.1.2.3 节 “加密”第 34.1.5.2 节 “安全性”

根据所选的鉴定方法,YaST 会提示您在另一个对话框中微调这些设置。对于开放,无需进行任何配置,因为此设置实施的是无需鉴定的未加密操作。

WEP 密钥

设置密钥输入类型。选择通行密码ASCII十六进制。您最多可以保留 4 个不同的密钥来加密所传送的数据。单击多个密钥进入密钥配置对话框。选择密钥的长度:128 位64 位。默认设置是 128 位。在对话框底部的列表区域中,最多可以指定 4 个不同的密钥,您的工作站将使用这些密钥进行加密。按设置默认密钥可将其中一个密钥定义为默认密钥。除非更改默认设置,否则 YaST 会将第一个输入的密钥用作默认密钥。如果删除了标准密钥,则必须将其它密钥中的一个手工标记为默认密钥。单击编辑可以修改现有列表项或创建新密钥。此时将出现一个弹出窗口,提示您选择输入类型(通行密码ASCII十六进制)。如果选择的是通行密码,则输入一个单词或字符串,将从该单词或字符串按照先前指定的长度生成密钥。ASCII 要求为 64 位密钥输入 5 个字符,为 128 位密钥输入 13 个字符。如果选择的是十六进制,则按照十六进制表示法为 64 位密钥输入 10 个字符,或为 128 位密钥输入 26 个字符。

WPA-PSK

要输入用于 WPA-PSK 的密钥,请选择输入方法通行密码十六进制。在通行密码方式下,输入必须为 8 到 63 个字符。在十六进制方式下,请输入 64 个字符。

WPA-EAP

输入网络管理员提供的身份凭证。对于 TLS,提供客户机证书服务器证书。TTLS 和 PEAP 需要身份口令服务器证书是可选的。YaST 会在 /etc/cert 下搜索所有证书,因此将提供给您的证书保存到此位置中并将这些文件的访问权限限制为 0600(所有者读写)。

单击高级设置可进入 WPA-EAP 设置的高级鉴定对话框。选择 EAP-TTLS 或 EAP-PEAP 通信第二阶段的鉴定方法。如果在前面的对话框中已选择 TTLS,则选择自动MD5GTCCHAPPAPMSCHAPv1MSCHAPv2。如果已选择 PEAP,则选择自动MD5GTCMSCHAPv2。如果自动确定的设置不起作用,则 PEAP 版本可用于强制使用特定的 PEAP 实施。单击确定退出该对话框。

单击专家设置可退出 WLAN 连接的基本配置对话框并进入专家配置对话框。此对话框中有以下选项可用:

通道

只有在特殊方式下才需要指定 WLAN 工作站要在其上工作的通道。在受控方式下,网卡将自动搜索访问点的可用通道。在特殊方式下,可从提供的 12 个通道中选择一个,用于在您的工作站和其它工作站之间进行通信。在方式下,确定您的网卡应该在哪个通道上提供访问点功能。此选项的默认设置是自动

位速率

根据网络的性能,您可能要为从一点到另一点之间的传送设置特定位速率。在默认设置自动中,系统会尽可能地使用最高数据传送速率。一些 WLAN 卡不支持比特率设置。

访问点

在具有多个访问点的环境中,通过指定 MAC 地址可以预先选择多个访问点中的一个。

使用电源管理

当您在旅途中时,使用省电技术来最大限度地提高电池的运行时间。有关电源管理的详细信息,请参考 第 33 章 电源管理

34.1.4. 实用程序

hostap(包 hostap)用于将 WLAN 卡作为访问点运行。有关此软件包的详细信息,请访问项目主页 (http://hostap.epitest.fi/)。

kismet(包 kismet)是一个网络诊断工具,使用它可以监听 WLAN 包流量。通过这种方式,您可以检测到网络中的所有入侵企图。有关详细信息,请参见手册页和 http://www.kismetwireless.net/

34.1.5. 建立 WLAN 的提示和技巧

这些提示可帮助精确调整 WLAN 的速度、稳定性和安全性。

34.1.5.1. 稳定性和速度

无线网络的性能和可靠性主要取决于参与的工作站是否能够清楚地接收到来自其它工作站的信号。障碍物(例如,墙壁)极大地削弱了信号。信号强度越低,传送速率就越慢。在网络运行过程中,可以在命令行(Link Quality 字段)中使用 iwconfig 实用程序或在 KDE 中使用 KInternet 来检查信号强度。如果信号质量存在问题,可尝试将设备放在其它位置,或调整访问点天线的位置。很多 PCMCIA WLAN 卡都配有辅助天线,可充分提高接收效果。制造商指定的速率(例如 54MBit/s)是一个额定值,它表示理论最大值。实际上,最大数据吞吐量不大于该值的一半。

34.1.5.2. 安全性

如果要建立一个无线网络,则一定要记住,如果不实施任何安全措施,则传送范围内的任何人都可以方便地访问此网络。因此,一定要激活某种加密方法。所有 WLAN 卡和访问点都支持 WEP 加密。虽然这并非完全安全,但还是对潜在攻击者设置了一道屏障。WEP 通常可满足个人使用。WPA-PSK 的安全性更好,但不能在较早的访问点或具有 WLAN 功能的路由器中实施。在某些设备上,可以通过固件更新来实施 WPA。此外,Linux 在所有硬件部件上都不支持 WPA。在准备此文档时,WPA 只适用于采用 AtherosIntel PRO/WirelessPrism2/2.5/3 芯片的卡。在 Prism2/2.5/3 上,仅当使用 hostap 驱动程序时,WPA 才能运行(请参见 第 34.1.6.2 节 “有关 Prism2 卡的问题”)。如果 WPA 不可用,则使用 WEP 要好过不加密。在具有高级安全要求的企业中,无线网络工作时必须采用 WPA。

34.1.6. 查错

如果 WLAN 卡未能响应,则检查是否已下载所需的固件。请参见 第 34.1.1 节 “硬件”。以下几段介绍了一些常见问题。

34.1.6.1. 多个网络设备

现在的便携式计算机通常都有网卡和 WLAN 卡,如果使用 DHCP(自动地址指派)来配置这两个设备,则您可能会遇到名称解析和默认网关的问题。可以 Ping 路由器但不能浏览因特网就是这方面问题的典型示例。位于 http://portal.suse.com 的支持数据库提供了一篇有关这一主题的文章。要查找此文章,可以在搜索对话框中输入“DHCP”。

34.1.6.2. 有关 Prism2 卡的问题

采用 Prism2 芯片的设备有多个驱动程序可用。不同的卡与不同的驱动程序之间的适用性是不一样的。使用这些卡时,只有在使用 hostap 驱动程序时,才能实施 WPA。如果这样的卡不能正常工作或根本不工作,或者您要使用 WPA,请参见 /usr/share/doc/packages/wireless-tools/README.prism2

34.1.6.3. WPA

SUSE Linux 是最近才支持 WPA 的,并且仍然在开发中。因此,YaST 并不支持配置所有 WPA 鉴定方法。不是所有无线 LAN 卡和驱动程序都支持 WPA。一些卡需要更新固件以启动 WPA。如果要使用 WPA,请参见 /usr/share/doc/packages/wireless-tools/README.wpa

34.1.7. 参考信息

Jean Tourrilhes 开发了用于 Linux 的无线工具,他的因特网网页上有很多关于无线网络的有用信息。请参见 http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wireless.html