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 oraz rejestracji dostępu do zasobów tzw. AAA - Authencication, Authorization, Accounting.
Głównym celem mającym wpływ na decyzję zastosowania przez Nas serwera RADIUS jest możliwość przechowywania bazy danych użytkowników, którzy mają prawo do korzystania z udostępnionych zasobów sieciowych. Wdrożenie tego mechanizmu umożliwi przeprowadzenie procesu logowania na każdym urządzeniu, które ma możliwość przeprowadzenia komunikacji z serwerem RADIUS. Klientem może być router, AP czy host. Dzięki centralnej bazie użytkowników zarządzanie procesem AAA jest łatwiejsze gdyż nie musimy tworzyć oddzielnych kont na każdym z urządzeń osobno. A 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 w kolejnych pokażę jak z wykorzystaniem serwera uwierzytelniać użytkowników sieci przewodowych i bezprzewodowych.
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 2012 oraz 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.
W kolejnym oknie należy podjąć decyzję o wyborze ról w ramach instalowanej roli nadrzędnej Usługi zasad sieciowych i dostępu sieciowego. Pozostawiamy domyślnie zdefiniowaną rolę Serwer zasad sieciowych (ang. Network Policy Server). Wybieramy Dalej.
Okno Potwierdzenie opcji instalacji (ang. Confirm installation selections) jest podsumowaniem przeprowadzonej konfiguracji. Wybieramy Zainstaluj.
Po zatwierdzeniu wszystkich opcji następuje instalacja nowych ról oraz funkcji.
Po poprawnej instalacji w oknie Menedżera serwera powinna pojawić się nowa zakładka Ochrona dostępu do sieci (ang. NAP). Wybieramy zakładkę i dodatkowo po określeniu serwera co do, którego będzie przeprowadzana konfiguracja, po kliknięciu PPM z rozwijanego menu wybieramy 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
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 karcie 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.
Nazwa zasady została określona tak samo jak w przypadku Zasady żądań połączeń czyli Cisco-użytkownicy. 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: Administratorzy domeny (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.
Również kartę Konfigurowanie ustawień pozostawiamy bez zmian.
Kolejny ekran jest ekranem podsumowującym wybieramy Zakończ.
Serwer RADIUS został skonfigurowany. Przechodzimy 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.
Po definicji konta lokalnego za pomocą polecenia: radius-server host <adres_IP> auth-port 1812 acct-port 1813 key <hasło> konfigurujemy ustawienia serwera RADIUS. W przypadku CISCO warto jest podać numery portów wykorzystywanych przez serwer RADIUS gdyż domyślnie część urządzeń 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.
Polecenie te można wykorzystać do skonfigurowanie więcej niż jednego serwera RADIUS.
Dodatkowo by włączyć proces logowania z wykorzystaniem serwera RADIUS należy wydać komendę: aaa authentication login default group radius local Polecenie spowoduje 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. Przed wydaniem komendy 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 wcześniejszego mojego wpisu - Dostęp zdalny oraz prawa użytkownika w urządzeniach CISCO
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 test i konto zostało przypisane do grupy Administratorzy domeny (grupa ta jest uprawniona do logowania się na urządzeniach).
Aby sprawdzić czy serwer RADIUS działa prawidłowo możemy wykorzystać program RadiusTest (program dostępny w ramach narzędzia WinRadius). Po wprowadzeniu wszystkich informacji (adres IP serwera, port, nazwa użytkownika, hasło użytkownika oraz hasło serwera RADIUS) możemy przeprowadzić próbę uwierzytelnienia. Jak widać na zrzucie poniżej test serwera RADIUS kończy się sukcesem.
Wiemy, że serwer RADIUS działa i odbiera żądania klientów, tak więc spróbujmy wykonać logowanie na routerze.
Proces logowania z wykorzystaniem routera przebiegł prawidłowo. Zostało wykorzystane konto użytkownika: test
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 właśnie na taką okazję zostało utworzone.
Poniżej sytuacja w której na wskutek niedostępności serwera RADIUS (np. na wskutek awarii) zostało wykorzystane konto użytkownika admin (konto założone jest lokalnie).
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 został skonfigurowany prawidłowo, urządzenia sieciowe takie jak routery czy przełączniki umożliwiają przeprowadzenie procesu logowania.
Warto jeszcze nadmienić, że w przypadku urządzeń CISCO serwer RADIUS nie jest jedynym sposobem na zdalne uwierzytelnianie użytkowników, można skorzystać również z TACAS lecz temat ten rozwinę w jednym z kolejnych wpisów.
Komentarze
Fajny artykuł konfiguracja fajnie działa. Mam pytanie jak skonfigurować backup dla Radiusa gdy ten zostanie wyłączony tak by role przejął drugi?
Czy na drugim serwerze dokładnie takie same będą ustawienia?
Będę wdzięczny za podpowiedź.
Pozdrawiam
P.S. ssp