「hostapd」

问题描述

在 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