RADIUS 服务器之 hostapd 配置说明
本文提供了企业级加密的 RADIUS 服务器配置环境搭建,供读者参考。
一. 安装 hostapd
$ sudo apt-get install libnl1 libnl-dev libnl-doc
$ sudo apt-get install libssl-dev
$ sudo apt-get install bridge-utils
$ sudo apt-get install hostapd
如果安装成功, 下面命令会显示 hostapd 版本:
hostapd -v
如:
hostapd v2.4
User space daemon for IEEE 802.11 AP management,
IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
Copyright (c) 2002-2015, Jouni Malinen <j@w1.fi> and contributors
二. 配置 hostapd
hostapd
可提供多种服务,我们只需要其中的某几个服务,用户可通过下面的方式配置 hostapd
.
配置前,看下 /etc/hostapd
目录下是否有其他文件,如果有,请清空。
2.1 配置 hostapd.conf
hostapd.conf
配置 hostapd 的工作方式,详细配置可参考 hostapd.conf
官方文档.
我们这里提供了一个 EAP-TLS
方式的 hostapd.conf
, 将其保存到 /etc/hostapd/
目录下
driver=none
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
dump_file=/tmp/hostapd.dump
eap_server=1
eap_user_file=/etc/hostapd/hostapd.eap_user
ca_cert=/etc/hostapd/certs/ca.crt
server_cert=/etc/hostapd/certs/server.pem
private_key=/etc/hostapd/certs/server.key
radius_server_clients=/etc/hostapd/hostapd.radius_clients
radius_server_auth_port=1812
说明:
- driver=none 表示不控制具体的网卡
- eap_server=1 表示启用 EAP server 服务
- eap_user_file 配置用户 eap 参数
- ca_cert, server_cert, private_key 用于 EAP-TLS 方式中的双向认证
- radius_server_clients 和 radius_server_auth_port 指出授权 radius client 和端口
- 如果使用
EAP-PEAP
或EAP-TTLS
方式,请注释 ca_cert 行
2.2 配置 hostapd.eap_user
hostapd.eap_user
配置 EAP 方式以及交互过程的一些参数,详细配置可参考 hostapd.eap_user
官方文档。
我们这里提供了一个 EAP-TLS
方式的 hostapd.eap_user
,将其保存到 /etc/hostapd/
目录下
# hostapd user database for integrated EAP server
# This file enables all EAP methods used in WFA testing:
#EAP-TLS,EAP-TTLS/MSCHAPv2,PEAPv0/EAP-MSCHAPv2,PEAPv1/EAP-GTC, EAP-SIM,EAP-AKA, EAP-FAST
# Each line must contain identity, EAP method, and optional password separated with whitespace (space or tab). Identity and password must be double quoted ("user").
# Phase 1 users:q
#* PEAP
#* TTLS
* TLS
# Phase 2 (tunnelled within EAP-PEAP/TTLS/FAST) users
#"user" TTLS-MSCHAPV2 "password" [2]
#"espressif" TTLS-MSCHAPV2 "test11" [2]
"user" MSCHAPV2 "password" [2]
"espressif" MSCHAPV2 "test11" [2]
#"*" MSCHAPV2 "*" [2]
说明:
- * TLS:
*
表示第一阶段identity
可以任意配置,TLS
表示第一阶段用TLS
方式(需要双向认证) - 后面有
[2]
表示第二阶段需要用的配置,三列分别对应用户名
,EAP 方式
,密码
- 如果使用
EAP-PEAP
方式,请增加* PEAP
行 - 如果使用
EAP-TTLS
方式,请增加* TTLS
行和#"espressif" TTLS-MSCHAPV2 "test11" [2]
行
2.3 配置 hostapd.radius_clients
hostapd.radius_clients
用于配置 RADIUS client,详细配置可参考 hostapd.radius_clients
官方文档。
我们这里提供了一个任意 RADIUS client 通过密码 12345678
访问 RADIUS 服务的配置 hostapd.radius_clients
,将其保存到 /etc/hostapd/
目录下
# IP of AS pre-shared key
#192.168.0.139/24 radiusserverpasswd
0.0.0.0/0 12345678
2.4 配置证书相关
hostapd.conf
中指定了 ca_cert
, server_cert
, private_key
路径,因此我们新建目录 /etc/hostapd/certs
, 将我们的 ca 证书 ca.crt
,服务器证书 server.pem
和私钥 server.key
放在该目录下。
三. 启动 hostapd
sudo hostapd -dddt /etc/hostapd/hostapd.conf
- -ddd 表示显示更多的调试信息
- -t 表示显示时间戳
四. 配置 AP
上述环境搭建好后,即可在 AP 上配置企业级加密了。
如 D-LINK: DIR-619L
配置如下:
- RADIUS 服务器 IP 地址对应启动 hostapd 主机的 IP
- 端口
1812
对应hostapd.conf
中配置 - 共享秘钥
12345678
对应hostapd.radius_clients
中配置
重启路由器提供服务
重启后,任何想加入 DLINK 的设备都需要提供对应的连接配置,如 identity
, 用户名
, 密码
等, 当然我们也可以在 hostapd 更改配置已提供更多的服务和权限。