Installare Freeradius con supporto MySQL su Ubuntu 16.04
Prima di tutto occorre avere il sistema LAMP installato per attivare anche il Web Management.
Preparazione (MySQL e Apache si presume siano già installati):
1 |
sudo apt-get install sudo apt-get install php-common php-gd php-curl php-mail php-mail-mime php-pear php-db php-mysql |
Si installa Freeradius:
1 |
sudo apt-get install freeradius freeradius-mysql freeradius-utils |
Creazione del database su MySQL:
1 2 3 4 |
mysql -u root -p mysql> create database radius; mysql> grant all on radius.* to radius@localhost identified by "password"; |
Aggiunta tabelle:
1 2 |
mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql mysql -u root -p radius < /etc/freeradius/sql/mysql/nas.sql |
Creazione di un utente di test radius:
1 2 3 4 |
mysql -u root -p mysql> use radius; mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES (‘sqltest', ‘Password', ‘testpwd'); |
Configurazione di Freeradius:
1 |
sudo nano /etc/freeradius/sql.conf |
Impostare i dati di accesso al database:
1 2 3 4 5 6 7 |
database = mysql login = radius password = password # decommentare le seguenti opzioni readclients = yes read_groups = yes |
Editare le impostazioni:
1 |
sudo nano /etc/freeradius/sites-enabled/default |
Commentare tutte le voci files e decommentare tutte le voci sql:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
authorize { # files sql } authenticate { } preacct { # files } accounting { sql } session { sql } post-auth { sql Post-Auth-Type REJECT { # log failed authentications in SQL, too. sql attr_filter.access_reject } } |
Editare le impostazioni:
1 |
sudo nano /etc/freeradius/radiusd.conf |
Decommentare:
1 |
$INCLUDE sql.conf |
Riavviare MySQL e Freeradius:
1 2 |
sudo /etc/inid.d/mysql restart sudo /etc/inid.d/freeradius restart |
Testare l’utente radius di prova:
1 |
radtest sqltest testpwd localhost 18128 testing123 |
Se tutto funziona si dovrebbe avere una risposta tipo:
1 2 3 4 5 6 7 |
Sending Access-Request of id 68 to 127.0.0.1 port 1812 User-Name = "sqltest" User-Password = "testpwd" NAS-IP-Address = 127.0.1.1 NAS-Port = 18128 Message-Authenticator = 0x00000000000000000000000000000000 rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=68, length=20 |
Per installare il Web Management Daloradius scaricare dal sito l’ultima versione (piuttosto datata), estrarlo e pubblicarlo:
1 2 3 4 5 |
tar xvfz daloradius-0.9-9.tar.gz sudo mv daloradius-0.9-9 daloradius sudo mv daloradius /var/www/html sudo chown -R www-data:www-data /var/www/html/daloradius/ sudo chmod 644 /var/www/html/daloradius/library/daloradius.conf.php |
Importare le tabelle su MySQL:
1 2 |
cd /var/www/html/daloradius/contrib/db sudo mysql -u root -p radius < mysql-daloradius.sql |
Editare le impostazioni:
1 2 3 4 |
sudo nano /var/www/html/daloradius/library/daloradius.conf.php $configValues['CONFIG_DB_USER'] = 'root'; $configValues[‘CONFIG_DB_PASS'] = ‘password'; |
Occorre utilizzare l’utente root di MySQL o dare i permessi SUPER ad un utente o si otterranno errori simili su alcune pagine:
Database error
Error Message: DB Error: unknown error
Debug info: SET GLOBAL sql_mode = ”; [nativecode=1227 ** Access denied; you need (at least one of) the SUPER privilege(s) for this operation]
Configurare Apache:
1 |
sudo nano /etc/apache2/sites-available/daloradius.conf |
Impostare:
1 2 3 4 5 6 7 |
Alias /daloradius "/var/www/html/daloradius/" <Directory /var/www/html/daloradius/> Options None Order allow,deny allow from all </Directory> |
Abilitare Daloradius:
1 2 |
sudo a2ensite daloradius sudo service apache2 reload |
Eseguire l’accesso su http://host-o-ip-del-server/daloradius/ come utente administrator e password radius
Con PHP7 si ottiene l’errore
Database connection error
Error Message: DB Error: extension not found
Per ovviare al problema le istruzioni sono su How to get daloRADIUS to work in PHP-7.
Verificare di avere i requisiti:
1 |
sudo apt-get install php-common php-gd php-curl php-mail php-mail-mime php-pear php-db |
Installare:
1 |
pear install DB |
Editare le impostazioni:
1 2 3 |
sudo nano /var/www/html/daloradius/library/daloradius.conf.php $configValues['CONFIG_DB_ENGINE'] = 'mysqli'; |
1 2 3 4 |
sudo nano /var/www/html/daloradius/library/opendb.php # aggiungere al fondo del file $dbSocket->query("SET GLOBAL sql_mode = '';"); |
Ricaricare la pagina e ora dovrebbe funzionare anche il Web Management.
Esiste anche un altro Web Management che alcuni consigliano, RADIUSdesk.