背景介绍
hotspot 2.0 :
无需客户手动输入WiFi密码,使用STA端设备内固定存储的认证信息,进行接入认证。
EAP-AKA:
使用SIM卡信息进行AAA认证。
hostapd 、wpa_supplicant 版本:
v2.10-devel
拓扑
STA ----> AP -----> Radius -----> HLR
STA配置
wpa_supplicant 配置文件
文件名:
/var/run/wpa_supplicant.conf
内容如下:
ctrl_interface=/var/run/wpa_supplicant
country=CN
hs20=1
interworking=1
auto_interworking=1
cred={
priority=1
realm="pengyang.com"
imsi="46068-0000000116"
milenage="00112233445566778899AABBCCDDEEFF:00112233445566778899AABBCCDDEEFF:000000000000"
domain="pengyang.com"
roaming_consortium=021122
eap=AKA
}
运行进程
wpa_supplicant -i ath5 -c /var/run/wpa_supplicant.conf -ddd
AP配置
hostapd 配置文件
文件名:
/var/run/hostapd-ap.conf
内容如下:
driver=nl80211
interface=ath1
channel=9
ieee80211n=1
ieee80211ac=1
ieee80211ax=1
ht_capab=[LDPC][SMPS-DYNAMIC][TX-STBC][RX-STBC-1][MAX-AMSDU-7935][DSSS_CCK-40] [HT40-] [SHORT-GI-40]
vht_capab=[MAX-MPDU-11454][RXLDPC][TX-STBC-2BY1][RX-STBC1][SU-BEAMFORMER][SOUNDING-DIMENSION-2][SU-BEAMFORMEE][BF-ANTENNA-4][MAX-A-MPDU-LEN-EXP7][MU-BEAMFORMER][RX-ANTENNA-
hw_mode=g
wmm_enabled=1
dtim_period=1
owe_ptk_workaround=1
ctrl_interface=/var/run/hostapd-wifi1
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=123456
acct_server_addr=127.0.0.1
acct_server_port=1813
acct_server_shared_secret=123456
eapol_key_index_workaround=1
ieee8021x=1
auth_algs=1
wpa=2
wpa_pairwise=CCMP
ssid=pengyang_HS20
bridge=br-lan
ieee80211w=0
wpa_key_mgmt=WPA-EAP
hs20=1
interworking=1
manage_p2p=1
tdls_prohibit=1
domain_name=pengyang
anqp_3gpp_cell_net=460,68
nai_realm=0,pengyang.com,23
anqp_domain_id=0
运行进程
/usr/sbin/hostapd -P /tmp/hostapd_wifi_pid -dd /var/run/hostapd-ap.conf
Radius配置
Freeradius不支持EAP-AKA,难以找到相关patch。所以在AP设备上再开启一个hostapd进程作为Radius服务器。
配置文件
文件名:
/var/run/hostapd-radius.conf
文件内容如下:
driver=none
interface=br-lan
ctrl_interface=/var/run/hostapd-wifi1
ctrl_interface_group=0
ieee8021x=1
eapol_key_index_workaround=1
eap_server=1
eap_user_file=/etc/hostapd.eap_user
server_id=pengyang.com
eap_sim_db=unix:/tmp/hlr_auc_gw.sock
radius_server_clients=/etc/hostapd.radius_clients
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=123456
acct_server_addr=127.0.0.1
acct_server_port=1813
acct_server_shared_secret=123456
own_ip_addr=127.0.0.1
运行进程
/usr/sbin/hostapd -P /tmp/hostapd_wifi_pid -dd /var/run/hostapd-radius.conf
其中Radius配置文件:
#cat /etc/hostapd.eap_user
* AKA #都使用 EAP-AKA 认证。
#cat /etc/hostapd.radius_clients
192.168.150.0/24 123456
127.0.0.1/24 123456
HLR配置
需要模拟一个蜂窝网络HLR,用于维护WiFi STA设备上SIM卡信息数据库,用于EAP-AKA认证。
运行进程
hlr_auc_gw -m /etc/hlr_auc_gw.milenage_db
hlr_auc_gw:
需要在 hostapd中Makefile使能编译该程序。
/etc/hlr_auc_gw.milenage_db 文件内容:
#IMSI Ki OPc AMF SQN
4116560000000116 00112233445566778899AABBCCDDEEFF 00112233445566778899AABBCCDDEEFF 61df 000000000000