
Нека на практика разгледаме използването на Windows Active Directory + NPS (2 сървъра за осигуряване на отказоустойчивост) + стандарт 802.1x за контрол на достъпа и аутентикация на потребители – домейн компютри – устройства. Можете да се запознаете с теорията по стандарта в Wikipedia, на линка:
Тъй като лабораторията ми е ограничена по ресурси, комбинирам ролите на NPS и контролера на домена, но ви препоръчвам такива критични услуги все пак да бъдат разделени.
Стандартни методи за синхронизация на конфигурации (политики) в Windows NPS не познавам, затова ще използваме PowerShell скриптове, стартирани от планировщика на задания (авторът е мой бивш колега). За аутентификация на домейн компютри и на устройства, които не поддържат 802.1x (телефони, принтери и др.), ще бъде настроена групова политика и ще бъдат създадени групи за безопасност.
В края на статията ще споделя за някои особености на работа с 802.1x – как може да се използват неуправляеми комутатори, динамични ACL и др. Ще споделя информация за уловените "глюкове"...
Нека започнем с инсталирането и настройката на failover NPS на Windows Server 2012R2 (на 2016 всичко е аналогично): през Server Manager -> Add Roles and Features Wizard избираме само Network Policy Server.

или с помощта на PowerShell:
Install-WindowsFeature NPAS -IncludeManagementToolsНебольшо уточнение – тъй като за Protected EAP (PEAP) ви е абсолютно необходим сертификат, който удостоверява идентичността на сървъра (с подходящи права за използване), който ще бъде на доверените клиенти, вероятно ще трябва да инсталирате и ролята Certification Authority. Но да приемем, че CA вече е инсталиран...
Да направим същото и на втория сървър. Ще създадем папка за скрипта C:Scripts и мрежова папка на втория сървър SRV2NPS-config$
На първия сървър ще създадем PowerShell скрипта C:ScriptsExport-NPS-config.ps1 със следното съдържание:
Export-NpsConfiguration -Path "SRV2NPS-config$NPS.xml"След това ще настроим задача в Task Scheduler: “Export-NpsConfiguration”
powershell -executionpolicy unrestricted -f "C:ScriptsExport-NPS-config.ps1" Да се изпълнява за всички потребители — Да се изпълнява с най-високи права
Ежедневно — Повтаряйте задачата на всеки 10 мин. в продължение на 8 ч.
На резервния NPS ще настроим внос на конфигурация (политики):
ще създадем PowerShell скрипта:
echo Import-NpsConfiguration -Path "c:NPS-configNPS.xml" >> C:ScriptsImport-NPS-config.ps1и задача за неговото изпълнение на всеки 10 минути:
powershell -executionpolicy unrestricted -f "C:ScriptsImport-NPS-config.ps1" Да се изпълнява за всички потребители — Да се изпълнява с най-високи права
Ежедневно — Повтаряйте задачата на всеки 10 мин. в продължение на 8 ч.
Сега, за проверка, ще добавим в NPS на един от сървърите(!) няколко суичове в RADIUS-клиентите (IP и Shared Secret), две стратегии за свързване: WIRED-Connect (Условие: “Тип порт NAS – Ethernet”) и WiFi-Enterprise (Условие: “Тип порт NAS – IEEE 802.11”), както и мрежовата политика Access Cisco Network Devices (Network Admins):
Условия:
Групи Windows - domainsg-network-admins
Ограничения:
Методи за удостоверяване - Проверка в открит текст (PAP, SPAP)
Параметри:
Атрибути RADIUS: Стандарт - Service-Type - Login
Зависи от доставчика - Cisco-AV-Pair - Cisco - shell:priv-lvl=15От страна на суичовете следните настройки:
aaa new-model
aaa local authentication attempts max-fail 5
!
!
aaa group server radius NPS
server-private 192.168.38.151 auth-port 1812 acct-port 1813 key %shared_secret%
server-private 192.168.10.151 auth-port 1812 acct-port 1813 key %shared_secret%
!
aaa authentication login default group NPS local
aaa authentication dot1x default group NPS
aaa authorization console
aaa authorization exec default group NPS local if-authenticated
aaa authorization network default group NPS
!
aaa session-id common
!
identity profile default
!
dot1x system-auth-control
!
!
line vty 0 4
exec-timeout 5 0
transport input ssh
escape-character 99
line vty 5 15
exec-timeout 5 0
logging synchronous
transport input ssh
escape-character 99След конфигурирането, след 10 минути, всички клиентиполитикипараметри трябва да се появят и на резервния NPS и ще можем да се удостоверим на суичовете с акаунт от Active Directory, член на групата domainsg-network-admins (която създадохме предварително).
Преминаваме към конфигурирането на Active Directory – ще създадем групова и паролна политика, ще създадем необходимите групи.
Групова политика Computers-8021x-Settings:
Настройки на компютрите (Активирано)
Политики
Настройки на Windows
Настройки за сигурност
Системни услуги
Wired AutoConfig (Режим на стартиране: Автоматичен)
Wired Network (802.3) Политики
NPS-802-1x
Име NPS-802-1x
Описание 802.1x
Глобални настройки
НАСТРОЙКА СТОЙНОСТ
Използвайте Windows проводникови LAN мрежови услуги за клиенти Активирано
Споделени потребителски идентификационни данни за мрежово удостоверяване Активирано
Мрежов профил
Настройки за сигурност
Активирайте използването на IEEE 802.1X удостоверяване за мрежов достъп Активирано
Задължително използване на IEEE 802.1X удостоверяване за мрежов достъп Деактивирано
Настройки за IEEE 802.1X
Удостоверяване на компютри Само компютър
Максимални опити за удостоверяване 10
Максимален брой изпратени съобщения EAPOL-Start
Държано време (секунди)
Стартово време (секунди)
Време за удостоверяване (секунди)
Свойства на метода за мрежово удостоверяване
Метод на удостоверяване Защитен EAP (PEAP)
Валидирайте сертификата на сървъра Активирано
Свържете се с тези сървъри
Не подканвайте потребителя да одобрява нови сървъри или доверени органи за сертификация Деактивирано
Активирайте бърза повторна свързаност Активирано
Прекъснете, ако сървърът не представи cryptobinding TLV Деактивирано
Наложете защита на достъпа до мрежата Деактивирано
Конфигурация на метода за удостоверяване
Метод на удостоверяване Защитена парола (EAP-MSCHAP v2)
Автоматично използвайте името и паролата на моя Windows логин (и домейн, ако има такъв) Активирано
Създайте група за сигурност sg-computers-8021x-vl100, където ще добавим компютрите, които искаме да разпределим в vlan 100 и ще настроим филтрацията за създадената по-рано групова политика за тази група:

Можем да се уверим, че политиката е приложена успешно, като отворим “Център за управление на мрежите и общия достъп (Настройки на мрежата и интернет) – Промяна на настройките на адаптера (Настройка на адаптера) – Свойства на адаптера”, където ще видим таба “Проверка на автентичността”:

Когато се уверим, че политиката се прилага успешно – можем да преминем към настройката на мрежовата политика на NPS и портовете на достъпния комутатор.
Създаваме мрежова политика neag-computers-8021x-vl100:
Условия:
Windows Групи - sg-computers-8021x-vl100
Тип на NAS порта - Ethernet
Ограничения:
Методи за автентикация - Microsoft: Защитен EAP (PEAP) - Необработена автентикация (PAP, SPAP)
Тип на NAS порта - Ethernet
Настройки:
Стандарт:
Framed-MTU 1344
TunnelMediumType 802 (включва всички 802 медии плюс каноничен формат на Ethernet)
TunnelPrivateGroupId 100
TunnelType Виртуални LAN (VLAN) 
Типични настройки за порта на комутатора (обърнете внимание, че се използва тип на автентикация “мултидомен” – Data & Voice, а също така има възможност за автентикация по mac адрес. по време на “преходния период” има смисъл да се използват следните параметри:
authentication event fail action authorize vlan 100
authentication event no-response action authorize vlan 100
vlan id не е “карантинен”, а е същият, в който потребителският компютър трябва да попадне, успешно автентикиран – дотогава, докато не се уверим, че всичко работи както трябва. Тези параметри могат да бъдат използвани и в други сценарии, например, когато в този порт е включен неуправляем комутатор и искате всички устройства, свързани към него и не преминали автентикация, да попаднат в определен vlan (“карантинен”).
настройки на порта на комутатора в режим 802.1x host-mode multi-domain
default int range Gi1/0/39-41
int range Gi1/0/39-41
shu
des PC-IPhone_802.1x
switchport mode access
switchport nonegotiate
switchport voice vlan 55
switchport port-security maximum 2
authentication event fail action authorize vlan 100
authentication event no-response action authorize vlan 100
authentication host-mode multi-domain
authentication port-control auto
authentication violation restrict
mab
dot1x pae authenticator
dot1x timeout quiet-period 15
dot1x timeout tx-period 3
storm-control broadcast level pps 100
storm-control multicast level pps 110
no vtp
lldp receive
lldp transmit
spanning-tree portfast
no shu
exitМожем да се уверим, че компютърът/телефонът успешно е преминал автентикация с командата:
sh authentication sessions int Gi1/0/39 detСега ще създадем група (например, sg-fgpp-mab ) в Active Directory за телефони и ще добавим в нея едно устройство за тестове (в моя случай това е Grandstream GXP2160 с MAC адрес 000b.82ba.a7b1 и съответната учетна запис domain 00b82baa7b1).
За създадената група ще намалим изискванията на политиката за пароли (чрез през Active Directory Administrative Center -> domain -> System -> Password Settings Container) с такива параметри Password-Settings-for-MAB:

така ще разрешим използването на MAC адресите на устройствата като пароли. След това ще можем да създадем мрежова политика за удостоверяване 802.1x метод mab, за която ще я наречем neag-devices-8021x-voice. Параметрите са следните:
- NAS Port Type – Ethernet
- Windows Groups – sg-fgpp-mab
- EAP Types: Unencrypted authentication (PAP, SPAP)
- RADIUS Attributes – Vendor Specific: Cisco – Cisco-AV-Pair – Attribute value: device-traffic-class=voice
след успешна аутентикация (не забравяйте да настроите порта на комутатора), ще погледнем информацията от порта:
sh authentication se int Gi1/0/34
----------------------------------------
Interface: GigabitEthernet1/0/34
MAC Address: 000b.82ba.a7b1
IP Address: 172.29.31.89
User-Name: 000b82baa7b1
Status: Authz Success
Domain: VOICE
Oper host mode: multi-domain
Oper control dir: both
Authorized By: Authentication Server
Session timeout: N/A
Idle timeout: N/A
Common Session ID: 0000000000000EB2000B8C5E
Acct Session ID: 0x00000134
Handle: 0xCE000EB3
Runnable methods list:
Method State
dot1x Failed over
mab Authc SuccessСега, както обещах, ще разгледаме няколко не толкова очевидни ситуации. Например, необходимо е да свържем компютри и устройства на потребителите през неуправляем комутатор (свитч). В този случай настройките на порта за него ще изглеждат по следния начин:
настройки на порта на комутатора в режим 802.1x host-mode multi-auth
interface GigabitEthernet1/0/1
description *SW – 802.1x – 8 mac*
shu
switchport mode access
switchport nonegotiate
switchport voice vlan 55
switchport port-security maximum 8 ! увеличаваме броя на допустимите MAC адреси
authentication event fail action authorize vlan 100
authentication event no-response action authorize vlan 100
authentication host-mode multi-auth ! – режим на аутентикация
authentication port-control auto
authentication violation restrict
mab
dot1x pae authenticator
dot1x timeout quiet-period 15
dot1x timeout tx-period 3
storm-control broadcast level pps 100
storm-control multicast level pps 110
no vtp
spanning-tree portfast
no shuP.S. забелязан е много странен глюк – ако устройството е било свързано през такъв свитч, а след това е включено в управляем комутатор, то то НЯМА да заработи, докато не рестартираме(!) свитча. Все още не съм намерил други начини за решаване на този проблем.
Още един момент, свързан с DHCP (ако се използва ip dhcp snooping) – без такива опции:
ip dhcp snooping vlan 1-100
no ip dhcp snooping information optionпо някаква причина не може да получи коректно IP адрес... възможно е това да е особеност на нашия DHCP сървър
А също така Mac OS и Linux (в които поддръжката на 802.1x е нативна) се опитват да преминат аутентификацията на потребителя, дори когато е настроена аутентификация по мас-адрес.
В следващата част на статията ще разгледаме прилагането на 802.1x за Wireless (в зависимост от групата, в която попада потребителският акаунт, ще го 'пускаме' в съответната мрежа (VLAN), въпреки че ще се свързват към един и същ SSID).
Източник: habr.com
