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):
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:
sudo apt-get install freeradius freeradius-mysql freeradius-utils
Creazione del database su MySQL:
mysql -u root -p mysql> create database radius; mysql> grant all on radius.* to radius@localhost identified by "password";
Aggiunta tabelle:
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:
mysql -u root -p mysql> use radius; mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES (‘sqltest', ‘Password', ‘testpwd');
Configurazione di Freeradius:
sudo nano /etc/freeradius/sql.conf
Impostare i dati di accesso al database:
database = mysql login = radius password = password # decommentare le seguenti opzioni readclients = yes read_groups = yes
Editare le impostazioni:
sudo nano /etc/freeradius/sites-enabled/default
Commentare tutte le voci files e decommentare tutte le voci sql:
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:
sudo nano /etc/freeradius/radiusd.conf
Decommentare:
$INCLUDE sql.conf
Riavviare MySQL e Freeradius:
sudo /etc/inid.d/mysql restart sudo /etc/inid.d/freeradius restart
Testare l’utente radius di prova:
radtest sqltest testpwd localhost 18128 testing123
Se tutto funziona si dovrebbe avere una risposta tipo:
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:
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:
cd /var/www/html/daloradius/contrib/db sudo mysql -u root -p radius < mysql-daloradius.sql
Editare le impostazioni:
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:
sudo nano /etc/apache2/sites-available/daloradius.conf
Impostare:
Alias /daloradius "/var/www/html/daloradius/" <Directory /var/www/html/daloradius/> Options None Order allow,deny allow from all </Directory>
Abilitare Daloradius:
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:
sudo apt-get install php-common php-gd php-curl php-mail php-mail-mime php-pear php-db
Installare:
pear install DB
Editare le impostazioni:
sudo nano /var/www/html/daloradius/library/daloradius.conf.php $configValues['CONFIG_DB_ENGINE'] = 'mysqli';
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.