使用 hostapd 轻松实现强 WiFi 加密(1)
- UID
- 1066743
|
使用 hostapd 轻松实现强 WiFi 加密(1)
简介hostapd 是 Host Access Point 守护进程,提供对基于 Linux 的无线接入点的强 WPA2 加密和身份验证。配置 hostapd 非常简单,它支持 WPA2-Personal 和 Enterprise,提供了对 WPA2-Personal 的独特修改,可让管理它变得更复杂或更简单。
WPA2-Personal 和 WPA2-Enterprise 之间的差距非常大。WPA2-Enterprise 提供了最强的无线安全性,但是管理它非常复杂,因为它需要一个带有服务器和客户端证书的公共密钥基础架构 (PKI) 和一个认证机构。大多数商店使用 FreeRADIUS 服务器来管理所有这些内容,当您有少量接入点需要管理,或者是想要为临时事件或项目设置服务器时,这非常耗时。
对于小商店而言,WPA2-Personal 应该非常简单或非常复杂,因为它对所有用户使用一个共享密钥,部署非常简单,但是却提出了持续安全和管理威胁。删除一个用户并没有什么好方法,但是无论何时,只要更改了密钥,就必须为所有用户分发新密钥,您无法排除不需要密钥的用户,因为它们只需要一个内部的朋友接收新密钥即可。这更适用于半公共的热点;例如,您想为访问您办公室的人员提供免费 WiFi,但并不是为附近所有吃白食的人提供免费 WiFi。
hostapd 为您提供了一个很好的中间平台,可为每个用户使用具有私有密钥的 WPA2-Personal,而不是为所有人使用一个共享密钥。这些密钥只是 hostapd 配置文件和客户端上的密码,因此 PKI 或单独的身份验证服务器不是必需的。
记住,只有客户端和无线路由器之间的通信是加密的,为了防止窃听无线连接;没有提供端到端加密。端到端加密是 OpenVPN 或 SSH 隧道等软件的工作。
先决条件您需要一个包含 hostapd 的无线接入点,或者需要允许您安装 hostapd 的 iw 命令,而您需要在 Linux PC 上提供 wpa_supplicant,以便进行测试。您的接入点应支持 hostapd 0.6.8 或其更高版本(目前的 hostapd 版本是 0.7.3)。hostapd V0.6.8 实现了 nl80211 驱动程序。在 Linux 内核中,mac80211 框架支持的所有无线网卡 (WIC) 都不需要特殊的驱动程序;它已经内置到了本机支持中。
nl80211 驱动程序将加密、身份验证、密钥旋转和其他接入点功能都移动到了用户空间中。如果您通常使用 iwconfig 命令,那么现在请开始使用 iw 命令,因为 iwconfig 无法在 V0.6.8 上工作。
DD-WRT 和 OpenWRT 是类似 Linksys WRT54G 类型的设备等消费级无线路由器的两个出色的开源固件置换(请参见 部分),它们包含 hostapd。它们都有广泛的数据库支持设备。我喜欢在 Soekris、PC Engines 和 MicroTik 单板计算机上使用删减版 Linux 创建自己的 WAP(请参见 部分)。这些小插件很耐用,并且我拥有完全控制权和灵活性。
如果您想要构建自己的 WAP,最重要的组件是具有本机 Linux 内核支持的 WIC,它支持所有重要的 AP 模式。这种模式也称为接入点、主、基础架构模式,并且需要一个无线接入点。许多无线网络接口都不支持 AP 模式,仅支持删减到最少功能的客户端设备支持 AP 模式。我坚持使用 Atheros 无线接口,因为它们的功能全面,并且在其旧版 Madwifi 驱动程序和新 mac80211 驱动程序中都受到良好支持。
请避免在您的接入点上使用 ndiswrapper。当您没有其他选择时,这是让 WIC 工作的一种好方法,但是它同时也隐藏了大量问题,所以请坚持使用具有本机内核支持的优秀无线接口。
访问 Linux Wireless.org 设备数据库,查找受支持的接口,以及与无线驱动程序和用户空间命令相关的大量信息(请参见 部分)。Linux Wireless 项目在清理和协调 Linux 无线堆栈方面表现非常出色。
在客户端上这样做更简单一些,因为几乎所有具有本机 Linux 内核支持的所有与 WiFi 兼容的 WIC 都可以连接到具有强 WPA2 安全性的接入点。Mac 和 Windows® 客户端还可以使用良好的基于 Linux 的接入点。
探索 WIC您如何知道 WIC 支持哪些功能?iw 会告诉您。请参阅 “受支持的接口模式” 部分,了解它是否支持 AP 模式。 显示了一个示例。
清单 1. iw 清单1
2
3
4
5
6
7
8
9
10
| $ iw list
[...]
Supported interface modes:
*IBSS
*managed
*monitor
*AP
*AP/VLAN
|
本示例显示了一个支持 AP 模式和无线 VLAN 的 WIC。IBSS 是临时模式。监控模式用于探查无线网络。所有 WIC 都支持托管模式,它是接入点的客户端。
在使用 Madwifi 驱动程序的 Atheros 接口上,尝试使用 wlanconfig。请参见 。
清单 2. wlanconfig 的示例1
2
3
| # wlanconfig ath0 list caps
ath0=7782e40f<WEP,TKIP,AES,AES_CCM,HOSTAP,TXPMGT,SHSLOT,SHPREAMBLE,TKIPMIC,WPA1,WPA2,BURST
,WME>
|
这表明它支持 AP 模式,以及 WPA2 和强 AES-CCMP 密码。
另一种探查无线硬件的好方法是使用非常有用的 hwinfo 命令。它具有一个特殊的无线接口选项,会生成大量各式各样的信息,如 中的代码段所示:
清单 3. WIC 的 hwinfo 数据示例1
2
3
4
5
6
7
8
9
10
| $ hwinfo --wlan
27: PCI 500.0: 0282 WLAN controller
Model: "Intel WLAN controller"
Driver: "iwlagn"
Driver Modules: "iwlagn"
WLAN encryption modes: WEP40
WEP104 TKIP CCMP
WLAN authentication modes: open sharedkey wpa-psk wpa-eap
Status: iwlagn is active
Driver Activation Cmd: "modprobe iwlagn"
|
hwinfo 命名驱动程序,说明支持的加密方式和设备的名称等内容。您还可以对 PCI 网络接口使用 lspci ,并对 USB 接口使用 lsusb。此 WIC 将不会充当一个接入点,因为 hostapd 不支持 iwlagn 驱动程序,并且在所有情况下,它都不支持 AP 模式。(它是低预算的集成 Centrino 芯片的一部分。) |
|
|
|
|
|