首页 > 解决方案 > hostapd v2.9 上的 MACsec 设置问题

问题描述

我在使用最新的 hostap 版本 v2.9 进行有线连接时遇到 MACsec 设置问题。我的设置很简单(仅用于测试) - HOSTAP 和 RADIUS 在同一台机器上,通过 RADIUS 协议在 127.0.0.1 上进行通信;wpa_supplicant 正在从通过网络接口连接到 HOSTAP 的另一台机器请求安全的以太网访问。EAP TLS 用于 HOSTAP 的客户端授权。wpa_supplicant 和 HOSTAP 之间用于授权的 EAP 帧交换通过多播地址 01:80:c2:00:00:03 进行。

问题:

  1. wpa_supplicant 由 RADIUS 成功验证,这由 HOSTAP 发送的“成功”EAP 帧指示。此时 EAPOL-MKA 应该介入。
  2. wpa_supplicant 发送一个 EAPOL-MKA 帧,据我了解,它是一种心跳或指示器。HOSTAP 不响应任何 EAPOL-MKA 帧,之后也不发送任何 EAPOL 帧。
  3. EAPOL-MKA“指标”被 wpa_supplicant 重复 3 次以上,这就是结束。

在认证完成阶段来自 hostapd 的调试跟踪片段:

...

...

EAP:EAP 进入状态 SUCCESS2

enp0s8:CTRL-EVENT-EAP-SUCCESS2 08:00:27:6e:f4:d8

IEEE 802.1X: 08:00:27:6e:f4:d8 BE_AUTH 进入状态成功

enp0s8:STA 08:00:27:6e:f4:d8 IEEE 802.1X:发送 EAP 数据包(标识符 112)

IEEE 802.1X: 08:00:27:6e:f4:d8 AUTH_PAE 进入状态 AUTHENTICATED

enp0s8: STA 08:00:27:6e:f4:d8 IEEE 802.1X: 授权端口

enp0s8:STA 08:00:27:6e:f4:d8 IEEE 802.1X:已验证 - EAP 类型:13 (TLS)

IEEE 802.1X:外部通知 - 为 08:00:27:6e:f4:d8 创建 MKA

MACsec: 成功获取密钥 (len=64)

MSK: - hexdump(len=64): [已移除]

MACsec:无法从 EAPOL 状态机获取 SessionID

IEEE 802.1X:无法获得 EAP 会话 ID

...

...

上述跟踪的最后两行指向一个我无法解释的问题。请指教。我的 hostapd.conf 设置是:

ieee8021x=1

eapol_version=3

eapol_key_index_workaround=0

use_pae_group_addr=1

驱动程序=macsec_l​​inux

macsec_policy=1

eap_server=0

own_ip_addr=127.0.0.1

radius_client_addr=127.0.0.1

auth_server_addr=127.0.0.1

auth_server_port=1812

auth_server_shared_secret=testing123

acct_server_addr=127.0.0.1

acct_server_port=1813

acct_server_shared_secret=testing123

有趣的是,如果我使用相同的 hostapd 二进制文件,但将 hostapd.conf 更改为内置 EAP 身份验证器而不是外部 RADIUS 服务器,那么 EAPOL-MKA 会唤醒并成功启用 MACsec。在瘦情况下,在跟踪输出中未观察到“无法获取 SessionID...”行,并且 HOSTAP 发送 EAPOL-MKA 帧。

我的“好”案例的 hostapd.conf 设置与上面的配置不同,只有“eap_server=1”和用户文件和证书的路径。当然,RADIUS 相关部分完全被注释掉了。

请给我一个线索,在“坏”情况下可能会出现什么问题。以下 hostapd 跟踪输出的根本原因是什么?MACsec:无法从 EAPOL 状态机获取 SessionID IEEE 802.1X:无法获取 EAP 会话 ID

标签: radiuswpa-supplicanthostapd

解决方案


推荐阅读