
Rozważymy w praktyce wykorzystanie Windows Active Directory + NPS (2 serwery dla zapewnienia odporności) + standard 802.1x do kontroli dostępu i uwierzytelniania użytkowników – komputerów w domenie – urządzeń. Teorię na temat standardu można znaleźć w Wikipedii, pod linkiem:
Ponieważ moja „laboratoria” ma ograniczone zasoby, pełnię rolę NPS i kontrolera domeny, ale zalecam rozdzielenie takich krytycznych usług.
Nie znam standardowych sposobów synchronizacji konfiguracji (polityk) Windows NPS, dlatego będziemy korzystać ze skryptów PowerShell, uruchamianych przez harmonogram zadań (autor to mój były kolega). Dla uwierzytelniania komputerów w domenie oraz dla urządzeń, które nie obsługują 802.1x (telefonów, drukarek itd.), zostanie skonfigurowana polityka grupowa oraz utworzone grupy zabezpieczeń.
Na końcu artykułu opowiem o niektórych szczegółach pracy z 802.1x – jak można wykorzystać niezarządzane przełączniki, dynamiczne ACL itd. Podzielę się informacjami o napotkanych "problemach"...
Zaczniemy od instalacji i konfiguracji failover NPS na Windows Server 2012R2 (na 2016r. wszystko wygląda analogicznie): przez Menedżera serwera -> Kreator dodawania ról i funkcji wybieramy tylko Network Policy Server.

lub za pomocą PowerShell:
Install-WindowsFeature NPAS -IncludeManagementToolsKrótka uwaga – ponieważ dla Protected EAP (PEAP) będzie potrzebny certyfikat potwierdzający autentyczność serwera (z odpowiednimi uprawnieniami do używania), który będzie zaufany na komputerach klientów, może być konieczne również zainstalowanie roli Certification Authority. Ale załóżmy, że CA już go zainstalowaliście...
Zrobimy to samo na drugim serwerze. Utworzymy folder na skrypt C:Scripts na obu serwerach oraz folder sieciowy na drugim serwerze SRV2NPS-config$
Na pierwszym serwerze utworzymy skrypt PowerShell C:ScriptsExport-NPS-config.ps1 o następującej treści:
Export-NpsConfiguration -Path "SRV2NPS-config$NPS.xml"Następnie skonfigurujemy zadanie w Harmonogramie zadań: “Export-NpsConfiguration”
powershell -executionpolicy unrestricted -f "C:ScriptsExport-NPS-config.ps1" Wykonuj dla wszystkich użytkowników — Wykonaj z najwyższymi prawami
Codziennie — Powtarzaj zadanie co 10 minut przez 8 godzin.
Na zapasowym NPS skonfigurujemy import konfiguracji (polityk):
utworzymy skrypt PowerShell:
echo Import-NpsConfiguration -Path "c:NPS-configNPS.xml" >> C:ScriptsImport-NPS-config.ps1I zadanie na jego wykonanie co 10 minut:
powershell -executionpolicy unrestricted -f "C:ScriptsImport-NPS-config.ps1" Wykonuj dla wszystkich użytkowników — Wykonaj z najwyższymi prawami
Codziennie — Powtarzaj zadanie co 10 minut przez 8 godzin.
Teraz, aby sprawdzić, dodamy w NPS na jednym z serwerów (!) kilka przełączników jako klientów RADIUS (IP i wspólny klucz), dwie polityki zapytań o połączenie: WIRED-Connect (Warunek: “Typ portu NAS – Ethernet”) oraz WiFi-Enterprise (Warunek: “Typ portu NAS – IEEE 802.11”), a także politykę sieciową Dostęp do urządzeń sieciowych Cisco (Administratorzy sieci):
Warunki:
Grupy Windows - domainsg-network-admins
Ograniczenia:
Metody weryfikacji - Weryfikacja otwartym tekstem (PAP, SPAP)
Parametry:
Atrybuty RADIUS: Standard - Service-Type - Login
Zależne od dostawcy - Cisco-AV-Pair - Cisco - shell:priv-lvl=15Ze strony przełączników następujące ustawienia:
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 99Po skonfigurowaniu, po 10 minutach, wszyscy klienci polityki parametry powinni pojawić się również na zapasowym NPS i będziemy mogli zalogować się na przełącznikach za pomocą konta Active Directory, członka grupy domainsg-network-admins (którą utworzyliśmy wcześniej).
Przejdźmy do konfiguracji Active Directory – utworzymy politykę grupową i hasłową, utworzymy niezbędne grupy.
Polityka grupowa Computers-8021x-Settings:
Konfiguracja komputera (Włączona)
Polityki
Ustawienia Windows
Ustawienia zabezpieczeń
Usługi systemowe
Wwired AutoConfig (Tryb uruchamiania: Automatyczny)
Polityki sieciowe (802.3)
NPS-802-1x
Nazwa NPS-802-1x
Opis 802.1x
Ustawienia globalne
USTAWIENIE WARTOŚĆ
Użyj usług sieciowych LAN Windows dla klientów Włączone
Wspólne poświadczenia użytkownika do uwierzytelniania w sieci Włączone
Profil sieciowy
Ustawienia zabezpieczeń
Włączyć użycie uwierzytelniania IEEE 802.1X do dostępu do sieci Włączone
Egzekwować użycie uwierzytelniania IEEE 802.1X do dostępu do sieci Wyłączone
Ustawienia IEEE 802.1X
Uwierzytelnianie komputera Tylko komputer
Maksymalne błędy uwierzytelniania 10
Maksymalna liczba wysłanych wiadomości EAPOL-Start
Okres przechowywania (sekundy)
Okres rozpoczęcia (sekundy)
Okres uwierzytelniania (sekundy)
Właściwości metody uwierzytelniania w sieci
Metoda uwierzytelniania Chroniona EAP (PEAP)
Weryfikacja certyfikatu serwera Włączona
Połączenie z tymi serwerami
Nie prosić użytkownika o autoryzację nowych serwerów lub zaufanych organów certyfikujących Wyłączone
Włączyć szybkie ponowne połączenie Włączone
Rozłączyć, jeśli serwer nie przedstawia cryptobinding TLV Wyłączone
Egzekwować ochronę dostępu do sieci Wyłączone
Konfiguracja metody uwierzytelniania
Metoda uwierzytelniania Zabezpieczone hasło (EAP-MSCHAP v2)
Automatycznie użyć mojej nazwy logowania i hasła Windows (i domeny, jeśli są) Włączone
Utwórzmy grupę zabezpieczeń sg-computers-8021x-vl100, gdzie dodamy komputery, które chcemy przypisać do VLAN 100 i skonfigurujemy filtrację dla wcześniej utworzonej polityki grupowej dla tej grupy:

Aby upewnić się, że polityka działa poprawnie, należy otworzyć „Centrum zarządzania sieciami i udostępnianiem (Ustawienia sieci i Internetu) – Zmień ustawienia karty sieciowej (Skonfiguruj ustawienia karty sieciowej) – Właściwości karty”, gdzie zobaczymy zakładkę „Weryfikacja”:

Gdy upewnimy się, że polityka jest stosowana, możemy przejść do konfiguracji polityki sieciowej na NPS i portów przełącznika dostępowego.
Utwórzmy politykę sieciową neag-computers-8021x-vl100:
Warunki:
Grupy Windows - sg-computers-8021x-vl100
Typ portu NAS - Ethernet
Ograniczenia:
Metody uwierzytelniania - Microsoft: Protected EAP (PEAP) - Uwierzytelnianie niezaszyfrowane (PAP, SPAP)
Typ portu NAS - Ethernet
Ustawienia:
Standard:
Framed-MTU 1344
TunnelMediumType 802 (obejmuje wszystkie media 802 oraz format kanoniczny Ethernet)
TunnelPrivateGroupId 100
TunnelType Wirtualne sieci LAN (VLAN) 
Typowe ustawienia dla portu przełącznika (zwracam uwagę, że używany jest typ uwierzytelnienia „multi-domain” – Data & Voice, a także istnieje możliwość uwierzytelnienia według adresu MAC. W okresie „przejściowym” warto użyć w parametrach:
zdarzenie uwierzytelniania akcji niepowodzenia autoryzuj vlan 100
dażrzenie uwierzytelniania akcji bez odpowiedzi autoryzuj vlan 100
id VLAN nie jest „kwarantannowy”, lecz taki sam, do którego komputer użytkownika powinien trafić po pomyślnej autoryzacji – dopóki nie upewnimy się, że wszystko działa poprawnie. Te same parametry mogą być użyte w innych scenariuszach, na przykład, gdy do portu jest podłączony niezarządzany przełącznik i chcesz, aby wszystkie urządzenia podłączone do niego i nieprzeszłe autoryzacji trafiły do określonego VLAN-u („kwarantannowego”).
ustawienia portu przełącznika w trybie 802.1x host-mode multi-domain
domyślny zakres int Gi1/0/39-41
zakres int Gi1/0/39-41
shu
des PC-IPhone_802.1x
tryb portu switchport dostęp
switchport nonegotiate
switchport voice vlan 55
maximum 2 zabezpieczenia portu switchport
autoryzacja zdarzenia niepowodzenia akcji autoryzuj vlan 100
autoryzacja zdarzenia bez odpowiedzi akcji autoryzuj vlan 100
autoryzacja host-mode multi-domain
autoryzacja kontrola portu auto
autoryzacja naruszenie ograniczone
mab
dot1x pae autoryzator
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
exitAby upewnić się, że komputer/telefon został pomyślnie autoryzowany, wykonaj polecenie:
sh authentication sessions int Gi1/0/39 detTeraz utwórzmy grupę (na przykład, sg-fgpp-mab ) w Active Directory dla telefonów i dodamy do niej jeden aparat do testów (w moim przypadku to Grandstream GXP2160 z adresem MAC 000b.82ba.a7b1 i odpowiednim kontem użytkownika domena 00b82baa7b1).
Dla utworzonej grupy obniżymy wymagania polityki haseł (korzystając z przez Centrum administracyjne Active Directory -> domena -> System -> Kontener ustawień haseł) z następującymi parametrami Ustawienia haseł dla MAB:

tym samym pozwolimy na używanie adresu MAC urządzeń jako haseł. Po tym będziemy mogli stworzyć politykę sieciową dla uwierzytelniania 802.1x metodą mab, nazwiemy ją neag-devices-8021x-voice. Parametry są następujące:
- Typ portu NAS – Ethernet
- Grupy systemu Windows – sg-fgpp-mab
- Typy EAP: Uwierzytelnianie nieszyfrowane (PAP, SPAP)
- Atrybuty RADIUS – Specyficzne dla dostawcy: Cisco – Cisco-AV-Pair – Wartość atrybutu: device-traffic-class=voice
po pomyślnym uwierzytelnieniu (nie zapominajmy skonfigurować portu przełącznika), sprawdzimy informacje z portu:
sh authentication se int Gi1/0/34
----------------------------------------
Interfejs: GigabitEthernet1/0/34
Adres MAC: 000b.82ba.a7b1
Adres IP: 172.29.31.89
Nazwa użytkownika: 000b82baa7b1
Status: Authz Success
Domena: VOICE
Oper tryb hosta: multi-domain
Oper kierunek kontroli: both
Autoryzowane przez: Serwer autoryzacji
Czas trwania sesji: N/A
Czas bezczynności: N/A
Wspólny identyfikator sesji: 0000000000000EB2000B8C5E
Identyfikator sesji rachunkowej: 0x00000134
Uchwyt: 0xCE000EB3
Lista metod możliwych do uruchomienia:
Metoda Stan
dot1x Nieudana
mab Authc SuccessTeraz, jak obiecałem, rozważymy kilka mniej oczywistych sytuacji. Na przykład, musimy podłączyć urządzenia komputerowe użytkowników przez niezarządzany przełącznik. W tym przypadku ustawienia portu dla niego będą wyglądać następująco:
ustawienia portu przełącznika w trybie 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 ! zwiększamy liczbę dozwolonych adresów MAC
authentication event fail action authorize vlan 100
authentication event no-response action authorize vlan 100
authentication host-mode multi-auth ! – tryb uwierzytelniania
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. zauważono bardzo dziwny błąd – jeśli urządzenie było podłączone przez taki przełącznik, a następnie podłączone do zarządzanego przełącznika, to NIE będzie działać, dopóki nie zrestartujemy(!) przełącznika. Jak na razie nie znalazłem innych sposobów rozwiązania tego problemu.
Jeszcze jeden aspekt związany z DHCP (jeśli używane jest ip dhcp snooping) – bez takich opcji:
ip dhcp snooping vlan 1-100
no ip dhcp snooping information optionz jakiegoś powodu nie można poprawnie uzyskać adresu ip… chociaż może to jest cechą naszego serwera DHCP
A także Mac OS & Linux (w których wsparcie dla 802.1x jest nativne) próbują przejść autoryzację użytkownika, nawet jeśli ustawiona jest autoryzacja po adresie MAC.
W następnej części artykułu omówimy zastosowanie 802.1x dla Wireless (w zależności od grupy, do której należy konto użytkownika, 'wrzucimy' go do odpowiedniej sieci (VLAN), chociaż będą się łączyć pod jednym SSID).
Źródło: habr.com
