NPS и RADIUS в Windows Server: аутентификация Wi-Fi

NPS — встроенный RADIUS-сервер Windows Server

Network Policy Server (NPS) — это реализация RADIUS-сервера от Microsoft, входящая в состав Windows Server. NPS позволяет аутентифицировать пользователей Wi-Fi через Active Directory без развёртывания отдельных систем типа FreeRADIUS.

Типичный сценарий: корпоративная Wi-Fi сеть с WPA2-Enterprise, где сотрудники входят по доменным учётным данным. NPS проверяет логин/пароль в Active Directory, назначает VLAN и применяет политики доступа.

Преимущества NPS для Windows-инфраструктуры:

  • Нативная интеграция с Active Directory — без сторонних модулей
  • Групповые политики для автоматической настройки клиентов
  • Поддержка EAP-TLS, PEAP, EAP-TTLS
  • Условные политики доступа: по группам AD, времени суток, типу устройства
  • Журналирование в Event Log и SQL Server
  • Поддержка RADIUS accounting

NPS доступен в Windows Server 2016, 2019 и 2022 (Standard и Datacenter). Лицензия NPS входит в лицензию сервера.

Установка роли NPS и выпуск сертификата

Установка NPS через PowerShell:

Install-WindowsFeature NPAS -IncludeManagementTools
Install-WindowsFeature ADCS-Cert-Authority -IncludeManagementTools

Для PEAP-аутентификации NPS необходим серверный сертификат. Если в домене развёрнут центр сертификации (AD CS), запрашиваем сертификат:

# Проверяем наличие подходящего шаблона
certutil -template | findstr /i "RAS"

# Запрос сертификата через MMC:
# 1. Откройте certlm.msc (сертификаты компьютера)
# 2. Personal → Certificates → правый клик → All Tasks → Request New Certificate
# 3. Выберите шаблон "RAS and IAS Server"
# 4. Завершите мастер

Если AD CS не развёрнут, установите его:

# Установка AD CS (Enterprise Root CA)
Install-AdcsCertificationAuthority -CAType EnterpriseRootCA `
    -CryptoProviderName "RSA#Microsoft Software Key Storage Provider" `
    -KeyLength 4096 `
    -HashAlgorithmName SHA256 `
    -ValidityPeriod Years `
    -ValidityPeriodUnits 10 `
    -CACommonName "Company-CA"

После установки CA сертификат для NPS будет выпущен автоматически через автоподписку (Autoenrollment). Проверяем:

Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.EnhancedKeyUsageList -match "Server Authentication" }

Регистрация NPS в Active Directory

NPS необходимо зарегистрировать в Active Directory, чтобы сервер мог читать свойства dial-in учётных записей пользователей:

# PowerShell
netsh ras add registeredserver

# Или через GUI:
# Откройте NPS Console → правый клик на NPS (Local) → Register server in Active Directory

Эта команда добавляет учётную запись компьютера NPS-сервера в группу RAS and IAS Servers в Active Directory.

Проверяем членство:

Get-ADGroupMember "RAS and IAS Servers" | Select-Object Name

Добавление RADIUS-клиентов

Каждая точка доступа Wi-Fi или контроллер WLAN должен быть зарегистрирован в NPS как RADIUS-клиент.

Через PowerShell:

# Добавление контроллера WLAN
New-NpsRadiusClient -Name "WLC-Main" `
    -Address "10.0.1.5" `
    -SharedSecret "R@diusS3cret2026!" `
    -VendorName "Cisco"

# Добавление отдельных точек доступа
New-NpsRadiusClient -Name "AP-Floor1" `
    -Address "10.0.1.10" `
    -SharedSecret "APsecret123!" `
    -VendorName "RADIUS Standard"

New-NpsRadiusClient -Name "AP-Floor2" `
    -Address "10.0.1.11" `
    -SharedSecret "APsecret123!" `
    -VendorName "RADIUS Standard"

# Добавление по подсети (все AP в сети)
New-NpsRadiusClient -Name "All-APs" `
    -Address "10.0.1.0/24" `
    -SharedSecret "APsecret123!"

Через GUI: NPS Console → RADIUS Clients and Servers → RADIUS Clients → New.

Убедитесь, что shared secret совпадает на NPS и на точке доступа. Рекомендуется использовать сложные секреты длиной не менее 22 символов.

Создание политик доступа к сети

Политики NPS определяют, кто может подключаться к Wi-Fi и какие параметры получает. Создаём политику через PowerShell:

# Создание Connection Request Policy
# (обычно используется стандартная — "Use Windows authentication for all users")

# Создание Network Policy для сотрудников
New-NpsNetworkPolicy -Name "WiFi-Employees" `
    -ProcessingOrder 1 `
    -PolicyEnabled $true `
    -AccessType GRANT `
    -EapType 25 `
    -AuthenticationMethod "EAP"

Настройка через GUI более наглядна. Откройте NPS Console → Policies → Network Policies → New:

  1. Policy Name: WiFi-Employees
  2. Conditions (условия):
    • Windows Groups: COMPANY\WiFi-Users
    • NAS Port Type: Wireless - IEEE 802.11
  3. Constraints (ограничения):
    • Authentication Methods: Microsoft: Protected EAP (PEAP)
    • Выберите сертификат сервера NPS
  4. Settings (настройки):
    • RADIUS Attributes → Standard:
      Tunnel-Type: VLAN
      Tunnel-Medium-Type: 802 (includes all 802 media)
      Tunnel-Private-Group-Id: 100

Для гостевой сети создаём отдельную политику:

  1. Policy Name: WiFi-Guests
  2. Conditions: Windows Groups: COMPANY\WiFi-Guests
  3. Settings: Tunnel-Private-Group-Id: 300 (гостевой VLAN)

Порядок политик важен — NPS обрабатывает их сверху вниз и применяет первую совпавшую.

Ограничение по времени и типу устройства

NPS поддерживает дополнительные условия:

  • Day and Time Restrictions: разрешить Wi-Fi только в рабочее время (пн-пт 8:00-20:00)
  • Machine Groups: разрешить только доменным компьютерам (через EAP-TLS с компьютерным сертификатом)
  • Health Policies: проверка состояния NAP (устаревший, но поддерживаемый механизм)

Пример: ограничение по времени в условиях политики добавляется через GUI → Conditions → Day and Time Restrictions → разрешённые временные интервалы.

Настройка точек доступа и контроллера

Точки доступа необходимо настроить для работы с WPA2-Enterprise и RADIUS. Пример для контроллера Cisco WLC:

! Создание WLAN
config wlan create 1 Corporate corporate-wifi
config wlan security wpa akm 802.1x enable 1
config wlan security wpa wpa2 ciphers aes enable 1

! Настройка RADIUS
config radius auth add 1 10.0.1.2 1812 R@diusS3cret2026!
config radius acct add 1 10.0.1.2 1813 R@diusS3cret2026!
config wlan radius_server auth add 1 1
config wlan radius_server acct add 1 1

! Включение WLAN
config wlan enable 1

Для MikroTik (RouterOS 7):

/radius
add address=10.0.1.2 secret="R@diusS3cret2026!" service=wireless

/interface wifi security
add name=wpa2-enterprise authentication-types=wpa2-eap

/interface wifi
set [ find default-name=wifi1 ] \
    configuration.ssid=Corporate \
    security=wpa2-enterprise

Для UniFi (через контроллер):

  1. Settings → WiFi → Create New WiFi Network
  2. Name: Corporate, Security: WPA2 Enterprise
  3. RADIUS Profile: создайте профиль с IP NPS-сервера и shared secret

Настройка клиентов через GPO

Для автоматической настройки Wi-Fi на доменных компьютерах используйте групповую политику:

  1. Откройте gpmc.msc → создайте новый GPO «WiFi Configuration»
  2. Computer Configuration → Policies → Windows Settings → Security Settings → Wireless Network (IEEE 802.11) Policies
  3. Создайте новую политику Windows Vista and Later
  4. Добавьте Infrastructure-профиль:
    • SSID: Corporate
    • Security: WPA2-Enterprise, AES
    • Authentication: Microsoft: Protected EAP (PEAP)
    • Validate server certificate: включено
    • Trusted Root CA: выберите корневой сертификат CA
    • Authentication Method: Secured password (EAP-MSCHAPv2)

Через PowerShell можно экспортировать и импортировать профили:

# Экспорт Wi-Fi профиля с эталонного ПК
netsh wlan export profile name="Corporate" folder=C:\WiFi

# Распространение через GPO Scripts или SCCM
netsh wlan add profile filename="C:\WiFi\Corporate.xml" user=all

Для компьютерной аутентификации (до входа пользователя) настройте в профиле:

# В XML-профиле Wi-Fi:
<authMode>machineOrUser</authMode>
<singleSignOn>
  <type>preLogon</type>
  <maxDelay>10</maxDelay>
</singleSignOn>

Журналирование и диагностика

NPS записывает события аутентификации в журнал Windows и опционально в текстовые файлы или SQL Server.

Включение расширенного журналирования:

# Включение Accounting через NPS Console:
# NPS → Accounting → Configure Accounting
# Выберите "Log to a text file on the local computer"
# Путь: C:\Windows\System32\LogFiles\NPS\

# Или через PowerShell:
Set-NpsAccountingConfig -AccountingLogPath "C:\NPS-Logs" `
    -LogPeriod Daily

Анализ событий аутентификации в Event Viewer:

# PowerShell: последние 20 событий NPS
Get-WinEvent -LogName "Security" -FilterXPath "*[System[EventID=6272 or EventID=6273]]" -MaxEvents 20 |
    Format-Table TimeCreated, Id, Message -Wrap

# EventID 6272 = Access-Accept (успешная аутентификация)
# EventID 6273 = Access-Reject (отказ)
# EventID 6274 = Discard (отброшен)

Диагностика проблем подключения:

# Включить подробную трассировку NPS
netsh nps set tracing *=verbose

# Трассировка записывается в C:\Windows\Tracing\nps*.log
# После диагностики отключите:
netsh nps set tracing *=disable

Типичные проблемы:

  • Ошибка «The client could not be authenticated»: проверьте сертификат NPS — он должен быть выпущен доверенным CA и содержать EKU «Server Authentication»
  • Ошибка «The RADIUS client is not configured on the NPS server»: IP точки доступа не добавлен в RADIUS Clients
  • Ошибка «Access denied» при корректных учётных данных: проверьте, что пользователь состоит в группе, указанной в условиях политики, и что свойство «Dial-in» учётной записи разрешает доступ

Часто задаваемые вопросы

Один NPS-сервер обрабатывает тысячи аутентификаций в минуту. Для среднего офиса (до 500 пользователей Wi-Fi) одного сервера более чем достаточно. Для отказоустойчивости настройте второй NPS-сервер с синхронизацией конфигурации через Export-NpsConfiguration / Import-NpsConfiguration.

Да, NPS поддерживает RADIUS-аутентификацию для VPN (PPTP, L2TP/IPSec, SSTP, IKEv2), проводной сети 802.1X, Wi-Fi и Remote Desktop Gateway. Создайте отдельные Network Policies для каждого типа подключения с соответствующими условиями NAS Port Type.

Используйте команды Export-NpsConfiguration -Path C:\nps-backup.xml на основном сервере и Import-NpsConfiguration -Path C:\nps-backup.xml на резервном. Автоматизируйте через Scheduled Task с запуском PowerShell-скрипта каждые 30 минут. Точки доступа настройте с двумя RADIUS-серверами (primary и secondary).

Нет, роль NPS может быть установлена на контроллере домена или на сервере с другими ролями. Однако для продакшен-среды рекомендуется выделенный сервер (или виртуальная машина) — это упрощает отладку и не влияет на работу AD при перезагрузках NPS.

EAP-TLS требует клиентские сертификаты на каждом устройстве. Настройте автоподписку (Autoenrollment) через GPO для автоматического получения сертификатов доменными компьютерами. В Network Policy NPS измените метод аутентификации на «Microsoft: Smart Card or other certificate». Для мобильных устройств используйте SCEP или MDM для распространения сертификатов.

Нужна помощь с настройкой?

Специалисты АйТи Фреш помогут с внедрением и настройкой — 15+ лет опыта, обслуживание от 15 000 ₽/мес

📞 Связаться с нами
#NPS#RADIUS#Windows Server#Wi-Fi аутентификация#WPA2-Enterprise#Active Directory Wi-Fi#Network Policy Server#PEAP
Комментарии 0

Оставить комментарий

загрузка...