Installer FreeRADIUS et Daloradius sur Rocky/Alma/CentOS 9|8
Je veux installer FreeRADIUS et Daloradius sur CentOS 8/RHEL 8. RADIUS, qui signifie « Remote Authentication Dial-In User Service », est un protocole réseau utilisé pour l'authentification et la comptabilité des utilisateurs distants. Il fournit des services AAA, à savoir Autorisation, Authentification et Comptabilité.
FreeRADIUS est un serveur RADIUS open source, performant, évolutif, modulaire et riche en fonctionnalités. FreeRADIUS prend en charge le proxy de requêtes, le basculement et la répartition de charge, ainsi que l'accès à diverses bases de données en arrière-plan.
Principales fonctionnalités de FreeRADIUS
- Configuration flexible grâce à une large gamme de méthodes pour sélectionner les configurations utilisateur.
- Prise en charge complète des attributs RFC 2865 et RFC 2866.
- EAP avec les sous-types EAP-MD5, EAP-SIM, EAP-TLS, EAP-TTLS, EAP-PEAP et Cisco LEAP
- Attributs spécifiques des fournisseurs pour près d'une centaine de fournisseurs, y compris BinTec, Foundry, Cisco, Juniper, Lucent/Ascend, HP ProCurve, Microsoft, USR/3Com, Acc/Newbridge et bien d'autres.
Intégrer daloRADIUS dans le mélange
daloRADIUS est une plateforme avancée de gestion RADIUS via le web, écrite en PHP et JavaScript. Elle est principalement destinée à la gestion de points d'accès Hotspot et de déploiements ISP à usage général utilisant le serveur FreeRADIUS. Voici les principales fonctionnalités de daloRADIUS :
- Couche d'abstraction de base de données avec prise en charge de nombreux systèmes de bases de données – MySQL, SQLite, PostgreSQL, MsSQL et Oracle
- Gestion avancée des utilisateurs
- Rapports graphiques et comptables puissants
- S'intègre à Google Maps pour la géolocalisation
- Dispose d’un moteur de facturation
Suivez les étapes suivantes pour installer FreeRADIUS et daloRADIUS sur un système Linux CentOS 8/RHEL 8.
Étape 1 : Mettez à jour votre serveur
Ne faites jamais confiance à un système qui n'est pas à jour. Tous les paquets installés peuvent être mis à jour en exécutant la commande suivante dans le terminal.
sudo dnf -y updateÉtape 2 : Installer Apache et PHP
Nous utiliserons le serveur Apache httpd pour héberger daloRADIUS sur votre système. Installez les packages httpd et PHP avec la commande suivante.
sudo dnf module reset -y php
sudo dnf module reset -y php && sudo dnf module install -y php:8.0
sudo dnf -y install php-{cli,curl,mysqlnd,devel,gd,pear,mbstring,xml,pear,zip}
sudo pear install DB
sudo pear install MDB2Vérifiez la version de PHP installée pour confirmer que l'installation a été réussie.
$ php -v
PHP 8.0.30 (cli) (built: Aug 3 2023 17:13:08) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend TechnologiesInstaller le serveur web Apache :
sudo dnf -y install @httpdDémarrez et activez les services php-fpm et httpd.
sudo systemctl enable --now httpd php-fpmValidons le démarrage en vérifiant l'état des deux services.
systemctl status httpd php-fpmAutoriser les ports http et https sur le pare-feu.
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reloadRéférence pour l'installation d'Apache httpd :
- Installer le serveur Apache httpd sur RHEL/CentOS 8
Étape 3 : Installer et configurer MariaDB
Nous avons un guide séparé sur l'installation du serveur de base de données MariaDB sur RHEL/CentOS 8. Référez-vous à celui-ci en utilisant le lien ci-dessous.
- Installer le serveur de base de données MariaDB sur CentOS/RHEL 8
Après l'installation, accédez à la console MySQL en tant qu'utilisateur root et créez une base de données/utilisateur pour FreeRADIUS/daloRADIUS.
$ mysql -u root -p
CREATE DATABASE radius;
GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "StrongradIusPass";
FLUSH PRIVILEGES;
\qÉtape 4 : Installation de FreeRADIUS
Les paquets FreeRADIUS sont disponibles dans le dépôt modulaire.
$ sudo dnf module list freeradius
Last metadata expiration check: 0:04:00 ago on Thu 10 Oct 2019 05:08:54 PM EAT.
CentOS-8 - AppStream
Name Stream Profiles Summary
freeradius 3.0 [d] server [d] High-performance and highly configurable free RADIUS server
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Pour l’installer, il suffit d’exécuter la commande.
sudo dnf install -y @freeradius freeradius-utils freeradius-mysqlDémarrez le service après l'installation.
sudo systemctl enable --now radiusd.serviceVous pouvez maintenant vérifier le statut :
$ systemctl status radiusd.service
● radiusd.service - FreeRADIUS high performance RADIUS server.
Loaded: loaded (/usr/lib/systemd/system/radiusd.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2023-11-23 01:53:42 UTC; 3s ago
Process: 14781 ExecStart=/usr/sbin/radiusd -d /etc/raddb (code=exited, status=0/SUCCESS)
Process: 14778 ExecStartPre=/usr/sbin/radiusd -C (code=exited, status=0/SUCCESS)
Process: 14732 ExecStartPre=/bin/sh /etc/raddb/certs/bootstrap (code=exited, status=0/SUCCESS)
Process: 14731 ExecStartPre=/bin/chown -R radiusd.radiusd /var/run/radiusd (code=exited, status=0/SUCCESS)
Main PID: 14783 (radiusd)
Tasks: 6 (limit: 22612)
Memory: 77.8M
CGroup: /system.slice/radiusd.service
└─14783 /usr/sbin/radiusd -d /etc/raddb
Nov 23 01:53:41 rocky8.mylab.io sh[14769]: URI:http://www.example.com/example_ca.crl
Nov 23 01:53:41 rocky8.mylab.io sh[14769]: Certificate is to be certified until Jan 22 01:53:41 2024 GMT (60 days)
Nov 23 01:53:41 rocky8.mylab.io sh[14769]: Write out database with 1 new entries
Nov 23 01:53:41 rocky8.mylab.io sh[14769]: Data Base Updated
Nov 23 01:53:41 rocky8.mylab.io sh[14741]: openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12 -passin pass:'whatever' -passout pass:'whatever'
Nov 23 01:53:41 rocky8.mylab.io sh[14741]: chmod g+r client.p12
Nov 23 01:53:41 rocky8.mylab.io sh[14741]: openssl pkcs12 -in client.p12 -out client.pem -passin pass:'whatever' -passout pass:'whatever'
Nov 23 01:53:41 rocky8.mylab.io sh[14741]: chmod g+r client.pem
Nov 23 01:53:41 rocky8.mylab.io sh[14741]: cp client.pem '[email '.pem
Nov 23 01:53:42 rocky8.mylab.io systemd[1]: Started FreeRADIUS high performance RADIUS server..Si vous avez le service Firewalld en cours d'exécution, autorisez le trafic radius et http1812 et 1813.
sudo firewall-cmd --add-service=radius --permanent
sudo firewall-cmd --reloadÉtape 5 : Configurer FreeRADIUS
Pour configurer FreeRADIUS afin d'utiliser MariaDB, suivez les étapes ci-dessous.
1 – Importer le schéma de la base de données Radius pour remplir la base de données radius
sudo su -
mysql -u root -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql2 – Configurer Radius
Tout d'abord, vous devez créer un lien symbolique pour SQL sous /etc/raddb/mods-enabled
sudo ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/Configurez le module SQL /raddb/mods-available/sql et modifiez les paramètres de connexion à la base de données pour qu'ils correspondent à votre environnement :
sudo vi /etc/raddb/mods-available/sql- La section sql devrait ressembler à ce qui suit.
sql {
driver = "rlm_sql_mysql"
dialect = "mysql"
# Connection info:
server = "localhost"
port = 3306
login = "radius"
password = "StrongradIusPass"
# Database table configuration for everything except Oracle
radius_db = "radius"
}
# Set to ‘yes’ to read radius clients from the database (‘nas’ table)
# Clients will ONLY be read on server startup.
read_clients = yes
# Table to keep radius client info
client_table = "nas"Commenter les paramètres SSL de MySQL.
mysql {
# If any of the files below are set, TLS encryption is enabled
# tls {
# ca_file = "/etc/ssl/certs/my_ca.crt"
# ca_path = "/etc/ssl/certs/"
# certificate_file = "/etc/ssl/certs/private/client.crt"
# private_key_file = "/etc/ssl/certs/private/client.key"
# cipher = "DHE-RSA-AES256-SHA:AES128-SHA"
#
# tls_required = yes
# tls_check_cert = no
# tls_check_cert_cn = no
# }
Ensuite, changez le groupe droit de /etc/raddb/mods-enabled/sql en radiusd :
sudo chgrp -h radiusd /etc/raddb/mods-enabled/sqlRedémarrer le service radiusd
sudo systemctl restart radiusdÉtape 6 : Installer et configurer Daloradius (Optionnel)
Vous pouvez utiliser Daloradius pour gérer le serveur RADIUS depuis une interface web. Il s'agit d'une configuration optionnelle que vous pouvez choisir en fonction de votre cas d'utilisation.
Téléchargez le code daloradius depuis Github.
sudo yum -y install git vim
git clone https://github.com/lirantal/daloradius.gitImporter les tables MySQL de Daloradius
mysql -u root -p radius < daloradius/contrib/db/fr3-mariadb-freeradius.sql
mysql -u root -p radius < daloradius/contrib/db/mariadb-daloradius.sqlDéplacez le dossier daloradius vers le chemin dans /var/www/html
sudo mv daloradius /var/www/Ensuite, modifiez les permissions du dossier http et définissez les bonnes permissions pour le fichier de configuration de daloradius.
cd /var/www/daloradius/app/common/includes/
sudo cp daloradius.conf.php.sample daloradius.conf.php
sudo chown -R apache:apache /var/www/daloradius/Vous devriez maintenant modifier le fichier daloradius.conf.php pour ajuster les informations de la base de données MySQL.
sudo vim daloradius.conf.phpDéfinissez le nom de la base de données, l’utilisateur et le mot de passe pour la connexion.
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'StrongradIusPass';
$configValues['CONFIG_DB_NAME'] = 'radius';Pour s'assurer que tout fonctionne, redémarrez les services radiusd et httpd.
sudo systemctl restart radiusd.service httpd
systemctl status radiusd.service httpdIl ne devrait y avoir aucune erreur dans la sortie de l'état du service :
Créer les répertoires supplémentaires requis.
cd /var/www/daloradius/
sudo mkdir -p var/{log,backup}
sudo chown -R apache:apache varInstallez les modules PHP ci-dessous.
sudo pear install DB
sudo pear install MDB2Configurer le serveur web Apache
Configurer Apache pour écouter sur le port 80 et le port 8000
$ sudo vim /etc/httpd/conf/httpd.conf
Listen 80
Listen 8000Configurer l'hôte virtuel pour le module des opérateurs :
sudo tee /etc/httpd/conf.d/operators.conf<<EOF
<VirtualHost *:8000>
ServerAdmin operators@localhost
DocumentRoot /var/www/daloradius/app/operators
<Directory /var/www/daloradius/app/operators>
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/daloradius>
Require all denied
</Directory>
ErrorLog /var/log/httpd/daloradius/operators/error.log
CustomLog /var/log/httpd/daloradius/operators/access.log combined
</VirtualHost>
EOFEnsuite, nous créons un hôte virtuel pour les utilisateurs :
sudo tee /etc/httpd/conf.d/users.conf<<EOF
<VirtualHost *:80>
ServerAdmin users@localhost
DocumentRoot /var/www/daloradius/app/users
<Directory /var/www/daloradius/app/users>
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/daloradius>
Require all denied
</Directory>
ErrorLog /var/log/httpd/daloradius/users/error.log
CustomLog /var/log/httpd/daloradius/users/access.log combined
</VirtualHost>
EOFCréez des répertoires qui stockeront les fichiers journaux.
sudo mkdir -p /var/log/httpd/daloradius/{operators,users}Désactiver la page d'accueil par défaut du serveur web Apache.
sudo rm /etc/httpd/conf.d/welcome.confSi SELinux est activé, étiquetez les répertoires en conséquence.
sudo yum -y install policycoreutils-python-utils
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/daloradius(/.*)?"
sudo restorecon -Rv /var/www/daloradiusSi SELinux est en mode enforcement, ajoutez une étiquette au port 8000 pour qu’il soit utilisé par httpd.
sudo semanage port -m -t http_port_t -p tcp 8000Vérifiez si cela a été appliqué correctement.
# semanage port -l | grep -w http_port_t
http_port_t tcp 8000, 80, 81, 443, 488, 8008, 8009, 8443, 9000Autoriser l'accès aux ports depuis le pare-feu.
sudo firewall-cmd --add-service={http,https,radius} --permanent
sudo firewall-cmd --add-port=8000/tcp --permanent
sudo firewall-cmd --reloadRedémarrez les services pour vous assurer que tout fonctionne.
sudo systemctl restart httpd radiusd.serviceLe statut de vos services peut être vérifié en utilisant systemctl :
systemctl status httpd radiusdAccédez maintenant à daloradius en utilisant les URL ci-dessous.
- Application de gestion RADIUS : http://<ip>:8000/
- Application portail utilisateur RADIUS : http://<ip>
Exemple d'interface de portail d'application de gestion RADIUS.
Les informations de connexion par défaut sont :
Username: administrator
Password: radiusApparence de l'interface de gestion daloRADIUS :
Amusez-vous à utiliser FreeRADIUS et daloRADIUS :
- Installer FreeRADIUS et daloRADIUS sur Ubuntu

