Korzystając ze strony, wyrażasz zgodę na używanie ciasteczek zgodnie z naszą Polityką prywatności i Warunkami użytkowania.
Zgadzam się
Na Styku SieciNa Styku Sieci
  • Start
  • Routing & Switching
  • Wireless
  • Certyfikacja
  • Wokół sieci
Czytasz: AAA, RADIUS i TACACS+ – podstawy
Udostępnij
Na Styku SieciNa Styku Sieci
  • Wireless
  • Certyfikacja
  • Routing & Switching
  • Wokół sieci
Szukaj
  • Start
  • Categories
    • Wokół sieci
    • Routing & Switching
    • Wireless
    • Certyfikacja
  • Bookmarks
    • Customize Interests
  • More Foxiz
    • Blog Index
    • Sitemap
Have an existing account? Zaloguj się
Follow US
Routing & Switching

AAA, RADIUS i TACACS+ – podstawy

Damian Michalak
Damian Michalak 17 października 2018 Wyświetlenia: 6k
Czas czytania: 10 min

Bezpieczeństwo w sieciach komputerowych ma wiele obliczy. Jednym z podstawowych wyzwań jakie przed nami stoją jest stworzenie sieci, w której mamy kontrolę nad tym kto do niej uzyskuje dostęp. Potrzeba tego typu nadzoru rośnie wraz z rozmiarem organizacji, w której przyszło nam pracować. Z pomocą przychodzi nam framework AAA oraz dwa protokoły w naturalny sposób z nim powiązane – RADIUS oraz TACACS+. Przyjrzyjmy im się bliżej.

Contents
Czym jest AAA?AuthenticationAuthorizationAccountingPodstawy działania RADIUSPodstawy działania TACACS+Porównanie RADIUS i TACACS+

Czym jest AAA?

Zacznijmy od zdefiniowania czym jest AAA na przykładzie małej firmy, w której chcemy mieć nadzór nad dostępem do przestrzeni biurowej. Rozłóżmy skrót “AAA” na czynniki pierwsze:

Authentication

Autentykacja słu… wróć! Po polsku mówimy uwierzytelnianie! Mój wykładowca od Technologii Sieciowych był bardzo skuteczny w wybijaniu nam z głów angielskich słówek i zastępowaniu ich polskimi. W tym miejscu chciałbym gorąco pozdrowić doktora Bilskiego z Politechniki Poznańskiej 🙂 To tyle tytułem dygresji. Wróćmy do tematu…

Uwierzytelnianie służy nam do określania czy dana osoba jest faktycznie osobą za jaką się podaje. Jest to więc operacja weryfikowania tożsamości. W naszym przykładzie pan Jan Kowalski chce otworzyć drzwi do biura. Jak jednak sprawdzić, że faktycznie mamy do czynienia z Janem Kowalskim?

Sposobów jest wiele. W tej sytuacji moglibyśmy się posłużyć odciskiem palca w celu weryfikacji tożsamości, ponieważ odcisk każdego z nas jest unikalny. Poza odciskiem możemy wykorzystać inne metody biometryczne, takie jak skanowanie siatkówki oka, rozpoznawanie twarzy czy też głosu. Wymienione sposoby uwierzytelniania klasyfikujemy jako metody oparte o coś czym jesteś (something you are).

Do uwierzytelniania można również używać coś co wiesz (something you know) – czyli np. hasło lub PIN. Ostatnią kategorią jest coś co masz (something you have) – przykładowo identyfikator, fizyczny klucz do zamka czy też token. Wykorzystanie do uwierzytelniania więcej niż jednej metody nazywamy uwierzytelnianiem wieloskładnikowym (MFA – Multi Factor Authentication). W scenariuszu z drzwiami byłoby to np. “odbicie się” identyfikatorem na czytniku przy drzwiach i wpisanie PINu na pin-padzie.

Authorization

Gdy wiemy już z kim mamy do czynienia to możemy wykorzystać tę informację do stwierdzenia czy dany delikwent ma prawo dostępu do danego zasobu. Przykładowo pan Jan Kowalski może mieć prawo otwierania tylko niektórych drzwi w firmie – może wejść do kantyny ale nie może do serwerowni. Proces sprawdzania uprawnień do dostępu nazywamy autoryzacją. W świecie sieci komputerowych autoryzujemy komendy wydawane na urządzeniach sieciowych. Przykładowo pracownik NOC-a może mieć uprawnienia do wydawania jedynie komend show, podczas gdy druga linia wsparcia może wchodzić również w tryb konfiguracji urządzenia.

Accounting

Ostatnią składową framework’u AAA jest accounting. W tym przypadku nigdy nie słyszałem żeby dr Bilski nazwał to księgowaniem, ani jakimkolwiek innym polskim słowem. Jeśli masz pomysł na polski odpowiednik słowa accounting to daj znać w komentarzu.

Accounting jest procesem zbierania informacji i logów dotyczących poprzednich dwóch etapów – czyli kto uzyskał dostęp, do czego i kiedy. Dane te są zbierane przede wszystkim w celu przeprowadzania audytów bezpieczeństwa.

Podstawy działania RADIUS

RADIUS jako protokół jest prawie moim rówieśnikiem – powstał w roku 1991. O ile ja się nie czuję staro, to w świecie technologii jest to mnóstwo czasu. Pomimo to RADIUS nadal dobrze się trzyma i jest powszechnie używany. Skrót RADIUS rozwijamy na Remote Access Dial-In User Service i dobrze to określa pierwotne zastosowanie tego protokołu – oryginalnie powstał on po to aby zapewniać funkcje AAA dla użytkowników wdzwaniających się do sieci za pomocą modemów. Protokół ten realizuje wszystkie trzy komponenty framework’u AAA, przy czym uwierzytelnianie i autoryzacja są ze sobą bardzo ściśle powiązane – do tego stopnia, że te funkcje są realizowane za pomocą tych samych pakietów. Accounting jest natomiast wydzielony jako osobny proces.

Starsze implementacje RADIUS-a używają portów UDP 1645 (uwierzytelnianie) oraz UDP 1646 (accounting), podczas gdy nowe wdrożenia bazują już na portach UDP 1812 (uwierzytelnianie) oraz UDP 1813 (accounting).

RADIUS jest protokołem działającym w modelu klient – serwer. W znacznej części przypadków to urządzenie końcowe (np. laptop) pełni funkcję klienta. RADIUS jako protokół transportuje zatem pakiety związane z uwierzytelnianiem, autoryzacją i accountingiem między klientem a serwerem AAA. Przykładowa wymiana pakietów może wyglądać następująco:

Komunikacja klient-serwer za pomocą RADIUS, źródło: cisco.com

W kwestii zastosowań z pewnością zetkniesz się z RADIUS-em podczas połączeń w sieciach bezprzewodowych, gdzie protokół ten jest powszechnie wykorzystywany do transportowania m.in. znacznie bardziej zaawansowanego protokołu uwierzytelniania – EAP (Extensible Authentication Protocol). EAP jest między innymi odpowiedzialny za DOT1X – ale to już osobna historia.

Istotne z punktu widzenia bezpieczeństwa jest to, że RADIUS szyfruje jedynie informacje dotyczące uwierzytelniania (hasła), podczas gdy pozostała część wymiany pakietowej przesyłana jest clear-text’em.

Największą zaletą RADIUS-a jest fakt, że jest to otwarty standard, powszechnie wspierany przez prawie wszystkich producentów sprzętu sieciowego.

Podstawy działania TACACS+

TACACS+ jest protokołem stworzonym przez Cisco w 1996 roku. Skrót ten rozwijamy na Terminal Access Controller Access-Control System. Była to swego rodzaju odpowiedź na coraz to bardziej powszechny w użyciu RADIUS i w pewnym sensie okazała się ona celna. TACACS+ jako protokół oferuje wiele funkcji, których brakuje w RADIUS-ie.

Przede wszystkim TACACS+ operuje na porcie TCP 49, co powoduje, że cała komunikacja jest o wiele pewniejsza (co wynika bezpośrednio z charakterystyki TCP vs UDP). Ponadto, cała zawartość pakietów TACACS+ jest szyfrowana, co przekłada się na o wiele wyższy poziom bezpieczeństwa tego protokołu (w RADIUS możemy np podejrzeć komendy, które podlegały autoryzacji!).

Kolejną różnicą jest fakt, że TACACS+ oddziela funkcje uwierzytelniania i autoryzacji – są one realizowane osobnymi pakietami. Wynika to z zastosowania tego protokołu. RADIUS został zaprojektowany z myślą o całym framework’u AAA i jest wykorzystywany przede wszystkim do uwierzytelniania i autoryzacji dostępu do sieci. Cisco natomiast stworzyło TACACS+ głównie z myślą o zapewnieniu AAA podczas zarządzania urządzeniami sieciowymi i to właśnie w takich przypadkach jest powszechnie używany. Powoduje to, że zazwyczaj mamy do czynienia z pojedynczą wymianą pakietów uwierzytelniających, a następnie z wieloma autoryzacjami poszczególnych komend wydawanych na urządzeniu. Przykładowa wymiana pakietów TACACS+ wygląda następująco:

Komunikacja klient-serwer za pomocą TACACS+, źródło: cisco.com

Sam proces autoryzacji może zachodzić na podstawie privilege level przypisanemu użytkownikowi, bądź bardziej granularnie na zasadzie weryfikacji każdej wydawanej komendy. W pierwszym przypadku określamy na przykład, że dany administrator ma uprawnienia do wydawania poleceń do privilege level = 5. Dalszą autoryzację komend wydawanych w takiej sytuacji przeprowadza już urządzenie sieciowe. Natomiast w drugim przypadku każda wydawana komenda jest wysyłana do serwera AAA, który określa czy użytkownik jest autoryzowany do jej wydania. Druga metoda jest bardziej granularna, ale z oczywistych względów mniej skalowalna i trudniejsza w zarządzaniu.

Oddzielenie funkcji uwierzytelniania i autoryzacji w TACACS+ jest dużą zaletą, ponieważ umożliwia nam używanie różnych protokołów w ramach framework’u AAA. Możemy przykładowo używać protokołu Kerberos do uwierzytelniania, a autoryzację i accounting realizować za pomocą TACACS+.

Charakterystyka działania TACACS+ powoduje, że jest to o wiele bardziej zasobożerny protokół niż RADIUS. Ponadto nie jest on tak powszechny w użyciu jak RADIUS, co wynika bezpośrednio z faktu, że nie jest to otwarty standard. Pomimo to niektórzy producenci sprzętu sieciowego (np. Dell) wspierają go i umożliwiają korzystanie z TACACS+ na ich urządzeniach.

Porównanie RADIUS i TACACS+

Znając już szczegóły dotyczące działania każdego z dwóch protokołów przyjrzyjmy się tabelce, która dobrze odzwierciedla różnice między nimi:

RADIUSTACACS+
Wykorzystuje UDP jako protokół warstwy 4.Wykorzystuje TCP jako protokół warstwy 4.
Działa na portach UDP 1812/1813 (1645/1646 w starszych implementacjach)Działa na porcie TCP 49
Szyfrowane są jedynie hasłaSzyfrowana jest cała zawartość pakietów
Łączy w sobie funkcje uwierzytelniania i autoryzacjiTraktuje uwierzytelnianie, autoryzację i accounting osobno
Jest to otwarty standard powszechnie wspierany przez wielu producentówJest to protokół należący do Cisco i przez to nie tak powszechnie używany
Nie jest zasobożerny z uwagi na swoją prostą konstrukcjęJest zasobożerny z uwagi na swoją bardzo złożoną konstrukcję
Nie pozwala na granularną autoryzacjęPozwala na bardzo granularną autoryzację
Nie pozwala używać różnych protokołów do uwierzytelniania i autoryzacjiPozwala używać różnych protokołów do uwierzytelniania i autoryzacji
Głównie używany do zapewniania dostępu do sieci (Network Access)Głównie używany do zarządzania urządzeniami sieciowymi (Device Administration)

Tak jak wspomniałem w samym tytule artykułu – są to jedynie podstawy AAA, RADIUS-a i TACACS+. Za tymi protokołami kryje się jednak o wiele więcej o czym mam nadzieję napisać w osobnych artykułach. Oba protokoły są dziś powszechnie używane, z dużą przewagą RADIUS-a. Warto je znać nie tylko od teoretycznej, ale również od praktycznej strony.

A czy Ty używasz w swojej organizacji RADIUS lub TACACS+?

TAGGED: AAA, RADIUS, TACACS
Damian Michalak 17 października 2018
Udostępnij ten materiał
Facebook Twitter Whatsapp Whatsapp LinkedIn Email Drukuj
12 Comments 12 Comments
  • Woodziak pisze:
    16 listopada 2018 o 07:19

    Proste! Accounting – rozliczanie 🙂

    Odpowiedz
    • Damian Michalak pisze:
      16 listopada 2018 o 07:19

      Dobre! Ale nadal mi coś nie leży to słowo na języku… czy w takim razie zamiast \”audytu\” powinniśmy mieć \”dzień rozliczenia\”? 😀

      Odpowiedz
  • RiFF pisze:
    16 listopada 2018 o 07:19

    Tak jak kolega napisał Rozliczanie ew Księgowanie 😉 , z lepszym polskim zamiennikiem się nie spotkałem. Co do TACACS+ to wspiera go też miedzy innymi PALO ALTO , BIG-IP F5 (w sumie większość urządzeń ocierających się o klasę ENT ), no i przez możliwość nadawania privilege oraz wybranych komend w autoryzacji można dedykowanymi kontami serwisowymi zrobić np. backup konfiguracji urządzenia czy odczytywać stan / liczniki interfejsu itp , rzeczy które średnio wyciąga się za pomocą SNMP .

    Odpowiedz
    • Damian Michalak pisze:
      5 czerwca 2019 o 15:22

      Dokładnie, dzięki za dopowiedzenie!

      Odpowiedz
  • Paweł Drzewiecki pisze:
    15 grudnia 2018 o 18:51

    Serwus,
    Jakiś czas miałem zaimplementowany tacacs+, zainstalowany na debianie do autoryzacji na przełacznikach, ale radius wydał mi się ciekawszy bo spiąłem go do pracy z dwoma kontrolerami domeny, w sposób następujący: Primary radius + primary AD, secondary radius + secondary AD. Pomimo braku \”encrypt entire packet\”, radius daje radę 🙂

    Odpowiedz
    • Damian Michalak pisze:
      20 grudnia 2018 o 14:16

      A pewnie, RADIUS nadal oferuje sporo możliwości i też można się nim nieźle bawić ^^

      Odpowiedz
  • Bruno pisze:
    5 czerwca 2019 o 15:06

    Dobry artykuł!

    Odpowiedz
    • Damian Michalak pisze:
      5 czerwca 2019 o 15:15

      Dzięki Bruno 🙂

      Odpowiedz
  • Marek pisze:
    19 stycznia 2021 o 20:23

    Miśki i to mi się podoba 🙂 Super, że opisujecie od podstawowych informacji a nie co jak niektórzy od razu walą szczegółami a potem nic z tego nie wiadomo. Bardzo mi się podoba 🙂

    Odpowiedz
    • Damian Michalak pisze:
      16 lipca 2021 o 13:54

      Fajnie, że się spodobało 🙂 Niektórym to nie przypada do gustu, ale staramy się, żeby artykuły były zrozumiałe dla wszystkich, a nie tylko dla tych bardziej doświadczonych 🙂

      Odpowiedz
  • Adrian Puk pisze:
    9 lipca 2021 o 09:20

    super poradnik dowiedziałem sie wszystkiego. pozdrawiam z rodzinka.

    Odpowiedz
    • Damian Michalak pisze:
      16 lipca 2021 o 13:53

      Dziękujemy i również pozdrawiamy 🙂

      Odpowiedz

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

You Might Also Like

Routing & Switching

Maszyna stanowa OSPF

6 maja 2021
Routing & Switching

Redystrybucja między OSPF a EIGRP [WYZWANIE]

14 stycznia 2020
Routing & Switching

Czym się różnią przełączniki warstwy 3. od routerów?

12 września 2019
Routing & Switching

Czym są tunele VPN?

23 czerwca 2019

NA STYKU SIECI

Tworzymy społeczność sieciowców skupioną dookoła rozwiązań oraz certyfikacji firmy Cisco Systems.
Przydatne linki
  • NSS+
  • Tagi
  • Podcast
Nasze projekty
  • Alvortech
  • Szkoła Sieci
  • Czwartest

Dołącz do NSSlettera

Informacje o nowych publikacjach oraz dodatkowe treści!

[mc4wp_form]

© Na Styku Sieci 2022 - powered by Alvortech

  • Polityka prywatności
  • Warunki użytkowania
  • O nas
  • Kontakt
Witaj ponownie!

Zaloguj się na swoje konto

Zapomniałeś/aś hasło?