Windows Server 2008

Network Access Protection Udostępnij na: Facebook

Autor: Nataniel Zieliński

Opublikowano: 8 stycznia 2008

Zawartość strony
Wstęp  Wstęp
Krótko o NAP  Krótko o NAP
Polisy Zdrowia (Health policy)  Polisy Zdrowia (Health policy)
SHA (System Health Agent)  SHA (System Health Agent)
NPS – Network Policy Server  NPS – Network Policy Server
Efekt działania NPS  Efekt działania NPS
Scenariusze NAP  Scenariusze NAP
VPN  VPN
DHCP  DHCP
IPSec  IPSec
8o2.1x  8o2.1x
Polisy NPS  Polisy NPS
Refs  Refs

Wstęp

NAP to jeden z najważniejszych mechanizmów, jakie pojawiają się wraz z nowym produktem serwerowym – Windows Server 2oo8. Na stronach Microsoft można znaleźć sporo materiałów technicznych, opisujących czym jest NAP. Podstawowym źródłem informacji jest polskie techcenter dla Windows Server 2oo8, gdzie znajduje się wiele artykułów dotyczących platformy NAP (https://www.microsoft.com/poland/technet/prodtechnol/windowsserver2008/default.mspx). Niniejszy różni się tym, że traktuje całość bardziej globalnie i, mam nadzieję, lepiej wyjaśnia pewne kwestie zastosowania NAP w praktyce.

 Do początku strony Do początku strony

Krótko o NAP

Materiały marketingowe często wprowadzają duże zamieszanie, utrudniając tym samym zrozumienie przedstawianych mechanizmów na poziomie technicznym, dlatego zdecydowałem się rozpocząć pisać o NAP, wyjaśniając w pierwszej kolejności, czym NAP nie jest:

  • NAP nie definiuje zasad bezpieczeństwa,
  • nie zabezpiecza sieci,
  • nie zabezpiecza komputerów,
  • nie jest aplikacją,
  • nie zabezpiecza przed atakami hackerów ani innymi włamaniami.

Jeśli ktoś już o tej technologii czytał, może oskarżyć mnie o głoszenie herezji. Czym zatem jest?

NAP jest platformą pozwalającą na zwiększenie ochrony stacji w sieci, poprzez możliwość zdefiniowania polityki zdrowia oraz zdefiniowania sposobu jej wymuszenia na stacjach. „Platforma” oznacza, iż nie jest to pojedynczy produkt, ale zespół poszczególnych usług i aplikacji, a nawet rozwiązań sprzętowych, które należy skonfigurować zależnie od wymagań i możliwości. „Polityka zdrowia” to natomiast zestaw zasad, jakie musi spełnić stacja. Ogólna zasada działania NAP przedstawiona jest na rysunku 1., na którym widać komponenty uczestniczące w przepływie.

Rys. 1. Elementy platformy NAP.

Rys. 1. Elementy platformy NAP.

 Do początku strony Do początku strony

Polisy Zdrowia (Health policy)

Polisy zdrowia to nic innego jak zestaw zasad opisujących, co rozumie się przez „zdrowy system”. Przykładem może być aktualność zainstalowanych poprawek, włączony i aktualny skaner AV, ale może to być np. aktywna instancja aplikacji zarządzającej, wymaganej w korporacji. Każda firma ma własną definicję określającą wymogi, jakie stacja *powinna* spełniać – a dzięki NAP można te zasady „wymusić” (enforcement). Narzuca się porównanie do polis GPO, jednak z porównaniem takim należy być ostrożnym – nad czym postaram się podyskutować w dalszej części.

Tak naprawdę polisy zdrowia przechowywane są w ramach serwera NPS.

 Do początku strony Do początku strony

SHA (System Health Agent)

Podstawowym komponentem po stronie klienta są SHA. „Są” – ponieważ komponentów SHA może być wiele. Każdy agent odpowiedzialny jest za zweryfikowanie stanu wybranych ustawień systemu. Wraz z systemem (Windows XP SP3, Vista oraz Server 2oo8) dostarczany jest SHA napisany przez firmę Microsoft, który potrafi np. sprawdzić czy włączona jest usługa AutoUpdate i czy zainstalowane są aktualne poprawki. W skrócie, standardowy SHA potrafi skomunikować się z systemowym „Security Center”.

Sprawdzić jednak można dowolny komponent i dowolny warunek – aby zapewnić pełną elastyczność w tym zakresie, dostępne jest publiczne API dla firm, chcących tworzyć własnych agentów. Dzięki temu z niewielkim nakładem programistycznym firma może np. sprawdzać czy na każdej stacji zainstalowana jest krytyczna dla bezpieczeństwa aplikacja firmowa lub utworzona jest konkretna wartość w rejestrze.

 Do początku strony Do początku strony

NPS – Network Policy Server

Jednym z najbardziej krytycznych elementów całej platformy jest serwer NPS, będący kolejnym wcieleniem IAS (Internet Authentication Service) czyli Microsoftowej implementacji usługi RADIUS (Remote Authentication Dial In User Service). RADIUS jest standardem otwartym (RFC2865) a jego zastosowanie wbrew początkowym założeniom rozszerzyło się dla wsparcia autentykacji 8o2.1x (zarówno Wireless, jak Wired). To właśnie komponent RADIUS odpowiedzialny jest za uwierzytelnienie użytkownika/stacji, dzięki czemu NAP jest platformą elastyczną, pozwalającą na wykorzystanie sieciowych mechanizmów już na urządzeniach (np. wrzucenie klienta do odpowiedniego VLAN, zdefiniowanego na switchu obsługującym 8o2.1x).

Na serwerze NPS znajduje się komponent SHV (System Health Validator), który umie:

  • odczytać polisę z SHS,
  • odebrać wyniki od SHA (obowiązuje zasada „klucza i zamka” – każdy SHA musi posiadać na serwerze swój komponent SHV),
  • porównać je ze sobą,
  • wykonać odpowiednią akcję – zależnie od definicji utworzonej przez administratora.

 Do początku strony Do początku strony

Efekt działania NPS

Efekt porównania polis może być bardzo różny i częściowo zależny od sprzętu, jakim dysponuje firma (8o2.1x). Serwer NPS pozwala na zdefiniowanie wielu różnych akcji – polityk sieciowych (network policy):

  • nie dopuszczenie klienta do sieci,
  • dopuszczenie klienta do wydzielonego segmentu,
  • dopuszczenie klienta do sieci na określoną ilość czasu.

Przed decyzją nad efektem działania polis należy zastanowić się nad scenariuszem zastosowania – zależnie od wyboru niektóre opcje mogą nie działać prawidłowo. Scenariusze zostaną przedstawione za chwilę, tymczasem krótkie wyjaśnienie, co oznaczają dwa ostatnie punkty:

  • Dopuszczenie klienta do wydzielonego segmentu wymaga urządzeń realizujących autentykację 8o2.1x i potrafiących przydzielić klienta do odpowiedniego VLANu, podczas dostępu wdzwanianego, poprzez polisy restrykcji, lub via DHCP przydzielając adres z innej puli. W takiej wydzielonej sieci powinny znajdować tzw. „Remediation Servers” – czyli Serwery Szczepionek, umożliwiające klientowi „naprawienie się”. Przykładowo jeśli klient nie spełnia polityki zdrowia ponieważ nie ma aktualnych definicji wirusów dla skanera AV, po dołączeniu się do sieci z restrykcjami ma możliwość połączenia się z serwerem szczepionek i pobrania ich. podczas pisania o ograniczonym dostępnie czy wydzielonej sieci świadomie unikam sformułowania „DMZ”, ponieważ w scenariuszach NAP rzadko jest to de facto strefa zdemilitaryzowana.
  •  
  • Dopuszczenie na określoną ilość czasu jest mniej bezpiecznym rozwiązaniem dając klientowi pełny dostęp do sieci. Klient będzie pracował normalnie miał określoną ilość czasu – serwery remediation servers mogą wtedy być w sieci LAN.

Niezależnie od wybranej ścieżki, użytkownik jest informowany o statusie połączenia na swojej stacji. Wyświetlany status pozwala zdefiniować rodzaj wyświetlanego komunikatu i linku odnoszącego do strony z większą ilością informacji. W ten sposób można przedstawić użytkownikowi końcowemu sposób postępowania w przypadku, kiedy stacja nie jest w stanie „zreperować się” automatycznie.

Rys. 2. Definicja restrykcji dostępu w polisie sieciowej RADIUS.

Rys. 2. Definicja restrykcji dostępu w polisie sieciowej RADIUS.

Rys. 3. Możliwość zdefiniowania ograniczonego dostępu.

Rys. 3. Możliwość zdefiniowania ograniczonego dostępu.

 Do początku strony Do początku strony

Scenariusze NAP

Network Access Protection obejmuje cztery podstawowe scenariusze zastosowania. W oryginale nazywają się one „access enforcement mechanisms”, ponieważ definiują wymuszenie kanału komunikacyjnego pomiędzy klientem a siecią korporacyjną:

  • VPN,
  • DHCP,
  • IPSec,
  • 8o2.1x.

 Do początku strony Do początku strony

VPN

Scenariusz VPN jest standardowym scenariuszem dostępu wdzwanianego/VPN. Klient próbuje połączyć się z siecią korporacyjną, celem uwierzytelnienia zgłasza się do serwera NPS, ten weryfikuje status zdrowia i przyznaje odpowiedni poziom dostępu. Ten scenariusz można porównać z mechanizmem kwarantanny znanym z ISA Server, należy jednak pamiętać o podstawowej różnicy, w przypadku kwarantanny uruchamiane były skryty, weryfikujące status pewnych elementów. Jeśli np. skrypt sprawdził czy włączony jest skaner AV i dostęp został przyznany, użytkownik mógł w następnym kroku wyłączyć skaner nie tracąc dostępu do sieci. W przypadku platformy NAP Quarentine Agent (zob. Rysunek 1 elementy platformy NAP) na bieżąco informuje o statusie klienta, komunikując się z SHA. Jeśli więc konfiguracja objęta kontrolą ulegnie zmianie – reakcja będzie natychmiastowa, zmieniając rodzaj dostępu dla klienta.

Sposób działania QA i SHA jest globalny – dotyczy wszystkich scenariuszy.

 Do początku strony Do początku strony

DHCP

Usługa DHCP w Windows Server 2oo8 została przystosowana do pracy jako komponent platformy NAP. Ideą „DHCP Enforcement” jest wymuszenie polityki zdrowia na stacji klienckiej w momencie jej zgłoszenia się po adres IP. Rozwijając tą możliwość zależnie od statusu zdrowia klientowi może zostać przydzielony numer z innej puli adresów. Scenariusz ten jest dobrym przykładem na wyjaśnienie, iż NAP nie ma na celu bezpośrednio „zabezpieczać”. Zarzucić by można, iż nadając statyczny numer IP w łatwy sposób wydostajemy się spod kontroli NAP. I tak jest w rzeczywistości – jednak:

  • żeby zmienić numer IP trzeba mieć uprawnienia,
  • trzeba umieć tą operację wykonać,
  • ale co najważniejsze - NAP w takim scenariuszu „nie zabezpiecza” - pomaga upewnić się, iż wszystkie komputery w sieci spełniają założone wymagania zdrowia, udostępniając mechanizmy naprawy.

 Do początku strony Do początku strony

IPSec

W przypadku scenariusza IPSec można zacząć mówić, iż faktycznie „NAP zabezpiecza” sieć, faktycznie nie dopuszczając klientów niespełniających polityki zdrowia do sieci. Zdanie to jednak będzie prawdziwe dopiero w momencie, kiedy do „NAP with IPSec Enforcement” doda się dobrze zaimplementowaną politykę izolacji domeny – co znów pokazuje, że NAP sam w sobie nie realizuje zabezpieczenia, ale współpracując z innymi komponentami czyni je częścią całej platformy. Wiele informacji dotyczących sposobu utworzenia izolacji można znaleźć w ref.4 dla sieci Windows 2ooo/2oo3 oraz trochę informacji dotyczących tworzenia polisy izolacji na Windows Server 2oo8 w ref. 5.

Jak to działa w praktyce? Mówiąc krótko – świetnie, a bardziej szczegółowo: warunkiem koniecznym jest stworzenie izolacji domeny w oparciu o certyfikaty zdrowia, czyli wymuszenie komunikacji IPSec pomiędzy klientami oraz serwerami. Klient, który się będzie próbował podłączyć do zasobów, odwoła się do serwera RADIUS (czyli NPS) celem uwierzytelnienia i uzyskania certyfikatu. Zweryfikowany zostanie jego status i jeśli wszystko przebiegnie pomyślnie – klient dostanie certyfikat zdrowia. Dzięki niemu będzie mógł zestawić kodowany kanał IPSec i dostać się do sieci korporacyjnej.

Zastosowanie IPSec Enforcement bez izolacji domeny lub 8o2.1x enforcement (opisywanym dalej) nie daje żadnego zabezpieczenia (podobnie jak w przypadku DHCP Enforcement). Jeśli klient nie będzie spełniał wymogów, nie będzie w stanie zestawić kanału IPSec, co jednak w żaden sposób nie wpłynie na możliwość komunikacji z pozostałymi komputerami, które w takim wypadku nie wymagają połączenia szyfrowanego (brak izolacji).

 Do początku strony Do początku strony

8o2.1x

Scenariusz ostatni najlepiej sprawuje się jako uzupełnienie scenariusza IPSec, choć może stanowić osobne rozwiązanie. Opiera się na umiejętności obsługi uwierzytelnienia klientów na urządzeniu sieciowym – Switchu (Wired) lub Access Poincie WiFi (Wireless). Dzięki temu każde urządzenie/użytkownik, który podłącza się do sieci, najpierw musi przejść autoryzację na Switchu lub AP. Ten zgłasza się do serwera NPS który dokonuje weryfikacji zdrowia. Jeśli klient nie spełnia wymagań, urządzenie przyznaje ograniczony profil dostępu, który może być listą filtrów lub identyfikatorem VLAN. W obu wypadkach klient będzie miał dostęp tylko do wydzielonego fragmentu sieci (jeśli do tej pory nie było jasne, czemu nie używa się określenia DMZ – teraz nie powinno być wątpliwości).

Metoda ta jest dużo wydajniejsza niż IPSec isolation dając podobny efekt – obsługa IPSec jest bardzo wymagająca w stosunku do zasobów procesora i pamięci [koszt kodowania], co przy dużej ilości klientów może spowodować pełne obciążenie serwera. Zepchnięcie restrykcji dostępu na urządzenia sieciowe znosi wymaganie kodowania, jednak podstawowa wadą jest... konieczność posiadania takich urządzeń. W sukurs przychodzą nowe cechy stosu TCP/IP wspierające IPSec na poziomie kernela [TCP offloading, optymalizacja negocjacji IPSec i inne], co jednak nie jest tematem tego artykułu. Ciekawy przegląd cech prezentuje dokument „Changes in Functionality from Windows Server 2003 with SP1 to Windows Server 2008”.

 Do początku strony Do początku strony

Polisy NPS

Bardzo często pada sformułowanie „polisa zdrowia”, „polisa sieciowa”, „polisa bezpieczeństwa”... dorzucając jeszcze „polisy grupowe” powstanie piękny miszmasz. Na serwerze NPS można zdefiniować trzy rodzaje polis:

  • Polisa rodzaju połączenia,
  • Polisa sieciowa,
  • Polisa zdrowia.

Rys. 4. Snapin MMC dla NPS.

Rys. 4. Snapin MMC dla NPS.

Dwie pierwsze polisy są dobrze znane osobom, które RADIUSem już się zajmowały, ponieważ dotyczą sposobu i zakresu autentykacji. Nowością są polisy zdrowia opisane wcześniej. Polis bezpieczeństwa nie ma, a polisy grupowe – GPO to oddzielna historia. Dopiero odpowiednia konfiguracja zależności pomiędzy wszystkimi wymienionymi polisami będzie finałem konfiguracji – tu w sukurs przychodzi wizard konfiguracji NPS, który pozwala w dużej części przypadków całą „czarną robotę” wykonać za administratora. Najbardziej złożona jest polisa sieciowa, która aby zachować pełną elastyczność pozwala ustalić dziesiątki opcji – którymi [po części] zajmę się w kolejnej części artykułu.

Kończąc temat polis krótka próba porównania GPO z polisami zdrowia. Korzystając z dokumentów step-by-step ze stron Microsoft w podstawowym przykładzie pokazane jest włączenie/wyłączenie firewalla jako efekt wymuszenia polisy zdrowia. Ponad to skoro można napisać własnego SHA, który może zweryfikować dowolną opcję, to czy znaczy to, że GPO można by zastąpić polisami zdrowia? Teoretyczna odpowiedź brzmi: tak. W praktyce do odpowiedniej czynności wykorzystuje sie odpowiednie mechanizmy a wykorzystanie NAP do tego celu wymagałoby dużego wkładu programistycznego i napisania własnego SHA i SHV, które będą realizować to, co teraz robią polisy GPO. Konfiguracja Firewalla jest niefortunnym przypadkiem, gdzie faktycznie opcje GPO i polityki zdrowia pokrywają się, jednak nie tyczy się to pozostałych elementów.

Bardzo modnym zjawiskiem w IT jest „konwergencja”, która jest globalnie dostrzegalna – więc jeśli NAP zostanie spopularyzowany, być może w Windows Server 2012 polisy GPO będą integralną częścią NAP? W sumie czemu GPO nie miało być wymuszane przez serwer NPS?

 Do początku strony Do początku strony

Refs

  1. Informacje podstawowe o NAP https://www.microsoft.com/windowsserver2008/network-access-protection.mspx,
  2. NAP na technet https://technet.microsoft.com/en-us/network/bb545879.aspx,
  3. RADIUS RFC2865 http://www.faqs.org/rfcs/rfc2865.html,
  4. Server and Domain Isolation https://technet.microsoft.com/en-us/network/bb545651.aspx,
  5. NAP IPSec step-by-step lab https://www.microsoft.com/downloads/details.aspx?familyid=298FF956-1E6C-4D97-A3ED-7E7FFC4BED32&displaylang=en,
  6. Changes in Functionality from Windows Server 2003 with SP1 to Windows Server 2008 https://www.microsoft.com/downloads/details.aspx?familyid=173e6e9b-4d3e-4fd4-a2cf-73684fa46b60&displaylang=en&tm.

Nataniel Zieliński Nataniel Zieliński (konsultant ISCG)
Przygodę z komputerem zaczynał na polskich 8-bitowcach Bosman 8 w późnych latach 80-tych. Po bogatych doświadczeniach z licznymi systemami, rozpoczął karierę jako administrator systemów Windows NT w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych, gdzie zgłębiał tajemnice kolejnych wersji Windows NT, zarówno od strony technicznej - administrując, jak teoretycznej - prowadząc kursy MOC w Akademickim Centrum Szkoleniowym. Od kilku lat pracuje w roli konsultanta oraz trenera MCT w firmie ISCG Sp. z o.o., Gold Partnera Microsoft, dalej pogłębiając swoją wiedzę w dziedzinie kolejnych produktów ze stacji Microsoft. Od dłuższego czasu członek elitarnego klubu inżynierów Microsoft - SEClub.
 Do początku strony Do początku strony

Windows Server 2008