Cómo instalar FreeRADIUS y daloRADIUS en Ubuntu 18.04 LTS

FreeRADIUS es un protocolo cliente/servidor gratuito y de código abierto que proporciona autenticación de red centralizada en los sistemas. Es un servidor RADIUS de alto rendimiento y rico en funciones que incluye tanto el servidor como el cliente, bibliotecas de desarrollo y utilidades relacionadas con RADIUS. RADIUS te permite mantener los perfiles de los usuarios y hacer un seguimiento del uso para la facturación desde el servidor central. Es compatible con varias bases de datos, como OpenLDAP, MySQL, Redis, Microsoft AD, Apache Cassandra, PostgreSQL, etc.

daloRADIUS es una aplicación basada en la web para gestionar el servidor RADIUS. Es una aplicación avanzada basada en la web para gestionar puntos de acceso y despliegues de ISP. Está escrita en PHP y JavaScript y soporta MySQL, PostgreSQL, SQLite, MsSQL como base de datos. Viene con un rico conjunto de características como, Listas de Control de Acceso, informes gráficos, motor de facturación, informes gráficos y contabilidad, crear, eliminar y editar usuarios, crear, eliminar y editar HotSpot, crear, eliminar y editar NAS, y mucho más.

FreeRADIUS funciona como back-end mientras que daloRADIUS funciona como front-end.

En este tutorial, explicaré paso a paso cómo instalar el servidor FreeRADIUS y el cliente web Daloradius en Ubuntu 18.04 LTS.

Requisitos

  • Un servidor con Ubuntu 18.04.
  • Una contraseña de root configurada en tu servidor.

Cómo empezar

Primero, actualiza los paquetes de tu sistema a la última versión con el siguiente comando:

apt-get update -y
apt-get upgrade -y

Una vez actualizados todos los paquetes, reinicia tu sistema para aplicar todos los cambios de configuración.

Instalar el servidor LAMP

En primer lugar, tendrás que instalar Apache, MariaDB, PHP y otros paquetes necesarios en tu sistema. Puedes instalarlos todos con el siguiente comando:

apt-get install apache2 mariadb-server php libapache2-mod-php php-mail php-mail-mime php-mysql php-gd php-common php-pear php-db php-mbstring php-xml php-curl unzip wget -y

Una vez instalados todos los paquetes, puedes pasar al siguiente paso.

Configurar la base de datos para FreeRADIUS

Por defecto, MariaDB no está protegida. Así que primero tendrás que asegurarla. Puedes asegurarla con el siguiente comando:

mysql_secure_installation

Responde a todas las preguntas como se muestra a continuación:

Enter current password for root (enter for none): Just press the Enter
Set root password? [Y/n]: Y
New password: Enter password
Re-enter new password: Repeat password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

A continuación, tendrás que crear una base de datos y un usuario para FreeRADIUS. Para ello, entra en el shell de MariaDB con el siguiente comando:

mysql -u root -p

Introduce tu contraseña de root cuando se te pida y luego crea una base de datos y un usuario con el siguiente comando:

MariaDB [(none)]> CREATE DATABASE radiusdb;
MariaDB [(none)]> GRANT ALL ON radiusdb.* TO [email protected] IDENTIFIED BY "password";

A continuación, vacía los privilegios y sal del shell MariaDB con el siguiente comando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar FreeRADIUS

Por defecto, FreeRADIUS está disponible en el repositorio por defecto de Ubuntu 18.04. Puedes instalarlo con el siguiente comando:

apt-get install freeradius freeradius-mysql freeradius-utils

Una vez instalado, importa el esquema de la base de datos MySQL de freeradius con el siguiente comando:

mysql -u root -p radiusdb < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql

Proporciona tu contraseña de usuario de la base de datos radius cuando se te pida y pulsa Intro para importar el esquema de la base de datos.

A continuación, tendrás que crear un enlace simbólico para el módulo sql. Puedes hacerlo con el siguiente comando:

ln -s /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-enabled/

A continuación, entra en el shell de MariaDB y comprueba las tablas creadas con el siguiente comando:

mysql -u root -p

Introduce tu contraseña de root cuando se te pida. Una vez iniciada la sesión, cambia la base de datos a radiusdb con el siguiente comando

MariaDB [(none)]> use radiusdb;

A continuación, lista las tablas creadas con el siguiente comando:

MariaDB [radiusdb]> show tables;

Deberías ver la siguiente salida:

+--------------------+
| Tables_in_radiusdb |
+--------------------+
| nas                |
| radacct            |
| radcheck           |
| radgroupcheck      |
| radgroupreply      |
| radpostauth        |
| radreply           |
| radusergroup       |
+--------------------+

A continuación, sal del shell de MariaDB con el siguiente comando:

MariaDB [radiusdb]> EXIT;

A continuación, tendrás que definir los detalles de la conexión a la base de datos en el módulo SQL de freeradius. Puedes hacerlo editando el archivo /etc/freeradius/3.0/mods-enabled/sql:

nano /etc/freeradius/3.0/mods-enabled/sql

Realiza los siguientes cambios según tu base de datos:

sql {
driver = "rlm_sql_mysql"
dialect = "mysql"

# Connection info:
server = "localhost"
port = 3306
login = "radius"
password = "password"

# Database table configuration for everything except Oracle
radius_db = "radiusdb"
}

read_clients = yes
client_table = "nas"

Guarda y cierra el archivo, cuando hayas terminado. A continuación, cambia la propiedad de /etc/freeradius/3.0/mods-enabled/sql con el siguiente comando:

chgrp -h freerad /etc/freeradius/3.0/mods-available/sql
chown -R freerad:freerad /etc/freeradius/3.0/mods-enabled/sql

Por último, reinicia el servicio freeradius para aplicar todos los cambios de configuración:

systemctl restart freeradius

También puedes verificar el estado de freeradius con el siguiente comando:

systemctl status freeradius

Deberías ver la siguiente salida:

? freeradius.service - FreeRADIUS multi-protocol policy server
   Loaded: loaded (/lib/systemd/system/freeradius.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-08-07 09:20:34 UTC; 14s ago
     Docs: man:radiusd(8)
           man:radiusd.conf(5)
           http://wiki.freeradius.org/
           http://networkradius.com/doc/
  Process: 45159 ExecStart=/usr/sbin/freeradius $FREERADIUS_OPTIONS (code=exited, status=0/SUCCESS)
  Process: 45143 ExecStartPre=/usr/sbin/freeradius $FREERADIUS_OPTIONS -Cxm -lstdout (code=exited, status=0/SUCCESS)
 Main PID: 45161 (freeradius)
    Tasks: 6 (limit: 4650)
   CGroup: /system.slice/freeradius.service
           ??45161 /usr/sbin/freeradius

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar daloRADIUS

A continuación, tendrás que instalar daloRADIUS para gestionar FreeRADIUS desde el navegador web.

Primero, descarga la última versión de daloRADIUS desde el repositorio Git con el siguiente comando:

wget https://github.com/lirantal/daloradius/archive/master.zip

Una vez descargado, descomprime el archivo descargado con el siguiente comando:

unzip master.zip

A continuación, mueve el directorio extraído al directorio raíz de la web de Apache con el siguiente comando

mv daloradius-master /var/www/html/daloradius

A continuación, importa las tablas mysql de daloRADIUS a radiusdb con el siguiente comando:

cd /var/www/html/daloradius
mysql -u root -p radiusdb < contrib/db/fr2-mysql-daloradius-and-freeradius.sql
mysql -u root -p radiusdb < contrib/db/mysql-daloradius.sql

A continuación, da el permiso adecuado al directorio daloradius con el siguiente comando:

chown -R www-data:www-data /var/www/html/daloradius/
chmod 664 /var/www/html/daloradius/library/daloradius.conf.php

A continuación, abre el archivo daloradius.conf.php y define los detalles de la conexión a la base de datos:

nano /var/www/html/daloradius/library/daloradius.conf.php

Realiza los siguientes cambios que coincidan con tu base de datos:

$configValues['DALORADIUS_VERSION'] = '1.1-1';
$configValues['DALORADIUS_DATE'] = '28 Jul 2019';
$configValues['FREERADIUS_VERSION'] = '2';
$configValues['CONFIG_DB_ENGINE'] = 'mysqli';
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'password';
$configValues['CONFIG_DB_NAME'] = 'radiusdb';

Guarda y cierra el archivo. A continuación, reinicia el servicio freeradius y apache con el siguiente comando:

systemctl restart freeradius
systemctl restart apache2

También puedes comprobar el estado del servicio web de Apache con el siguiente comando:

systemctl status apache2

Deberías ver el siguiente comando:

? apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           ??apache2-systemd.conf
   Active: active (running) since Wed 2019-08-07 09:25:56 UTC; 4min 25s ago
  Process: 45483 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
  Process: 45489 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 45505 (apache2)
    Tasks: 11 (limit: 4650)
   CGroup: /system.slice/apache2.service
           ??45505 /usr/sbin/apache2 -k start
           ??45510 /usr/sbin/apache2 -k start
           ??45511 /usr/sbin/apache2 -k start
           ??45512 /usr/sbin/apache2 -k start
           ??45513 /usr/sbin/apache2 -k start
           ??45517 /usr/sbin/apache2 -k start
           ??45519 /usr/sbin/apache2 -k start
           ??45520 /usr/sbin/apache2 -k start
           ??45521 /usr/sbin/apache2 -k start
           ??45527 /usr/sbin/apache2 -k start
           ??45528 /usr/sbin/apache2 -k start

Aug 07 09:25:55 openshift systemd[1]: Starting The Apache HTTP Server...
Aug 07 09:25:56 openshift systemd[1]: Started The Apache HTTP Server.

Una vez hecho esto, puedes pasar al siguiente paso.

Acceder a la interfaz web de daloRADIUS

FreeRADIUS y daloRADIUS ya están instalados y configurados. Es el momento de acceder a la interfaz web de daloRADIUS. Para acceder a la interfaz web, abre tu navegador y escribe la URL http://your-server-ip/daloradius/login.php. Serás redirigido a la página de inicio de sesión de daloRADIUS:

Inicio de sesión de daloRadius

Ahora, proporciona el nombre de usuario y la contraseña por defecto como administrador/radio, y haz clic en el botón de inicio de sesión. Deberías ver el panel de control por defecto de daloRADIUS en la siguiente página:

Panel de control de daloRadius

Estado del servidor daloRadius

Enhorabuena! has instalado y configurado con éxito FreeRADIUS y daloRADIUS en tu servidor Ubuntu 18.04. Para más información, puedes visitar la documentación oficial en https://github.com/lirantal/daloradius. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...