Розглянемо на практиці використання Windows Active Directory + NPS (2 сервери для забезпечення стійкості до відмов) + стандарт 802.1x для контролю доступу та автентифікації користувачів - доменних комп'ютерів - пристроїв. Ознайомитися з теорією за стандартом можна у Wikipedia, за посиланням:
Так як "лабораторія" у мене обмежена за ресурсами, сумісний ролі NPS і контролера домену, але вам рекомендую такі критичні сервіси все ж таки розділяти.
Стандартних способів синхронізації конфігурацій (політик) Windows NPS я не знаю, тому будемо використовувати скрипти PowerShell, які запускає планувальник завдань (автор мій колишній колега). Для аутентифікації комп'ютерів домену та для пристроїв, які не вміють 802.1x (телефони, принтери та ін.), буде налаштовано групову політику та створено групи безпеки.
Наприкінці статті розповім про деякі тонкощі роботи з 802.1x – як можна використовувати некеровані комутатори, dynamic ACL та ін.
Почнемо з установки та налаштування failover NPS on Windows Server 2012R2 (на 2016 все аналогічно): через Server Manager -> Add Roles and Features Wizard вибираємо лише Network Policy Server.
або за допомогою PowerShell:
Install-WindowsFeature NPAS -IncludeManagementTools
Невелике уточнення – тому що для Protected EAP (PEAP) вам обов'язково буде потрібний сертифікат, що підтверджує справжність сервера (з відповідними правами на використання), який буде в довірених на клієнтських комп'ютерах, то вам швидше за все потрібно встановити ще й роль Орган сертифікації. Але вважатимемо, що CA у вас вже встановлено…
Зробимо те саме і на другому сервері. Створимо папку для скрипту C:Scripts на обох серверах та мережеву папку на другому сервері SRV2NPS-config$
На першому сервері створимо PowerShell скрипт C:ScriptsExport-NPS-config.ps1 з наступним змістом:
Export-NpsConfiguration -Path "SRV2NPS-config$NPS.xml"
Після цього налаштуємо завдання Task Sheduler: “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 і ми зможемо авторизуватися на комутаторах за допомогою облікового запису ActiveDirectory, члена групи domainsg-network-admins (яку ми створили заздалегідь).
Перейдемо до налаштування Active Directory – створимо групову та парольну політики, створимо необхідні групи.
Групова політика Computers-8021x-Settings:
Computer Configuration (Enabled)
Policies
Windows Settings
Security Settings
System Services
Wired AutoConfig (Startup Mode: Automatic)
Wired Network (802.3) Policies
NPS-802-1x
Name NPS-802-1x
Description 802.1x
Global Settings
SETTING VALUE
Use Windows wired LAN network services for clients Enabled
Shared user credentials for network authentication Enabled
Network Profile
Security Settings
Enable use of IEEE 802.1X authentication for network access Enabled
Enforce use of IEEE 802.1X authentication for network access Disabled
IEEE 802.1X Settings
Computer Authentication Computer only
Maximum Authentication Failures 10
Maximum EAPOL-Start Messages Sent
Held Period (seconds)
Start Period (seconds)
Authentication Period (seconds)
Network Authentication Method Properties
Authentication method Protected EAP (PEAP)
Validate server certificate Enabled
Connect to these servers
Do not prompt user to authorize new servers or trusted certification authorities Disabled
Enable fast reconnect Enabled
Disconnect if server does not present cryptobinding TLV Disabled
Enforce network access protection Disabled
Authentication Method Configuration
Authentication method Secured password (EAP-MSCHAP v2)
Automatically use my Windows logon name and password(and domain if any) Enabled
Створимо групу безпеки sg-computers-8021x-vl100, куди ми будемо додавати комп'ютери, які ми хочемо розподіляти у влан 100 і налаштуємо фільтрацію для створеної раніше групової політики на цю групу:
Переконайтеся, що політика успішно відпрацювала можна, відкривши “Центр управління мережами та загальним доступом (Параметри мережі та Інтернет) – Зміна параметрів адаптера (Налаштування параметрів адаптера) – Властивості адаптера”, де ми зможемо побачити вкладку “Перевірка автентичності”:
Коли переконалися, що політика успішно застосовується – можна переходити до настроювання мережної політики на NPS та портів комутатора рівня доступу.
Створимо мережеву політику neag-computers-8021x-vl100:
Conditions:
Windows Groups - sg-computers-8021x-vl100
NAS Port Type - Ethernet
Constraints:
Authentication Methods - Microsoft: Protected EAP (PEAP) - Unencrypted authentication (PAP, SPAP)
NAS Port Type - Ethernet
Settings:
Standard:
Framed-MTU 1344
TunnelMediumType 802 (includes all 802 media plus Ethernet canonical format)
TunnelPrivateGroupId 100
TunnelType Virtual LANs (VLAN)
Типові налаштування для порту комутатора (звертаю увагу, що використовується тип аутентифікації "мультидомен" - Data & Voice, а також є можливість аутентифікації за mac адресою. на час "перехідного періоду" є сенс використовувати в параметрах:
authentication event fail action authorize vlan 100
authentication event no-response action authorize vlan 100
влан id не "карантинного", а того ж, куди комп'ютер повинен потрапити, успішно авторизувавшись - поки не переконаємося, що все працює як слід. Ці параметри можуть бути використані і в інших сценаріях, наприклад, коли в цей порт встромлять некерований комутатор і ви хочете, щоб всі пристрої, підключені в нього і не пройшли аутентифікацію, потрапляли в певний влан ("карантинний").
налаштування порту комутатора в режимі 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 з мас-адресою 000b.82ba.a7b1 та соотв. обліковим записом domain 00b82baa7b1).
Для створеної групи знизимо вимоги парольної політики (використовуючи
тим самим дозволимо використовувати мас-адресу пристроїв як паролі. Після цього ми зможемо створити мережну політику для аутентифікації 802.1x method 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 ! увеличиваем кол-во допустимых мас-адресов
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 shu
PS помічено дуже дивний глюк – якщо пристрій було підключено через такий свитч, а потім його встромили в керований комутатор, то воно не запрацює, поки ми не перезавантажимо (!) Світч Поки інших способів вирішення цієї проблеми не знайшов.
Ще один момент, пов'язаний з 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 (залежно від групи, до якої входить обліковий запис користувача, його будемо “закидати” у відповідну мережу (влан), хоча підключатися вони будуть до одного SSID).
Джерело: habr.com