niedziela, 2 grudnia 2018

Freeradius + Mysql (Weesja lekko zaawansowana)

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

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"


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


Brak komentarzy:

Prześlij komentarz

ZeroTier - Wirtualny Switch na Ubuntu 18.04

1. Instalacja Zerotier-One curl -s https://install.zerotier.com | sudo bash 2. Instalacja pakietów ZeroTier curl -O https:...