Raspberry Pi – Instalacja i konfiguracja serwera RADIUS
Ostatnio można było sporo usłyszeć o ataku na sieci WiFi, a konkretnie na protokół o nazwie WPA2 o nazwie KRACK. Skłoniło mnie to do poczytania dokładniej o WPA2 i w konsekwencji w opcjach mojego routera znalazłem zabezpieczenie poprzez WPA2-Enterprise. Co prawda nie chroni ono przed atakiem (chociaż większość klientów i tak została już załatana) to jest ciekawą formą autoryzacji rzadko spotykaną w domowych sieciach, niemniej bardzo ciekawą :) Pozwala na autoryzację loginem oraz hasłem lub certyfikatem, który weryfikowany jest przez serwer RADIUS.
Instalacja serwera
Na początku jak zwykle aktualizujemy nasze repozytoria:
sudo apt-get update sudo apt-get upgrade
Mając już wszystko zaktualizowane możemy przystąpić do instalacji pakietu FreeRADIUS.
sudo apt-get install freeradius
Oczywiście Raspberry Pi musi być podłączone do naszej sieci poprzez kabel, a nie WiFi (no chyba, że mamy inne WiFi, które przydzeli nasze Raspberry do tej samej sieci i nie będzie weryfikowane przez RADIUS).
Instalacja może chwilę potrwać.
Kiedy już malinka radośnie poinformuje nas że wszystkie pakiety zainstalowały się poprawnie możemy przejść do katalogu z plikami konfiguracyjnymi freeradiusa, w celu ustawienia paru rzeczy.
cd /etc/freeradius/3.0/
Konfiguracja klientów
Czym jest klient RADIUSa? Wcale nie tym, czym myślisz że jest :) Wydawać by się mogło że są to użytkownicy, którzy logują się do sieci WiFi swoim loginem i hasłem. Tymczasem sytuacja wyglada tak, że klientem nazywamy w tym przypadku urządzenie sieciowe, do którego łączą się użytkownicy. To ono wysyła zapytanie do RADIUSa, czy użytkownik próbujący połączyć się do sieci ma pozwolenie na to.
Aby dodać nasz access-point/router otwórzmy plik clients jakimś edytorem:
sudo nano clients.conf
Twórcy freeradiusa zostawili nam nawet w tym pliku instrukcję jak powinien wyglądać przykładowy wpis klienta. Jeżeli chcemy nieco pobawić się możeny poczytać zakomentowane linijki w domyślnym pliku konfiguracyjnym. Jeżeli nie potrzebujemy żadnych dodatkowych opcji wystarczy że na końcu dodamy taki oto wpis:
client tplink { ipaddr = 192.168.1.2 secret = turboSilneHaslo5 }
W moim przypadku tplink to nazwa klienta (możemy ustawić taką, jaka nam pasuje).
Ważne są też dwa podane między klamerkami {} parametry ipaddr oraz secret. Pierwszy z nich to adres IP klienta (czyli przypominam: access-pointa/routera), a drugi to hasło, któego użyjemy przy konfiguracji WPA2-Enterprise po stronie urządzenia sieciowego.
Kiedy już dodamy odpowiedni wpis lub kilka odpowiednich wpisów (jeżeli mamy klika sieci, któe chcemy zabezpieczyć tymi samymi poświadczeniami) możemy zapisać plik i przejść do konfiguracji użytkowników.
Konfiguracja użytkowników
Aby otworzyć plik konfiguracyjny z użytkownikami wpisujemy
sudo nano users
Tu podobnie jak w każdym innym pliku konfiguracyjnym mamy dokładną instrukcję co i jak, ja podam najprostszy sposób dodania użytkownika. Wystarczy, że na końcu pliku dopiszemy taki oto wpis, lub kilka wpisów:
nazwa_uzytkownika Cleartext-Password := "haslo"
Kiedy zapiszemy plik i uruchomimy ponownie serwis freeradiusa serwer pozytywnie zweryfikuje wszystkie prośby od użytkownika nazwa_uzytkownika używającego hasła haslo.
Autostart serwisu
Aby serwis freeradiusa uruchamiał się razem z naszą malinką wpisujemy polecenie
sudo update-rc.d freeradius defaults
Teraz możemy zrestartować serwis:
sudo service freeradius restart
Konfiguracja access-pointa
W przeglądarce wpisujemy adres ip naszego access-pointa, logujemy się do panelu administracyjnego i szukamy zakładki Security / Zabezpieczenia. Może ona być gdzieś pod zakładakami takimi jak WiFi, WLAN lub Wireless.
W routerach TP-LINK powinno to wyglądać mniej więcej tak:
W Radius Server IP podajemy adres IP naszej malinki (musi być to stały adres), Radius Port zostawiamy domyślny (czyli 1812), a w Radius Password wpisujemy hasło które ustawiliśmy przez parametr secret w konfiguracji klientów.
Możemy teraz zapisać ustawienia i zrestartować urządzenie.
Łączenie się do sieci
Chcąc połączyć się z naszą siecią wystarczy, że podamy teraz odpowiedniego użytkownika oraz jego hasło podczas konfiguracji połączenia: