Freeradius w połączeniu z Mysql daje nam możliwość utworzenia dużej i łatwo zarządzanej bazy użytkowników sieci WiFi. W tym artykule zestawimy FR z Sql'em, spróbujemy dodać użytkowników i połączyć się z siecią WiFi. Ciekawym pomysłem byłoby zestawienie tego rozwiązania z bazą np. czytelników Biblioteki. Niestety na dzień dzisiejszy jest mało prawdopodobne.
Oczywiście zaczynamy od podstaw; czyli instalacji systemu operacyjnego
Ubuntu Serwer, oraz serwera www
serwera WWW
1 Instalacja potrzebnych pakietów.
sudo apt-get install freeradius freeradius-mysql freeradius-utils
2 Zatrzymujemy Freeradius'a
sudo systemctl stop freeradius
3 Baza Danych
Na dowolnym komputerze w sieci wpisujemy adres serwera:
adres serwera/phpmyadmin
Logujemy się podając login (root) i hasło założone podczas instalacji phpmyadmin'a.
W poniższym oknie wybieramy "Bazy danych", wpisujemy w polu "Nazwa bazy danych" np radius i dajemy "Utwórz".
ZAPAMIĘTUJEMY WPROWADZONE DANE!
:)
4 Moduł SQL
- By włączyć moduł SQL, edytujemy plik
sudo mcedit /etc/freeradius/radiusd.conf
i usuwamy # z poniższych linijek:
$INCLUDE sql.conf
$INCLUDE sql/mysql/counter.conf
zapisujemy (F2) i wychodzimy (F10)
5 Edycja pliku sql.conf
Teraz przechodzimy do edycji pliku
sudo mcedit /etc/freeradius/sql.conf
odnajdujemy te linijki i ustawiamy swoje dane:
sql {
database = "mysql"
server = "localhost"
port = 3306
login = "radius" (tu wpisujemy swojego użytkownika)
password = "radpass" (a tu hasło użytkownika)
radius_db = "nazwa_bazy" (z punktu 3)
read_groups = yes
readclients = yes
Zapisujemy (F2) i zamykamy (F10)
6 Inne zmiany
- Dodatkowo, musimy pozmieniać odpowiednie linijki w plikach
sudo mcedit /etc/freeradius/sites-enabled/default
sudo mcedit /etc/freeradius/sites-enabled/inner-tunnel
authorize {
sql
accounting {
# detail
# unix
# radutmp
sql
session {
# radutmp
sql
7 Tworzenie użytkownika bazy i jej struktury
By stworzyć strukturę tabel oraz użytkownika, który będzie mógł na tej bazie operować, możemy posłużyć się gotowymi plikami, które znajdują się w katalogu
/etc/freeradius/sql/mysql/
to są owe pliki:
/etc/freeradius/sql/mysql/schema.sql ,
/etc/freeradius/sql/mysql/nas.sql
/etc/freeradius/sql/mysql/admin.sql
Plikowi admin.sql trzeba się dobrze przyjrzeć. Tworzy on użytkownika dla konkretnej bazy, a co za tym idzie, domyślne parametry nie będą działać z bazą i użytkownikiem założonym przez nas z poziomu phpmyadmin'a. Patrz grafika poniżej
- logujemy sie na konto root'a
su -
i wpisujemy komendy
mysql -u nazwa_użytkownika_bazy -p nazwa_bazy < /etc/freeradius/sql/mysql/schema.sql
mysql -u nazwa_użytkownika_bazy -p nazwa_bazy < /etc/freeradius/sql/mysql/nas.sql
mysql -u nazwa_użytkownika_bazy -p nazwa_bazy < /etc/freeradius/sql/mysql/admin.sql
- sprawdzamy czy tabele się utworzyły, logując się do MySQL (można przez phpmyadmin'a)
mysql -u root -p
SHOW DATABASES; - wyświetla bazy
USE nazwa_bazy; - wybiera bazę o nazwie nazwa_bazy
SHOW TABLES; - pokazuje tabele w bazie
DESCRIBE radcheck; - wyświetla parametry tabeli radcheck
SELECT * FROM radcheck; - wyświetla wpisy w tabeli
albo logujemy się do phpmyadmin'a
adres_serwera/phpmyadmin
Na koniec wychodzimy z konta root
8 Dodajemy użytkownika WiFi
Dodamy konto użytkownika WiFi. To użytkownik i hasło, dzięki któremu będziemy mogli połączyć się z siecią wifi np. przez smartfon czy laptop.
logujemy się do phpmyadmin'a
adres_serwera/phpmyadmin
Po zalogowaniu klikamy na nazwę bazy danych radius (utworzona w punkcie 3). Odnajdujemy tabelę radcheck i klikamy na "Wstaw" (po prawej stronie).
W Oknie poniżej wpisujemy dane i klikamy na "Wykonaj"
9 Start freeradius'a
sudo systemctl start freeradius
10 Test użytkownika
radtest Użytkownik Hasło 127.0.0.1 0 testing123
Powinniśmy otrzymać informację:
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812......
11 Dodajemy Klienta
zanim dodamy klienta (Router) do bazy MySQL, musimy wyłączyć przetwarzanie klientów z pliku radiusd.conf
sudo mcedit /etc/freeradius/radiusd.conf
odnajdujemy linijkę
$INCULDE clients.conf
I wstawiamy # na początku*
Od tego momentu test z punktu 9 przestanie działać. Dopiero po dodaniu klienta localhost do bazy, test znów zacznie działać.
A zatem dodajmy klientów!
Logujemy się do phpmyadmin'a
adres_serwera/phpmyadmin
Po zalogowaniu klikamy na nazwę bazy danych radius (utworzona w punkcie 3). Odnajdujemy tabelę "nas" i klikamy na "Wstaw" (po prawej stronie).
Wypełniamy pola jak poniżej i klikamy "Wykonaj"
12 Restart Freeradius'a
sudo systemctl restart freeradius
13 Test
radtest Użytkownik Hasło 127.0.0.1 0 haslo (jak w punkcie 11)
14 Konfigurujemy klienta
Patrz
TU