===== Авторизация в сети Wi-Fi на сертификатах ===== ** Предварительные требования ** Здесь описаны требования, реализация которых необходима для работы. Реализация данных требований выходит за рамки этой инструкции. 1) Развёрнутый и работающий NPS-сервер. Сервер NPS должен быть авторизован и зарегистрирован в Active Directory. 2) Для реализации авторизации по сертификатам - нам требуется внедрённый PKI и настроенная генерация сертификатов для компьютеров (я предполагаю, что у компьютеров уже есть валидные сертификаты рабочих станций). Также, сервер NPS должен иметь действующий сертификат, изданный шаблоном типа //RAS and IAS server//. 3) В Active Directory создана группа для авторизации компьютеров или пользователей Wi-Fi. ** Настройка NPS ** 1) Заводим клиента RADIUS. Это может быть точка достуа или контроллер (в данном примере в качестве клиента будет выступать //CAPSMAN// //Mikrotik//). Вводим адрес, общий секрет и другие параметры, если требуются. 2) Создаём новую политику запросов на подключение. :!: //Никаких дополнительных настроек, не показанных на скриншотах - не требуется.// ;#; {{::wifi-conn-radius1.png?200|}} {{::wifi-conn-radius2.png?200|}} {{::wifi-conn-radius3.png?200|}} ;#; 3) Создаём сетевую политику. Данная политика будет определять - каким группам пользователей или компьютеров можно подключаться к сети. Группа, использованная на примере - это группа Active Directory, содержащая аккаунты компьютеров - именно ей будет разрешен доступ (если у компьютера есть валидный сертификат). :!: //Никаких дополнительных настроек, не показанных на скриншотах - не требуется.// ;#; {{::wifi-net-pol1.jpg?200|}} {{::wifi-net-pol2.jpg?200|}} {{::wifi-net-pol3.jpg?200|}} {{::wifi-net-pol4.jpg?200|}} ;#; 4) На всякий случай включим логирование событий RADIUS, чтобы в event-лог стали записываться события, связанные с NPS (логи будут появляться в разделе //system//). auditpol /set /subcategory:"Network Policy Server" /success:enable /failure:enable ** Настройка клиента RADIUS на примере CAPSMAN ** Предположим, что клиентом RADIUS, который будет запрашивать право на подключение - будет выступать контроллер точек досутпа - Mikrotik CAPSMAN. 1) Подключаемся к нему через //Winbox//, заходим в раздел //RADIUS// и добавляем наш NPS. Указываем адрес сервера, source-адрес, с которого //Mikrotik// будет подключаться, порт и другие параметры. ;#; {{::radius_capsman.jpg?200|}} ;#; 2) Выставляем в разделе //CAPSMAN// следующие параметры безопасности. ;#; {{::capsman_security.jpg?200|}} ;#; 3) Прибиваем эти параметры к конфигурации беспроводной сети в разделе //CAPSMAN// -> //Configurations//. ;#; {{::radius_capsman_sec.jpg?200|}} ;#; Логи запросов к RADIUS можно почитать в разделе //logs//. Возможно, нам потребуется расширить уровень логгирования для событий, связанных с RADIUS. ** Настройка клиентов Windows 11 ** 1) Если на нашем компьютере уже есть изданный сертификат, а УЦ PKI добавлены в доверенные, то можно переходить к настройке беспроводного подключения. Для этого воспользуемся мастером добавления подключения Wi-Fi вручную (апплет старой панели управления). ;#; {{::w11-wifi-manual.jpg?200|}} ;#; 2) Вводим SSID сети, в параметрах выбираем //WPA2-Personal//. 3) В настройке дальнейших параметров - имеет смысл оринтироваться на скриншоты ниже. Здесь важно выбрать тип безопасности, правильный режим проверки подлинности (в примере мы авторизовываем компьютеры, а не пользователей), отметить корневой УЦ нашего PKI, выбрать метод проверки подлинности //"Microsoft: Смарт-карта"//, указать имя RADIUS-сервера, к которому мы собираемся подключаться. ;#; {{::wifi_w11_settings1.jpg?200|}} {{::wifi_w11_settings2.jpg?200|}} {{::wifi_w11_settings3.jpg?200|}} ;#; 4) Если требуется по любой причине отредактировать уже созданный профиль Wi-Fi сети - нам поможет программа //ManageWirelessNetworks// от //NirSoft//, т.к. в новом интерфейсе //Windows 11// невозможно отредактировать все параметры. //ManageWirelessNetworks// выведет все созданные профили Wi-Fi и позволит отредактировать нужные (//Edit Wireless Network//) в старом диалоговом окне. ;#; {{::manage-wlan-nirsoft.jpg?400|}} ;#; Программа доступна по ссылке: https://www.nirsoft.net/utils/manage_wireless_networks.html ** Распространение параметров сети для Windows через GPO ** Чтобы настроить распространение параметров сети для клиентов - нам необходимо скопировать настройки, которые мы сделали вручную в профиль, доступный в настройке GPO. Создание конфигурации и настройка политики происходит в разделе: //Computer configuration -> Windows Settings -> Security Settings -> Wireless Network (IEEE 802.11) Policies//. Для WPA2 Enterprise тип конфигурации должен быть "инфраструктурный", а шифрование всегда //AES-CCMP// (другие типы шифрования используются для WPA2 Personal). Пример создания работающей конфигурации через GPO. ;#; {{::wi_fi_enterprise_wpa2_pr1.jpg?200|}} {{::wi_fi_enterprise_wpa2_pr2.jpg?200|}} {{::wi_fi_enterprise_wpa2_pr3.jpg?200|}} {{::wi_fi_enterprise_wpa2_pr4.jpg?200|}} ;#; ** Решение возможных проблем ** После первичной настройки подключение завелось не сразу. На компьютере-клиенте возникала ошибка типа //failure// в журнале логов //security// приблизительно следующего содержания: Additional Information: Reason Code: Explicit Eap failure received (0x50005) Error Code: 0x40420110 EAP Reason Code: 0x40420110 EAP Root Cause String: Network authentication failed due to a problem with the user account EAP Error Code: 0x40420110 Проблема решилась после добавления сертификата из шаблона //RAS and IAS server// NPS-сервера в раздел //personal// хранилища сертификатов компьютера (изначально он был добавлен только для службы //Network Policy Server//). :!: //Гипотеза про причины проблемы - требует проверки.// ** Авторизация в Wi-Fi сети на Ubuntu ** Для авторизации на основе членства в группе Windows компьютеров - машину с Linux Ubuntu требуется ввести в домен и добавить в группу компьютеров AD, имеющую право на оподключение в RADIUS. Ей также потребуется сертификат, запрошенный вручную из PKI (можно запросить через кастомный шаблон рабочих станций, разрешающий экспорт закрытого ключа. Разделить ключи можно при помощи [[OpenSSL]] из файла PFX). Так как Linux пытается подключаться от пользователя, и про аккаунты компьютеров AD он ничего не знает, нам потребуется сертификат, содержащий заполненный //user principal name (UPN)//. Его можно указать вручную в запросе к УЦ. Нам также нужно заполнить соответствующий аттрибут в AD. Пример значения аттрибута //user principal name//: COMP1@domain.local Посмотреть значение этого аттрибута можно либо в свойствах объекта в консоли //AD:users and computers//, либо командой PS: Get-ADComputer -Identity COMP1 | fl В Ubuntu при подключении к сети нам требуется указать безопасность //WPA2 Enterprise//, аутентификацию //TLS//, //identity//, равный //UPN//, который мы сделали в сертификате, сертификат корневого центра нашего PKI, а также открытый и закрытый ключи сертификата компьютера, сгенерированного для Linux-машины. Пример настроек: ;#; {{::ubuntu_nps_wifi_connect.jpg?200|}} ;#; :!: //Даже если приватный ключ не защищен паролем, Ubuntu будет его запрашивать. В этом случае можно ввести любой пароль и всё будет работать.// ** Авторизация в Wi-Fi сети на MacOS ** Для авторизации на основе членства в группе Windows компьютеров - машину с MacOS требуется ввести в домен и добавить в группу компьютеров AD, имеющую право на подключение в RADIUS. Ей также потребуется сертификат, запрошенный вручную из PKI (можно запросить через кастомный шаблон рабочих станций, разрешающий экспорт закрытого ключа). Mac OS умеет работать с файлами PFX, сторонних средств не требуется. Как и в случае с Linux Ubuntu, нам потребуется сертификат, содержащий заполненный //user principal name (UPN)//. Его можно указать вручную в запросе к УЦ. Нам также нужно заполнить соответствующий аттрибут в AD (см. раздел с Ubuntu). :!: //Главное затруднение в случае с MacOS состоит в том, что для добавления настроек WPA2 Enterprise подключения на современных версиях MacOS - встроенных средств нет (предполагается использование MDM системы). Если мы попробуем подключиться к WPA2 Enterprise сети без установленной конфигурации - мы получим запрос имени пользователя и пароля, что нас не утсраивает, т.к. мы хотим использовать сертификат машины.// Существуют, впрочем, утилиты, генерирующие конфигурационный файл и работающие в том числе под Windows. Пример такой утилиты - //iMazing Profile Editor//, который доступен по ссылке. https://imazing.com/profile-editor/download/windows В полях создаваемого профиля заполняем //SSID// сети, тип шифрования //WPA2//, тип EAP - //TLS//, выставляем в //username// имя машины - вместо имени пользователя, игнорируя запросы на пароль и предупреждения утилиты о том, что обязательные поля не заполнены. Также вводим возможные имена NPS сервера\серверов, выбираем источник данных для входа - //Active Directory// и заполняем //UUID// значением нашего UPN. Не ясно - влияет ли это на конфигурацию в конечном счёте, но это работает. Все остальные поля конфигурации можно не заполнять и переходить к экспорту конфигурации, которая будет сохранена в файл с расширением //*.mobileconfig//. Пример настройки //iMazing Profile Editor// на скриншотах. ;#; {{::wpa2_enterprise_mac_profile1.jpg?200|}} {{::wpa2_enterprise_mac_profile2.jpg?200|}} {{::wpa2_enterprise_mac_profile3.jpg?200|}} ;#; Теперь необходимо скопировать конфиг и установить //*.mobileconfig// на MacOS. При попытке установить профиль настроек - получим предупреждение о том, что добавляемый профиль нужно вручную просмотреть в системных настройках. Идём в системные настройки и ищем пункт //профили//. В списке профилей обнаружится наш новый профиль, который необходимо установить. Установка потребует подтверждения и ввода пароля локального администратора. Также, нам необходимо установить сертификат корневого УЦ в центры сертификации MacOS и проставить доверие. Пример: ;#; {{::mac_ca_trust.jpg?200|}} ;#; Возможно, в центры сертификации также нужно добавить издающий УЦ. Сертификат, сгенерированный для рабочей станции на Mac - в раздел //вход// связки ключей ОС. Это можно сделать, использовав пункт меню //файл// -> //добавить связку ключей// и введя пароль от PFX. :!: //Важно установить сертификат именно в этот раздел, поскольку, если мы установим сертификат в раздел система - MacOS будет каждый раз требовать пароль локального администратора при подключении к сети wi-fi.// После установки профиля, если всё сделано верно - сеть, вместо пароля пользователя для аутентификации - предложит выбрать сертификат (при этом, поля для ввода имени учётной записи и пароля всё равно будут видимыми, но их можно оставить пустыми - главное указать сертификат компьютера), после чего рабочая станция успешно подключится к сети WPA2 Enterprise. {{tag>RADIUS Networking NPS Windows Microsoft Wi-Fi Mikrotik CAPSMAN Certificates Linux Ubuntu MacOS GPO}}