Windows Server 2019 – Serwer RADIUS
W wielu środowiskach sieciowych wykorzystywany jest system Windows Server. System ten może pełnić wiele ról i funkcji a jedną z nich jest serwer RADIUS. Tak więc rodzi się pytanie – czym właściwie jest RADIUS i jakie ma do spełnienia zadanie?
Remote Authentication Dial-In User Server (RADIUS) jest mechanizmem pracującym w architekturze klient/serwer a jego głównym zadaniem jest umożliwienie przeprowadzenie operacji uwierzytelnienia, autoryzacji a także rejestracji dostępu do zasobów tzw. AAA – Authencication, Authorization, Accounting.
Główną zaletą stosowania serwera RADIUS jest przechowywanie przez niego bazy danych użytkowników, którzy mają prawo do korzystania z udostępnionych zasobów sieciowych. Centralna baza pozwala na wykonanie procesu logowania na każdym z klientów. Klientem może być router, AP czy host. Zarządzanie procesem AAA jest łatwiejsze gdyż nie musimy tworzyć kont na każdym z urządzeń osobno, dodatkowo w przypadku skorzystania z Windows Server mamy możliwość wykorzystania usługi Active Directory.
Komunikaty RADIUS są przesyłane z wykorzystaniem protokołu UDP (ang. User Datagram Protocol) poprzez porty:
- 1812 – przesyłanie wiadomości uwierzytelniających,
- 1813 – przesyłanie wiadomości zliczających ruch.
W tym wpisie skoncentrujemy się na wykorzystaniu serwera RADIUS do autoryzacji routerów i przełączników firmy CISCO lecz z powodzeniem można go wykorzystać do uwierzytelniania użytkowników sieci przewodowych i bezprzewodowych.
Profesjonalne usługi informatyczne dla firm. W swojej ofercie posiadamy Outsourcing IT, certyfikaty SSL, szkolenia informatyczne oraz audyty bezpieczeństwa.
Zadzwoń i dowiedz się więcej, tel. 68 411 40 00.
Topologia naszej ćwiczebnej sieci nie jest skomplikowana i przedstawia się następująco. Naszym celem będzie skonfigurowanie serwera RADIUS, który będzie pracował pod kontrolą systemu Windows Server 2019, a także podłączeniu do niego routera R1 tak by możliwa była autoryzacja użytkownika z jego wykorzystaniem.
Rozpoczniemy od instalacji i konfiguracji odpowiedniej roli na serwerze.
By móc rozpocząć konfigurację serwera RADIUS należy mieć zainstalowaną usługę Active Directory. Za pośrednictwem AD będzie można założyć konta użytkownikom a następnie przypisać ich do danej grupy. Użytkownicy tej grupy będą mieli prawo zalogowania się do urządzeń sieciowych.
Jak widać poniżej nasz serwer spełnia powyższe wymagania – rola Active Directory na serwerze jest zainstalowana.
Aby rozszerzyć funkcjonalność naszego serwera o funkcję serwera RADIUS wybieramy opcję Zarządzaj (ang. Manage) a następnie Dodaj role i funkcje (ang. Add role and features).
Po wybraniu Dodaj role i funkcje działanie rozpocznie Kreator dodawania ról i funkcji (ang. Add Role and Features Wizard). Pierwszy ekran pełni rolę informacyjną tak więc klikamy Dalej.
Pierwszą decyzję jaką musimy dokonać jest wybranie Typu instalacji wybieramy opcję Instalacja oparta na rolach lub oparta na funkcjach (ang. Role-based and feature-based instalation).
Kolejny krok to określenie serwera na którym instalacja będzie przeprowadzana. Po zaznaczeniu opcji Wybierz serwer z puli serwerów (ang. Select a server from the server pool) w oknie Pula serwerów (ang. Server Pool) wybieramy interesujący nas serwer.
W następnym oknie kreatora z dostępnych Ról serwera (ang. Server Role) zaznaczamy rolę Usługi zasad sieciowych i dostępu sieciowego (ang. Network Policy and Access Services).
Po wybraniu nowej roli kreator automatycznie doda role i funkcje powiązane z instalowaną rolą. Wybieramy Dodaj funkcje (ang. Add Features).
Po zdefiniowaniu roli kolejne okno kreatora odpowiada za dodanie funkcji. Funkcje zostały automatycznie dodane w poprzednim kroku a więc wybieramy Dalej.
Po zdefiniowaniu ról i funkcji następny ekran kreatora jest ekranem informacyjnym, opisującym dodawane funkcjonalności.
Okno Potwierdzenie opcji instalacji (ang. Confirm installation selections) jest podsumowaniem przeprowadzonej konfiguracji. Wybieramy Zainstaluj.
W wcześniejszych wersjach systemu Windows Server pomiędzy oboma ekranami, jest wyświetlany jeszcze jeden – Usługi ról. Pozostawiamy domyślnie zdefiniowaną rolę Serwer zasad sieciowych (ang. Network Policy Server). Wybieramy Dalej.
Po zatwierdzeniu wszystkich opcji następuje instalacja nowych ról, a także funkcji.
Po poprawnej instalacji w oknie Menedżera serwera powinna pojawić się nowa zakładka Usługi zasad sieciowych i dostępu sieciowego (w wcześniejszych wersjach Ochrona dostępu do sieci ang. NAP). Wybieramy zakładkę i po wyborze serwera co do, którego będzie przeprowadzana konfiguracja, z rozwijanego menu klikamy na opcję Serwer zasad sieciowych (ang. Network Policy Server).
Pierwszą czynność jaką musimy wykonać to zarejestrowanie serwera w usłudze Active Directory, rejestrację dokonujemy po kliknięciu PPM na węzeł reprezentujący nasz serwer i wybraniu z menu kontekstowego opcji Zarejestruj serwer w usłudze Active Directory (ang. Register the server in Active Directory). Rejestracja serwera zapewni nam współpracę z AD.
W nowo otwartym oknie Serwer zasad sieciowych potwierdzamy autoryzację serwera NAP w usłudze AD.
Kolejny komunikat również potwierdzamy klikając na OK.
Serwer zasad sieciowych od tej pory będzie współpracował z usługą AD.
Przechodzimy do kolejnego etapu a mianowicie do konfiguracji serwera RADIUS.
Pierwszym krokiem jest zdefiniowanie klienta usługi RADIUS. Klientem będzie router. W tym celu po zaznaczeniu gałęzi Klienci usługi RADIUS (ang. RADIUS Clients) klikamy PPM i z menu wybieramy opcję Nowy.
W oknie Nowy klient usługi RADIUS (ang. New RADIUS Client) uzupełniamy pola:
1 – Przyjazna nazwa (ang. Friendly name) – jest to nazwa urządzenia np. R1, R2 – w scenariuszu nazwa została określona na CISCO. Dobrą zasadą jest aby nazwa ta była tożsama z nazwą urządzenia (w przypadku wielu klientów ułatwia identyfikację).
2 – Adres (IP lub DNS) – adres sieciowy urządzenia,
3 – Wspólny klucz tajny (ang. Shared secret) – klucz za pomocą, którego zabezpieczymy komunikację pomiędzy urządzeniem a serwerem RADIUS. Rozróżniana jest wielkość liter. W ćwiczeniu wartość klucza została ustalona na: cisco123
Na karcie Zaawansowane z rozwijanej listy Nazwa dostawcy wybieramy Cisco.
Nowy klient został dodany.
Po zdefiniowaniu klienta kolejną czynnością jaką należy wykonać jest utworzenie nowej Zasady żądań połączeń. Zasada ta będzie zezwalać klientowi na łączność z serwerem RADIUS.
Aby utworzyć zasadę z lewej strony odszukujemy gałąź Zasady żądań połączeń (ang. Connection Request Policies) i z menu kontekstowego wybieramy Nowy.
W nowo otwartym oknie określamy nazwę tworzonej zasady (ang. Policy Name) – w naszym scenariuszu nazwa została określona jako: Cisco-uzytkownicy Wybieramy Dalej.
Kolejny krok to określenie warunków tworzonej zasady, aby dodać warunek wybieramy Dodaj.
W oknie Wybieranie warunku (ang. Select condition) należy zdecydować do jakiego obiektu tworzona zasada będzie miała zastosowanie. Przy definicji klienta serwera RADIUS posłużyliśmy się tzw. Przyjazną nazwą klienta (ang. Client Friendly Name) dlatego też nasz warunek zbudujemy w oparciu o tę nazwę. Nasz warunek również moglibyśmy określić z użyciem Adresu IPv4 klienta.
Po wyborze opcji Przyjazna nazwa klienta i kliknięciu na Dodaj definiujemy nazwę. Ponieważ wcześniej zdefiniowaliśmy nazwę jako Cisco, tak więc w polu również wpisujemy Cisco.
Warunek został dodany wybieramy Dalej.
Na kolejnej karcie pozostawiamy wszystkie domyślne opcje i klikamy Dalej.
Na ,,Określenie metod uwierzytelnienia” również nie wprowadzamy żadnych zmian i wybieramy Dalej.
Na karcie Konfigurowanie ustawień określamy atrybuty wobec, których będzie stosowana reguła. Tu po rozwinięciu pola Atrybut (ang. Attribute) z rozwijanego menu wybieramy Nazwa użytkownika (ang. User-Name).
Ostatni ekran jest ekranem podsumowującym przeprowadzaną konfigurację. Wybieramy Zakończ. Zasada została utworzona.
Po skonstruowaniu Zasady żądań sieciowych należy zdefiniować Zasadę sieciową (ang. Network Policies), której najważniejszym elementem jest określenie grupy użytkowników mających prawo zalogowania się do urządzenia.
Rozpoczynamy od zaznaczenia gałęzi Zasady sieciowe na którą klikamy PPM i z menu wybieramy Nowy.
Nazwę zasady określono tak samo jak w przypadku Zasady żądań połączeń czyli Cisco-uzytkownicy. Klikamy Dalej.
Do utworzonej zasady przypisujemy warunki. Warunek definiujemy po wybraniu przycisku Dodaj.
Z listy warunków wybieramy opcję Grupy użytkowników (ang. Users Groups) a następnie klikamy Dodaj.
W nowo otwartym oknie Grupy użytkowników poprzez wybranie Dodaj do grupy (ang. Add Groups) definiujemy grupę, której członkowie będą mogli przeprowadzić proces autoryzacji. W scenariuszu tym grupa upoważniona do logowania została określona jako: Network Admins (grupę możemy zdefiniować dowolnie ważne by później do grupy dodać konta użytkowników).
Zmiany zatwierdzamy przyciskiem OK.
Po określeniu nazwy grupy przechodzimy dalej.
Kolejną decyzję jaką musimy podjąć to definicja uprawnień dostępu. Z dostępnych opcji wybieramy oczywiście Udzielenie dostępu (ang. Access Granted). Klikamy Dalej.
Na karcie Konfigurowanie metod uwierzytelnienia do domyślnie już zaznaczonych metod należy dodać opcję Uwierzytelnienie bez szyfrowania (PAP, SPAP) (ang. Unecrypted authentication (PAP, SPAP)).
Na karcie Konfigurowanie ograniczeń pozostawiamy opcje domyślne.
Na karcie Konfigurowanie ustawień usuwamy Framed-Protocol PPP.
Kolejną czynnością jest zmiana wartości opcji Service-Type, z rozwijanej listy (pozycja Inne) wybieramy Login.
Po zatwierdzeniu karty jeszcze nie opuszamy i z menu po lewej wybieramy opcję Specyficzny dla dostawcy. Aby określić atrybuty klikamy na przycisk Dodaj. W nowo otwartym oknie z rozwijanej listy Dostawca wybieramy Cisco i całość zatwierdzamy poprzez Dodaj.
W nowo otwartym oknie Informacje o atrybutach ponownie wybieramy przycisk Dodaj. W polu Wartość atrybutu wpisujemy: shell:priv-lvl=15
Po zatwierdzeniu wszystkich wybieramy Dalej.
Dotarliśmy do końca, kolejny ekran jest ekranem podsumowującym wybieramy Zakończ.
Serwer RADIUS został skonfigurowany.
Przechodzimy do drugiej części „układanki” czyli do routera.
Pierwszą czynnością jest skonfigurowanie interfejsu f0/0 routera. Adres IP interfejsu został ustalony na 192.168.1.60 z maską 255.255.255.0 (punkt 1) – adres ten musi być zgodny z zdefiniowanym wcześniej adresem IP klienta, podanie innego adresu IP spowoduje brak autoryzacji. Po tak przeprowadzonej konfiguracji sprawdźmy za pomocą polecenia ping łączność z serwerem RADIUS. Jak widać poniżej test ping kończy się sukcesem (punkt 2).
Po ustaleniu połączenia kolejnym naszym zadaniem jest utworzenie konta użytkownika. Konto to zostaje utworzone lokalnie i jest naszym zabezpieczeniem na wypadek błędnie przeprowadzonej konfiguracji bądź niedostępności serwera RADIUS. Gdy krok ten pominiemy to w razie wystąpienia opisanych problemów stracimy możliwość wykonania logowania.
Za pomocą polecenia: username admin privilege 15 secret 0 cisco zostało utworzone konto użytkownika: admin z hasłem: cisco. Konto posiada najwyższe uprawnienia. Dodatkowo za pomocą komendy: enable secret cisco zostało ustalone hasło do trybu uprzywilejowanego.
Przed wydaniem kolejnych komend należy włączyć na routerze korzystanie z modelu AAA – włączenie funkcji realizujemy za pomocą polecenia: aaa new-model. Więcej o prawach użytkownika odnośnie urządzeń CISCO dowiesz się z mojego innego wpisu: Dostęp zdalny oraz prawa użytkownika w routerach CISCO.
Po definicji konta lokalnego za pomocą poleceń: aaa group server radius <nazwa_grupy > oraz server-private <adres_IP_serwera> auth-port 1812 acct-port 1813 key <hasło> konfigurujemy ustawienia serwera RADIUS. Polecenie te można wykorzystać do skonfigurowanie więcej niż jednego serwera RADIUS. W przypadku CISCO warto jest podać numery portów używanych do zestawienia kanału komunikacyjnego, gdyż część urządzeń domyślnie może być skonfigurowana do korzystania z portu 1645 oraz 1646. Błędne skonfigurowanie odpowiednich wartości portów uniemożliwi poprawną komunikację z serwerem.
Czyli w naszym przypadku wydajemy polecenia: aaa group server radius RAD_SERVER oraz server-private 192.168.1.50 auth-port 1812 acct-port 1813 key cisco123
Dodatkowo aby włączyć proces logowania z wykorzystaniem serwera RADIUS należy wydać komendy (w trybie konfiguracji globalnej):
aaa authentication login default group RAD_SERVER local
aaa authorization exec default group RAD_SERVER local if-authenticated
aaa authorization console
Polecenia spowodują włączenie procesu autoryzacji z wykorzystaniem serwera RADIUS a dodatkowo w przypadku niedostępności tegoż serwera druga metoda będzie wykorzystywać lokalną bazę użytkowników.
Router Cisco został skonfigurowany. Przejdźmy z powrotem do serwera i utwórzmy konto użytkownika. Poniżej zostało założone konto użytkownika jankow i konto zostało przypisane do grupy Network Admins (grupa ta jest uprawniona do logowania się na urządzeniach).
Aby prześledzić całość procesu na routerze dodatkowo wydano polecenia: debug aaa authentication, debug aaa authorization oraz debug radius.
Spróbujmy zatem wykonać logowanie na routerze z wykorzystaniem poświadczeń użytkownika jankow.
Dzięki włączonemu procesowi debugowania, możemy obserwować kolejne etapy ustanawiania połączenia – całość przeprowadzonej konfiguracji zakończyła się sukcesem.
Weryfikację całego procesu możemy również przeprowadzić na serwerze, wykorzystując do tego celu logi zdarzeń serwera zasad sieciowych.
A co w sytuacji w której pomimo wykonania wszystkich czynności nie uda nam się zalogować? W takim przypadku możemy wykorzystać konto użytkownika lokalnego, które utworzono właśnie na taką okazję.
Poniżej jeszcze przechwycony ruch sieciowy pomiędzy routerem a serwerem RADIUS. Host 192.168.1.60 (router) w kierunku serwera RADIUS (adres IP 192.168.1.50) wysyła pakiet Access-Request w którym zawarte są wszystkie informacje potrzebne do uwierzytelnienia.
Po sprawdzeniu otrzymanych danych serwer RADIUS odsyła pakiet Access-Accept (oczywiście jeśli przesłane dane w poprzednim pakiecie są prawidłowe).
W przypadku błędnie podanych danych uwierzytelniających serwer RADIUS nie odeśle pakietu Access-Accept tylko pakiet typu Access-Reject (pakiet odmawia przeprowadzenie logowania).
Serwer RADIUS skonfigurowano prawidłowo – można przy jego użyciu przeprowadzić na urządzeniach sieciowych takich jak routery czy przełączniki logowanie.
A co w sytuacji, gdy pomimo przeprowadzenia całości procesu, logowanie jest niemożliwe?
W pierwszej kolejności sprawdź ustawienia zapory sieciowej.
Podpowiedź 2 – sprawdź kolejność stosowania zasad sieciowych.
I ostatnia porada – sprawdź logi zdarzeń – ich analiza często pozwoli rozwiązać problem.
Już na sam koniec warto jeszcze nadmienić, że w przypadku urządzeń CISCO, serwer RADIUS nie jest jedynym sposobem na zdalne uwierzytelnianie użytkowników, można użyć mechanizmu TACAS – lecz jest to temat na kolejny wpis.
Nazywam się Rafał Wielgus, jestem informatykiem oraz międzynarodowym audytorem wiodącym ISO 27001. Świadczę kompleksowe usługi z zakresu bezpieczeństwa teleinformatycznego, wdrażam systemy z rodziny „IT security”, skutecznie nadzoruję RODO, prowadzę szkolenia oraz audyty.
Posiadam prawie 20 lat doświadczenia w bezpieczeństwie systemów i sieci komputerowych. Jako jeden z nielicznych w Polsce dysponuję wiedzą praktyczną w zakresie Certified Information Systems Security Professional (CISSP). Szkolony również przez ABW i SKW.
Treść komentarza
Mega fajna i przejrzysta instrukcją… Na jej podstawie wdrażałem u klienta i wszystko działa 😉
Treść komentarza
Cieszę się że mogłem pomóc. Zapraszam również do innych wpisów 🙂