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: