配置WiFi STA 的 hotspot 2.0 + EAP-AKA 认证

news/2024/8/21 0:22:11 标签: 服务器, linux, c语言, 物联网, stm32

背景介绍

 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


http://www.niftyadmin.cn/n/5555724.html

相关文章

Redis 布隆过滤器性能对比分析

redis 实现布隆过滤器实现方法: 1、redis 的 setbit 和 getbit 特点:对于某个bit 设置0或1,对于大量的值需要存储,非常节省空间,查询速度极快,但是不能查询整个key所有的bit,在一次请求有大量…

Unable to obtain driver using Selenium Manager: Selenium Manager failed解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

软件供应链安全:如何防范潜在的攻击?

来源:https://thehackernews.com/2024/06/practical-guidance-for-securing-your.html 软件生产组织面临越来越大的监管和法律压力,要求其保护供应链并确保软件的完整性,这不足为奇。在过去几年里,软件供应链已经成为攻击者越来越…

Vue3项目如何使用npm link本地测试组件库

一、组件库操作 1、在组件库项目中先运行npm run lib,其效果如下 2、在组件库项目中在运行npm link,其效果如下 会创建一个全局的软连接指向本地的组件库 二、Vue3项目使用 1、在项目中运行 npm link 组件名称(即:组件库packag…

【正点原子i.MX93开发板试用连载体验】录音小程序采集语料

本文最早发表于电子发烧友论坛:【新提醒】【正点原子i.MX93开发板试用连载体验】基于深度学习的语音本地控制 - 正点原子学习小组 - 电子技术论坛 - 广受欢迎的专业电子论坛! (elecfans.com) 接下来就是要尝试训练中文提示词。首先要进行语料采集,这是一…

【RAGFlow】Ubuntu系统下实现源码启动RAGFlow

一、RAGFlow 是什么? RAGFlow 是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用…

使用Java实现图片大小压缩

使用Java实现图片大小压缩 在现代应用程序中,图片的大小对于存储和传输至关重要。较大的图片文件可能会影响网站的加载速度和用户体验。通过压缩图片大小,可以显著减少文件尺寸,提高性能。本文将介绍如何使用Java进行图片压缩,具…