如何使用 hostapd 和 wpasupplicant 配置 MACSEC 密钥协议(MKA)?

如何使用 hostapd 和 wpasupplicant 配置 MACSEC 密钥协议(MKA)?

我正在尝试在一些客户端(使用 wpa_supplicant)和身份验证器(使用 hostapd)之间设置 MKA。

此外,我还有一个 RADIUS 服务器(使用 FreeRADIUS),它将负责处理事物的身份验证方面。

因此:
RADIUS 服务器已将 FreeRADIUS 配置为 EAP-TLS 身份验证器已将 hostapd 配置为 RADIUS 服务器作为身份验证服务器客户端已将其客户端证书和 wpasupplicant 配置为 EAP-TLS

就这样,一切都运行正常,我从四面八方都收到了 EAP-SUCCESS 消息 -

认证服务器:

(393) Sent Access-Accept Id 37 from 10.0.0.254:1812 to 10.0.0.250:42690 length 252

验证者:

EAP: EAP entering state SUCCESS2
br0: CTRL-EVENT-EAP-SUCCESS2 8e:43:b5:ca:b6:f2
IEEE 802.1X: 8e:43:b5:ca:b6:f2 BE_AUTH entering state SUCCESS
br0: STA 8e:43:b5:ca:b6:f2 IEEE 802.1X: Sending EAP Packet (identifier 236)
IEEE 802.1X: 8e:43:b5:ca:b6:f2 AUTH_PAE entering state AUTHENTICATED
br0: AP-STA-CONNECTED 8e:43:b5:ca:b6:f2
br0: STA 8e:43:b5:ca:b6:f2 IEEE 802.1X: authorizing port
br0: STA 8e:43:b5:ca:b6:f2 RADIUS: starting accounting session 1F1E651F858DB876
br0: RADIUS Sending RADIUS message to accounting server
br0: RADIUS Next RADIUS client retransmit in 3 seconds

客户:

eth0: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully

据我了解,这是 MKA 的先决条件,其中密钥服务器生成密钥并将其发送给认证器以建立 MACSEC 连接,这正是我接下来想要发生的事情。

因此,在服务器上的 FreeRADIUS 目录中,我编辑该sites-available/default文件并取消注释此部分:

        #  MacSEC requires the use of EAP-Key-Name.  However, we don't
        #  want to send it for all EAP sessions.  Therefore, the EAP
        #  modules put required data into the EAP-Session-Id attribute.
        #  This attribute is never put into a request or reply packet.
        #
        #  Uncomment the next few lines to copy the required data into
        #  the EAP-Key-Name attribute
        if (&reply:EAP-Session-Id) {
                update reply {
                        EAP-Key-Name := &reply:EAP-Session-Id
                }
        }

之后我看到密钥材料已被认证器上的 hostapd 成功接收:

MS-MPPE-Send-Key - hexdump(len=32): [REMOVED]
MS-MPPE-Recv-Key - hexdump(len=32): [REMOVED]
EAP-Key Name - hexdump(len=65): 0d 4b f6 4e 19 d1 af 12 86 6a ff 30 a4 48 44 f4 4c c3 51 a8 bf d4 2c ce f5 d7 2b d4 b9 d1 4d 32 bc d6 50 82 bc 19 70 4b 39 11 96 f6 d1 fb 53 ec 16 a6 2d 89 39 8b c3 78 a2 e4 31 f4 39 95 d7 d3 bf

然而,此后似乎没有发生任何其他事情。我认为我必须更改配置文件以强制执行 MACSEC,因此在客户端上我编辑了wpa_supplicant.conf文件添加macsec_policy=1到网络配置中,但单独使用似乎不会触发任何事情,所以我想我可能也需要配置 hostapd。

然而当我macsec_policy=1添加hostapd.conf在 Authenticator 上,hostapd 无法识别该选项:

Line 39: unknown configuration item 'macsec_policy'
1 errors found in configuration file '/etc/hostapd/hostapd.conf'
Failed to set up interface with /etc/hostapd/hostapd.conf
hostapd_init: free iface 0x55a72992bbf0
Failed to initialize interface

我需要做什么来强制在认证者和客户端之间创建 macsec 通道?

我感觉我已经接近了,因为密钥材料正在被 hostapd 接收,但不确定如何完成配置。我发现这里有一个老问题,显示了一个示例 wpa_supplicant.conf 文件,它或多或少与我所拥有的类似,但他没有提到他在身份验证器端配置了什么。

相关内容