Настроювання 802.1X на комутаторах Cisco за допомогою відмовостійкого NPS (Windows RADIUS with AD)

Настроювання 802.1X на комутаторах Cisco за допомогою відмовостійкого NPS (Windows RADIUS with AD)
Розглянемо на практиці використання Windows Active Directory + NPS (2 сервери для забезпечення стійкості до відмов) + стандарт 802.1x для контролю доступу та автентифікації користувачів - доменних комп'ютерів - пристроїв. Ознайомитися з теорією за стандартом можна у Wikipedia, за посиланням: IEEE 802.1X

Так як "лабораторія" у мене обмежена за ресурсами, сумісний ролі 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.

Настроювання 802.1X на комутаторах Cisco за допомогою відмовостійкого NPS (Windows RADIUS with AD)

або за допомогою 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

Настроювання 802.1X на комутаторах Cisco за допомогою відмовостійкого NPS (Windows RADIUS with AD)

Створимо групу безпеки sg-computers-8021x-vl100, куди ми будемо додавати комп'ютери, які ми хочемо розподіляти у влан 100 і налаштуємо фільтрацію для створеної раніше групової політики на цю групу:

Настроювання 802.1X на комутаторах Cisco за допомогою відмовостійкого NPS (Windows RADIUS with AD)

Переконайтеся, що політика успішно відпрацювала можна, відкривши “Центр управління мережами та загальним доступом (Параметри мережі та Інтернет) – Зміна параметрів адаптера (Налаштування параметрів адаптера) – Властивості адаптера”, де ми зможемо побачити вкладку “Перевірка автентичності”:

Настроювання 802.1X на комутаторах Cisco за допомогою відмовостійкого NPS (Windows RADIUS with AD)

Коли переконалися, що політика успішно застосовується – можна переходити до настроювання мережної політики на 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)

Настроювання 802.1X на комутаторах Cisco за допомогою відмовостійкого NPS (Windows RADIUS with AD)

Типові налаштування для порту комутатора (звертаю увагу, що використовується тип аутентифікації "мультидомен" - 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).

Для створеної групи знизимо вимоги парольної політики (використовуючи Fine-Grained Password Policies через Active Directory Administrative Center -> domain -> System -> Password Settings Container) з такими параметрами Password-Settings-for-MAB:

Настроювання 802.1X на комутаторах Cisco за допомогою відмовостійкого NPS (Windows RADIUS with AD)

тим самим дозволимо використовувати мас-адресу пристроїв як паролі. Після цього ми зможемо створити мережну політику для аутентифікації 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

Додати коментар або відгук