Как настроить соглашение о ключах MACSEC (MKA) с помощью hostapd и wpasupplicant?

Я пытаюсь настроить MKA между некоторыми клиентами (используя wpa_supplicant) и аутентификатором (используя хостapd).

Кроме того, у меня есть сервер RADIUS (с использованием FreeRADIUS), который будет заниматься аутентификацией.

Итак:
на RADIUS-сервере FreeRADIUS настроен для EAP-TLS. Аутентификатор имеет хостapd, настроенный с использованием 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
                }
        }

После этого я вижу, что ключевой материал успешно получен хостапдом на аутентификаторе:

      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 , чтобы добавить его в конфигурацию сети, но сам по себе, похоже, ничего не вызывает, поэтому я подумал, может быть, мне нужно настроить хостapd слишком.

Однако когда я добавляюmacsec_policy=1в hostapd.conf на Аутентификаторе, хостapd не распознает эту опцию:

      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 между аутентификатором и клиентами?

Я чувствую, что уже близко, поскольку хостапд получает ключевой материал, но не знаю, как завершить настройку. Я нашел здесь этот старый вопрос, в котором показан пример файла wpa_supplicant.conf, который более или менее похож на то, что у меня есть, но он не упоминает, что он настроил на стороне аутентификатора.

0 ответов

Другие вопросы по тегам