Хабрахабр

Настройка 802.1X на коммутаторах Cisco с помощью отказоустойчивого NPS (Windows RADIUS with AD)

image
Рассмотрим на практике использование Windows Active Directory + NPS (2 сервера для обеспечения отказоустойчивости) + стандарт 802.1x для контроля доступа и аутентификации пользователей – доменных компьютеров – устройств. Ознакомиться с теорией по стандарту можно в Wikipedia, по ссылке: IEEE 802.1X

Так как “лаборатория” у меня ограничена по ресурсам, совместим роли NPS и контроллера домена, но вам я рекомендую такие критичные сервисы все же разделять.

Для аутентификации компьютеров домена и для устройств, не умеющих в 802. Стандартных способов синхронизации конфигураций (политик) Windows NPS я не знаю, поэтому будем использовать скрипты PowerShell, запускаемые планировщиком заданий (автор мой бывший коллега). 1x (телефоны, принтеры и пр), будет настроена групповая политика и созданы группы безопасности.

1x – как можно использовать неуправляемые коммутаторы, dynamic ACL и пр. В конце статьи расскажу о некоторых тонкостях работы с 802. Поделюсь информацией об отловленных “глюках”…
Начнем с установки и настройки failover NPS on Windows Server 2012R2 (на 2016-м все аналогично): через Server Manager -> Add Roles and Features Wizard выбираем лишь Network Policy Server.

image

или с помощью PowerShell:

Install-WindowsFeature NPAS -IncludeManagementTools

Но будем считать, что CA у вас уже установлен… Небольшое уточнение – так как для Protected EAP (PEAP) вам обязательно потребуется сертификат, подтверждающий подлинность сервера (с соответствующими правами на использование), который будет в доверенных на клиентских компьютерах, то вам скорее всего потребуется установить еще и роль Certification Authority.

Сделаем тоже самое и на втором сервере. Создадим папку для скрипта C:\Scripts на обоих серверах и сетевую папку на втором сервере \\SRV2\NPS-config$

На первом сервере создадим PowerShell скрипт C:\Scripts\Export-NPS-config.ps1 со следующим содержанием:

Export-NpsConfiguration -Path "\\SRV2\NPS-config$\NPS.xml"

После этого настроим задание в Task Sheduler: “Export-NpsConfiguration

powershell -executionpolicy unrestricted -f "C:\Scripts\Export-NPS-config.ps1"

Выполнять для всех пользователей — Выполнить с наивысшими правами
Ежедневно — Повторять задачу каждые 10 мин. в течении 8 ч.

На резервном NPS настроим импорт конфигурации (политик):
создадим скрипт PowerShell:

echo Import-NpsConfiguration -Path "c:\NPS-config\NPS.xml" >> C:\Scripts\Import-NPS-config.ps1

и задачу на его выполнение каждые 10 минут:

powershell -executionpolicy unrestricted -f "C:\Scripts\Import-NPS-config.ps1"

Выполнять для всех пользователей — Выполнить с наивысшими правами
Ежедневно — Повторять задачу каждые 10 мин. в течении 8 ч.

11”), а также сетевую политику Access Cisco Network Devices (Network Admins): Теперь, для проверки, добавим в NPS на одном из серверов(!) пару коммутаторов в RADIUS-клиенты (IP и Shared Secret), две политики запросов на подключение: WIRED-Connect (Условие: “Тип порта NAS – Ethernet”) и WiFi-Enterprise (Условие: “Тип порта NAS – IEEE 802.

Условия:
Группы Windows - domain\sg-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, члена группы domain\sg-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

NPS-802-1x_AD-Policy

Создадим группу безопасности sg-computers-8021x-vl100, куда мы будем добавлять компьютеры, которые мы хотим распределять в влан 100 и настроим фильтрацию для созданной ранее групповой политики на эту группу:

1x-Authentication-GPO-Filtering"/> <img src="https://habrastorage.org/getpro/habr/post_images/79b/5d5/11c/79b5d511c9c2551781cfa4b8b4113552.png" alt="802.

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

Проверка подлинности сетевого доступа для адаптера Ethernet

Когда убедились, что политика успешно применяется – можно переходить к настройке сетевой политики на 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 Authentication Network Policy

на время “переходного периода” есть смысл использовать в параметрах: Типовые настройки для порта коммутатора (обращаю внимание, что используется тип аутентификации “мультидомен” – 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\000b82baa7b1).

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

Fine-Grained Password Policies (FGPP) for MAB devices

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

P.S. замечен очень странный глюк – если устройство было подключено через такой свитч, а потом его воткнули в управляемый коммутатор, то оно НЕ заработает, пока мы не перезагрузим(!) свитч Пока других способов решения этой проблемы не нашел.

Еще один момент, связанный с DHCP (если используется ip dhcp snooping) – без таких вот опций:

ip dhcp snooping vlan 1-100
no ip dhcp snooping information option

почему-то корректно ip адрес не получить…хотя может это особенность нашего DHCP сервера

1x нативная) пытаются пройти аутентификацию пользователем, даже если настроена аутентификация по мас-адресу. А еще Mac OS & Linux (в которых поддержка 802.

1x для Wireless (в зависимости от группы, в которую входит учетная запись пользователя, его будем “закидывать” в соответствующую сеть (влан), хотя подключаться они будут к одному SSID). В следующей части статьи рассмотрим применение 802.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть