一.hostapd简介 hostapd是一个用户空间的守护程序,主要用在接入结点(AP)和认证服务器上。它实现了IEEE802.11接入结点管理,IEEE802.1X/WPA/WPA2/EAP认证以及RADIUS客户端、EAP服务器和RADIUS认证服务器的功能。当前版本支持 Linux(Host AP,madwifi,mac80211-based drivers)和FreeBSD(net80211)。 支持的WPA/IEEE 802.1i/EAP/IEEE 802.1X特性 1)WPA-PSK加密(“WPA-Personal”) 2)WPA with EAP(“WPA-Enterprise”) 3)CCMP,TKIP,WEP104,WEP40密钥管理 4)WPA and full IEEE 802.11i/RSN/WPA2 5)RSN:PMKSA缓存,预认证 6)IEEE 802.11r(加强漫游功能) 7)IEEE 802.11w 8)RADIUS统计 9)RADIUS authentication server with EAP 10)Wi-Fi Protected Setup(WPS) 二.hostapd基本结构 三.源代码阅读所需知识 如果想读懂hostapd源代码,需要具备以下基础知识: 1) c语言编程能力 2) 对802.11i标准有比较深入的了解 3) 对无线局域网相关基础知识有一定的了解 分享到
Hostapd简介:
简单说, hostapd 能够使得无线网卡切换为 master 模式,模拟 AP( 通常可以认为是路由器 ) 功能,也就是我们说的软 AP(Soft AP) 。
Hostapd 的功能就是作为 AP 的认证服务器,负责控制管理 stations( 通常可以认为带无线网卡的 PC) 的接入和认证。
通过 Hostapd 可以将无线网卡切换为 AP/Master 模式,通过修改配置文件,可以建立一个开放式的 ( 不加密 ) 的, WEP , WPA 或 WPA2 的无线网络。并且通过修改配置文件可以设置无线网卡的各种参数,包括频率,信号, beacon 包时间间隔,是否发送 beacon 包,如果响应探针请求等等。还可以设置 mac 地址过滤条件等。具体可以参考它的配置文件说明 。
下面就从官网上摘下的部分原因及翻译。翻译的不好请见谅。
hostapd is an IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator.
Hostapd 是 IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP/RADIUS 的认证器
hostapd is a user space daemon for access point and authentication servers. It implements IEEE 802.11 access point management, IEEE 802.1X/WPA/WPA2/EAP Authenticators, RADIUS client, EAP server, and RADIUS authentication server. The current version supports Linux (Host AP, madwifi, mac80211-based drivers) and FreeBSD (net80211).
Hostapd是一个访问点以及认证服务器的运行于用户空间的守护程序。它实现了IEEE 802.11接入带你(Access Point)的管理功能,是IEEE 802.1X/WPA/WPA2/EAP的认证器,是 RADIUS client, EAP server, and RADIUS认证服务器。当前版本的hostapd支持linux上Host AP,madwifi和基于mac80211协议栈的驱动程序,以及FreeBSD上net80211协议栈的驱动程序。
hostapd is designed to be a "daemon" program that runs in the background and acts as the backend component controlling authentication. hostapd supports separate frontend programs and an example text-based frontend, hostapd_cli, is included with hostapd.
Hostapd是一个后台守护进程,作为后台组件来控制和管理认证功能。Hostapd支持多个前台程序。hostapd_cli,就是一个跟hostapd一起的命令行前台程序。
支持特性
Supported WPA/IEEE 802.11i/EAP/IEEE 802.1X features
支持WPA/IEEE 802.11i/EAP/IEEE 802.1X
- WPA-PSK ("WPA-Personal")
- WPA with EAP (with integrated EAP server or an external RADIUS backend authentication server) ("WPA-Enterprise")
- key management for CCMP, TKIP, WEP104, WEP40
- WPA and full IEEE 802.11i/RSN/WPA2
- RSN: PMKSA caching, pre-authentication
- IEEE 802.11r
- IEEE 802.11w
- RADIUS accounting
- RADIUS authentication server with EAP
- Wi-Fi Protected Setup (WPS)
- Supported EAP methods (integrated EAP server and RADIUS authentication server)
- EAP-TLS
- EAP-PEAP/MSCHAPv2 (both PEAPv0 and PEAPv1)
- EAP-PEAP/TLS (both PEAPv0 and PEAPv1)
- EAP-PEAP/GTC (both PEAPv0 and PEAPv1)
- EAP-PEAP/MD5-Challenge (both PEAPv0 and PEAPv1)
- EAP-TTLS/EAP-MD5-Challenge
- EAP-TTLS/EAP-GTC
- EAP-TTLS/EAP-MSCHAPv2
- EAP-TTLS/MSCHAPv2
- EAP-TTLS/EAP-TLS
- EAP-TTLS/MSCHAP
- EAP-TTLS/PAP
- EAP-TTLS/CHAP
- EAP-SIM
- EAP-AKA
- EAP-AKA'
- EAP-PAX
- EAP-PSK
- EAP-SAKE
- EAP-FAST
- EAP-IKEv2
- EAP-GPSK
Following methods are also supported, but since they do not generate keying material, they cannot be used with WPA or IEEE 802.1X WEP keying.
同样支持下面的这些功能,但是这些不生成建钥资料,所以它们不能够WPA 或者 IEEE 802.1X WEP一同使用
- EAP-MD5-Challenge
- EAP-MSCHAPv2
- EAP-GTC
- EAP-TNC (Trusted Network Connect; TNCS, IF-IMV, IF-T, IF-TNCCS)
支持的无线网卡/驱动
- Linux mac80211 drivers
- Host AP driver for Prism2/2.5/3
- madwifi (Atheros ar521x)
- BSD net80211 layer (e.g., Atheros driver) (FreeBSD 6-CURRENT)
如何确定一款无线网卡是否能被hostpad支持
以 ubuntu10.04 为例
执行 sudo aptitude install iw ,安装无线配置工具 iw
执行 iw list ,如果在下面的结果中出现 AP 字样,那么就表示这款网卡支持 hostapd
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* WDS
* monitor
* mesh point
推荐网址
http://hostap.epitest.fi/hostapd/
http://wireless.kernel.org/en/users/Documentation/hostapd
https://help.ubuntu.com/community/WifiDocs/MasterMode
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=hostapd/hostapd.conf