问题描述
在 IEEE 802.11 AP 和 IEEE 802.1X/WPA/WPA2/EAP 最初的认证器,hostapd 是 Host AP 驱动程序的可选用户空间组件。它为内核驱动程序中的基本的IEEE 802.11管理增加了更多功能:使用外部RADIUS身份验证服务器进行基于MAC地址的访问控制、IEEE 802.1X身份验证器和动态WEP密钥、RADIUS计费、WPA/WPA2(IEEE 802.11i/RSN)验证器和动态TKIP/CCMP密钥。
当前版本包括:对其他驱动程序的支持、集成的EAP认证器(即允许完全认证,不需要外部RADIUS认证服务器)、用于EAP认证的RADIUS认证服务器。
以下 driver 可以与 hostapd 配合使用:
- mac80211 based drivers with support for master mode [linux]
- Host AP driver for Prism2/2.5/3 [linux]
- Driver interface for FreeBSD net80211 layer [kfreebsd]
- Any wired Ethernet driver for wired IEEE 802.1X authentication.
安装 hostapd 服务
通过软件仓库安装
# Ubuntu 16.04.2 LTS apt-get install hostapd
通过源码编译安装
第一步,安装 libnl-3-dev 包
# Ubuntu 16.04.2 LTS apt-get install libnl-3-dev libnl-genl-3-dev
第二步,下载 hostapd 程序
官网地址: http://w1.fi/hostapd
hhostapd-2.6.tar.gz: http://w1.fi/releases/hostapd-2.6.tar.gz
第三步,创建配置文件
#!/bin/bash # 1. 解压源码,进入源码目录下的hostapd目录中。 tar -xf hostapd-2.6.tar.gz cd hostapd-2.6/hostapd # 2. 创建配置文件 cp defconfig .config
第四步,修改.config配置文件
共计两处:
# 省略无关内容。。。 ########################################################### # 第一处,指定libnl库的位置 ########################################################### # CFLAGS += -I$<path to libnl include files> LIBS += -L/usr/include # 省略无关内容。。。 ########################################################### # 第二处,指定libnl库的版本 ########################################################### # 如果使用libnl 3.2,修改: # Use libnl 3.2 libraries (if this is selected, CONFIG_LIBNL20 is ignored) CONFIG_LIBNL32=y # 如果使用libnl 2.x,修改: # Use libnl v2.0 (or 3.0) libraries. CONFIG_LIBNL20=y
第五步,编译、安装
# 编译 make # make结束后,在/path/to/hostapd-2.6/hostapd目录下,生成hostapd和hostapd_cli两个文件 # 进行安装,默认安装hostapd和hostapd_cli到/usr/local下 # 或者复制到指定的目录下 make install
安装的可执行程序
hostapd
在后台运行的“守护进程”,并且用作控制身份验证的后端组件。
hostapd,是IEEE 802.11 AP及IEEE 802.1X/WPA/WPA2/EAP/RADIUS认证器,是在后台运行的“守护进程”,并且用作控制身份验证的后端组件。hostapd是一个用户空间的AP和认证Server。它实现了IEEE 802.11 AP管理、IEEE 802.1X/WPA/WPA2/EAP认证装置、RADIUS认证服务。当前版本支持Linux(Host AP, mac80211-based drivers)和FreeBSD(net80211)。
hostapd被设计为一个在后端运行的守护进程,并作为控制认证的后端组件。hostapd支持分离的前端程序,并包含了一个基于文本的前端程序hostapd_cli。
命令行语法格式,hostapd [-hdBKtv] [-P <PID file>] <configuration file(s)>
命令选项及含义,下面是选项的简述。详细内容可以在终端里运行hostapd命令来查看。
-h,显示帮助手册.
-d,显示debug信息。
-dd,显示更多的debug信息。
-B,做为守护进程在后端运行。
-P <PID file>,PID文件的路径。
-K,在debug信息中显示key数据。
-t,在某些debug信息中显示时间戳。
-v,显示hostapd的版本号。
hostapd_cli
一个简单的、基于文本交互的前端程序,用于管理hostapd服务。是hostapd服务的命令行接口,用于管理hostapd;
hostapd.conf,配置文件基础
http://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf
该配置文件下载于:http://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf
是官方默认提供的配置文件。
An example configuration file(官网首页提供的默认配置文件)
http://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf
参考文献
Homepage: http://w1.fi/hostapd
SourceCode: http://w1.fi/releases/hostapd-2.6.tar.gz