24T2 FreeRADIUS na Ubuntu,Klient Fortigate oraz Windows w 16min. [Konfiguracja Fortigate Freeradius]
Więcej miejsc do posłuchania:
Link do artykułu.
0:00 Wprowadzenie
1:53 Topologia
2:53 Konfiguracja
15:34 Podsumowanie
Transkrypcja
Cześć. W dzisiejszym odcinku temat konfiguracji Fortigate do współpracy z FreeRADIUSem. To najpierw może pierwsze pytanie po co się robi? Jaki jest cel konfiguracji Radiusa do Fortigate. No więc jak to zwykle Radius jest centralnym miejscem uwierzytelnienia dla urządzeń sieciowych czy dostępów sieciowych i daje nam centralną bazę dostępu do informacji o użytkowniku czyli czy użytkownik powinien mieć dostęp do danego zasobu, z jakimi uprawnieniami czy zliczamy ilość danych na przykład informacji o sesji czy monitorujemy jaki ma adres IP. Te rzeczy możemy centralnie monitorować i nimi zarządzać jeżeli
używamy Radiusa. Szczególnie przydatne w momencie kiedy mamy wiele takich Fortigate lub innych urządzeń sieciowych i chcemy w jednym miejscu zarządzać wszystkimi użytkownikami i to zarówno w dostępie administracyjnym jak i w dostępie użytkowników do naszej sieci.
Dzisiejsza konfiguracja będzie oparta o Free Radiusa na Ubuntu ale system operacyjny nie ma tu większego znaczenia. Bardzo prosta konfiguracja pokazująca jak zrobić najprostszą implementację FreeRADIUSa. Następnie będzie możliwość sprawdzenia jak konfiguracja tego FreeRADIUSA działa w oparciu o taki specjalny program na Windowsie, na urządzeniu końcowym tak żebyśmy mogli potwierdzić że ten freeRADIUS działa właściwie. No i będzie również część dotycząca konfiguracji Fortigate czyli co konkretnie trzeba wykonać na Fortigate żeby podłączyć ten system do Radiusa.
Przejdźmy więc do konfiguracji. Konfiguracja Radius na Fortigate. Zacznijmy od tego jaką mamy topologię, mamy tu na środku Fortinate czyli Fortigate, dwa interfejsy LAN, jeden na porcie trzecim z końcówką 10 sieć 20.20.20, drugi na porcie drugim sieć 10.10.10 z końcówką 1 i serwer Radius 2. To co będziemy dzisiaj konfigurować to komunikacje do Radiusa od strony Fortigate czyli będziemy tutaj konfigurować żeby można było używać logowania użytkowników na Fortigate z użyciem Radiusa jak również będziemy sprawdzać
jak podłączyć sobie klienta Radius czyli symulującego urządzenie sieciowe żeby przetestować czy nam Radius odpowiada na zapytanie, które będziemy z tego hosta Windowsowego wysyłać. To w celu czysto diagnostycznym.
No to mamy taką topologię, jeżeli chodzi o konfigurację to przedstawia się ona następująco. Instalujemy na serwerze Radius, tu mamy po prostu serwer Ubuntu. Polecenie update czyli aktualizacja tej naszej bazy informacji o pakietach i kolejne polecenie instalacja FreeRADIUSA czyli Open Source Radiusa ponieważ jesteśmy rootem to tutaj tylko musimy wpisać apt instal freeradius. No i tu automatycznie nam się wszystko zainstaluje więc wrócę za chwilę jak już będzie to gotowe. Nawet nie zdążyłem dokończyć a już było gotowe. Teraz żeby skonfigurować podstawowe rzeczy to trzeba użyć jakiegoś edytora w tym przypadku Nano. Plik konfiguracyjny jak to w Linuxie jest w katalogu etc,
katalog freeradius wersja 3.0. Akurat ta omawiana tutaj i w tym katalogu
edytujemy najpierw plik clients czyli będziemy tutaj wpisywać klientów ale klienci w rozumieniu freeRADIUSA to będą urządzenia sieciowe.
Czyli tutaj będziemy konfigurować informacje jakie urządzenia mogą się do tego serwera Radius podłączyć. Jak widzisz tutaj plik konfiguracyjny głównie ma opisy różne z tymi hashami czyli mamy zakomentowane i opis co który element robi to nie ma żadnego znaczenia tutaj dla tego systemu, ma znaczenie dla nas żebyśmy my jako użytkownicy byli w stanie się łatwo zorientować co my powinniśmy tutaj wpisać. Więc pierwszym klientem dla nas będzie Fortigate to może jeszcze tylko małe słowo wyjaśnienia: Klient w rozumieniu serwera Radius tutaj przynajmniej freeRADIUS to jest urządzenie sieciowe czyli to ten
nasz użytkownik końcowy ma tam suplikanta 802.1x, który się łączy do pierwszego urządzenia sieciowego i to urządzenie sieciowe dopiero po IP łączy się do naszego Radiusa i tutaj żeby po IP ta konfiguracja czy ta komunikacja zadziałała musimy wpisać podstawowe dane czyli na przykład z jakiego adresu IP urządzenia sieciowego spodziewamy się tego zapytania i tylko z tego adresu będzie to zapytanie w ramach tej części konfiguracji akceptowane.
Czyli jeżeli tu nie wpiszemy właściwie to nie zadziała nam ta komunikacja. Tutaj jak widzisz tą czerwoną część to jest przerwa czyli dwa tabulatory tutaj jeżeli chodzi o konfigurację FreeRADIUSA trzeba zwracać uwagę na te tabulatory czy te spacje czy inaczej tabulatory czyli te przestrzenie w konfiguracji bo analizując ten plik konfiguracyjny, ten serwer freeradius zwraca na to uwagę. Czyli IP adres, z jakiego adresu będą przychodzić zapytania do naszego serwera Radius. IP adres urządzenia sieciowego, secret czyli współdzielony klucz i też tutaj dwa tabulatory i wartość tego klucza. Czyli tutaj w tym przypadku nasze hasło to będzie test123.
Oczywiście ten shortkey powinien być bardziej skomplikowany tak żeby ktoś nie mógł go łatwo zgadnąć. Na potrzeby naszego testu możemy dać cokolwiek. To co jeszcze tutaj możemy dać, nie musimy ale możemy to jaki rodzaj protokołu. Tu powyżej jak sobie zobaczysz przykład to jest dokładnie to samo co tu używamy czyli client, nazwa tej części konfiguracji czyli nazwa tego typu urządzenia, które się będzie łączyć lub konkretnego urządzenia bo jak widzisz IP adres może definiować dana sieć tu akurat w tym przykładzie maska 24 bity.
My w naszym przykładzie mamy jeden konkretny host czyli będziemy wpisywać czy będziemy akceptować zapytania od tego konkretnego adresu IP. Tu w zależności od twojej sytuacji jak masz proste środowisko, masz jedno urządzenie sieciowe, które po prostu się komunikuje z tym Radiusem to wystarczy wpisać jeden adres IP. Jeżeli masz na przykład dużą instalację, nie wiem 200 czy 1000 urządzeń na przykład Access pointów rozsianych po całej Polsce no to nie będziesz wpisywał tutaj pojedynczych adresów IP tylko po prostu zadasz daną maskę, najczęściej sieci zarządzania, które te 200 czy 1000 Access pointów ogarnia i tutaj to nie musi być domena broadcastowa czyli tutaj możemy dać maskę na przykład 8 bitową i wszystko co będzie się mieściło w takim zapytaniu, które przyjdzie jest sprawdzane w kontekście tej konfiguracji z tym współdzielonym hasłem, z tym protokołem, który definiowany, jeżeli się zgadza to będzie procesowane dalej.
No dobra to jest pierwszy przykład, drugi przykład to będzie nasz klient na komputerze. Czyli tu mamy na myśli tego klienta Radius, który będzie nam symulował urządzenie sieciowe do naszego testu czy nam serwer Radius działa. Czysto taka potrzeba testowa. Czyli definiujemy osobno tą część konfiguracji, jest to inna podsieć, inny adres IP będzie tutaj zawarty. Dwa tabulatory, secret oczywiście, potrzebujemy tutaj wpisać tak jak w poprzednim przykładzie. Może to być oczywiście inny secret, to nie musi być ten sam. Ważne jest tylko to żeby na danym urządzeniu lub grupie urządzeń które definiujemy żeby to hasło było
takie samo na Radiusie i po stronie urządzenia sieciowego. Tutaj też protokół
w tym przykładzie dowolny. Zapisujemy.
Teraz kolejna część konfiguracji to będzie konfiguracja dotycząca tych użytkowników czyli w freeradiusie użytkownicy to już są ci użytkownicy końcowi, najczęściej po prostu jakieś stacje końcowe, urządzenia mobilne, które będziemy uwierzytelniać. Są oczywiście różne metody w bardziej zaawansowanych implementacjach będziemy używać najczęściej integracji z AD. W tym prostym przykładzie, który tutaj pokazuje, to jest najprostszy z możliwych, najprostsza implementacja z możliwych. Czyli po prostu stworzenie w pliku tekstowym użytkownika i jego hasła. Czyli użytkownik netadmin typ hasła będzie Cleartext-Password no i tutaj wartość tego pola test123 ten test123 ma się zgadzać z tym co użytkownik będzie podawał. Czyli
jak ma nazwę użytkownika netadmin to to hasło ma się zgadzać.
Kolejną rzecz, którą teraz zrobimy to oczywiście zapisujemy ten wyedytowany plik i kolejny element to jest restart serwisu. Tak, żeby te nowe pliki konfiguracyjne były załadowane i miały możliwość bycia użytym. Sprawdzamy sobie następnie po restarcie status. Systemctl status freeradius i jeżeli widzimy tutaj na zielono active, active running to znaczy, że wszystko poszło zgodnie z oczekiwaniem. Jeżeli zepsujesz coś w plikach konfiguracyjnych to bardzo możliwe że ten serwis się po prostu nie uruchomi więc dobra praktyka jest taka, że należy robić małe kroki w zmianach, sprawdzać czy serwis po przeładowaniu się uruchomi i sprawdzać czy osiągamy nasz cel, który chcemy osiągnąć czyli na przykład dodajemy nowego użytkownika czy tym użytkownikiem możemy się zalogować.
Jeżeli dodajemy nowe urządzenie jako klienta Radius czyli nowe urządzenie sieciowe do tej listy dopuszczonych do komunikacji no to czy nam się serwis uruchamia. W ten sposób należy robić. Założenie też ze strony twórców FreeRADIUSA jest takie, że są domyślne pewne konfiguracje potworzone, większość tej konfiguracji, którą tutaj mamy jest używana jako ta domyślna, nie modyfikowana. Jeżeli cokolwiek będziesz chciał zmodyfikować to małymi krokami, tak żeby móc się łatwo cofnąć. Czyli zrób sobie kopię na przykład danego pliku konfiguracyjnego. Jeżeli ci się nie uruchamia to się cofnij. Sprawdź
czy się przy tej poprzedniej wersji konfiguracji serwis uruchamia i zobacz jakie masz różnice. Czyli małymi krokami żeby analizować czy wszystko działa.
Teraz zaczniemy tą konfigurację konfigurować na Fortigate. Mamy już serwer Radius uruchomiony to co potrzebujemy zrobić to w części User & Authentication RADIUS Servers stworzyć konfigurację nowego serwera Radius. Tak jak tam wcześniej podawaliśmy jako klientów te urządzenia sieciowe, tak
tutaj teraz jako część tą urządzenia sieciowego konfigurujemy co i z czym będziemy komunikować. Czyli zauważ adres IP serwera Radius trzeba podać i ten współdzielony klucz, który w połączeniu z adresem IP który ma przyznany ten Fortigate. Czyli zapytanie, które od Fortigate do Radiusa będzie szło powinno zawierać w konfiguracji Radiusa shortkey ten sam, który tutaj wpisujemy.
Sprawdzamy połączenie, widać, że się zgadza. Sprawdzamy połączenie czy użytkownik testowy się będzie mógł podłączyć. Działa. Czyli wszystko wykonane zostało prawidłowo. Jeżeli chodzi o konfigurację tych dwóch urządzeń mamy już skonfigurowanego Radiusa ale to nie wszystko. Musimy jeszcze stworzyć grupę użytkowników na Fortigate, która to grupa będzie używała jako źródła uwierzytelnienia naszego wcześniej stworzony profil Radiusa. Czyli jeżeli będzie grupa użytkowników Radius Group to wtedy użyj zdalnego serwera uwierzytelniania Radius, to co przed chwilą konfigurowaliśmy. Czyli mamy teraz skonfigurowaną grupę użytkowników, mamy skonfigurowany Radius.
To co jeszcze tutaj trzeba by oczywiście przewidzieć to politykę Firewalla, który dopuszcza ruch do tego Fortigate od strony naszych urządzeń sieciowych. Czyli ta komunikacja po IP między urządzeniem sieciowym Fortigate oraz między naszym hostem Windows, który będzie symulował ten ten nasz ruch czy tego
klienta Radiusowego to ta polityka, którą tu tworzymy musi to umożliwiać. Czyli co tutaj mamy. Przychodzący ruch z portu trzeciego na port drugi, dowolny Source, Destination i Service – ALL. NAT możemy wyłączyć, taka jest polityka, która nam tutaj w naszym środowisku wystarczy. To umożliwi nam komunikację do naszego Radiusa z hosta Windows czyli stąd idziemy tutaj, tak. radius tool, enterap, to jest jedna z możliwości jeżeli chodzi o testowanie tego
połączenia z zewnątrz. Widziałeś wcześniej test ze strony Fortigate.
Sprawdzaliśmy czy użytkownik może się uwierzytelnić i teraz spróbujmy zrobić to samo jeżeli chodzi o serwer Radius. Port do uwierzytelnienia standartowo 1812, adres IP serwera Radius. Klucz współdzielony i tutaj jest kwestia tego naszego adresu IP z sieci 20 który konfigurowalsmy jako klient w pliku konfiguracyjnym Radius. Nazwa użytkownika, hasło użytkownika i athentication Request. Wysyłamy atrybuty i patrzymy jaka jest odpowiedź. Tu widać, że odpowiedź jest Access Accept. Czyli dostaliśmy akceptację. Czyli atrybuty zwracane przez Radiusa, akceptacja tego requestu czyli prawidłowo uwierzytelniony użytkownik.
Jeżeli chodzi o jeszcze jedną funkcję możemy tutaj zmienić port na 1813 to jest port na którym standardowo realizowana jest usługa accounting i zmienić request type na accounting. Accounting to jest taka funkcjonalność gdzie my możemy z urządzenia sieciowego wysyłać do Radiusa pewne dane cyklicznie na przykład o adresie IP użytkownika końcowego o tym ile danych czyli pewne liczniki możemy tam wysyłać i dzięki temu możemy aktualizować po stronie serwera Radius pewne dane, które mogą być dla nas użyteczne. Na przykład czy użytkownik jest podłączony, ile danych użył, czy on cały czas działa bo jeżeli nie będziemy accountingu używać to wiemy tylko, że uwierzytelnienie przeszło prawidłowo i tyle i żadna więcej komunikacja do serwera Radius nie będzie realizowana przez urządzenie sieciowe, które obsługuje tego klienta a jeżeli włączymy accounting to co jakiś zgodnie z konfiguracją na urządzeniu sieciowym nasz serwer Radius będzie otrzymywał taki update i teraz sprawdźmy czy to działa.
Czyli wysyłamy teraz atrybut od strony urządzenia sieciowego do Radiusa. O i tu możemy zobaczyć, że accounting Response jest prawidłowy czyli ten accounting start zadziałał i w odpowiedzi otrzymaliśmy odpowiedź serwera Radius – Accounting-Response czyli nasza konfiguracja dotycząca accountingu z tej symulacji naszego urządzenia sieciowego działa prawidłowo.
Na dzisiaj to tyle. Jeżeli masz jakieś pytania do tego tematu albo masz jakieś pomysły na kolejne tematy do odcinków to oczywiście pisz w komentarzu. Najlepiej dodaj hashtag #NapTemat będzie tutaj też w komentarzu pokazany, jak na ekranie i dzięki temu będziemy mogli się dowiedzieć jakie tematy są ciekawe właśnie dla Ciebie. Do zobaczenia w kolejnym odcinku.






