Installeer FreeRADIUS en Daloradius op Rocky/Alma/CentOS 9|8
Ik wil FreeRADIUS en Daloradius installeren op CentOS 8/RHEL 8. RADIUS, wat staat voor "Remote Authentication Dial-In User Service", is een netwerkprotocol dat wordt gebruikt voor externe gebruikersauthenticatie en -boekhouding. Het biedt AAA-diensten, namelijk Autorisatie, Authenticatie en Boekhouding.
FreeRADIUS is een open source, hoogpresterende, schaalbare, modulaire en functionaliteitsrijke RADIUS-server. FreeRADIUS ondersteunt request proxy, fail-over en load balancing, evenals toegang tot verschillende databasetypen.
Belangrijkste functies van FreeRADIUS
- Flexibele configuratie via een breed scala aan methoden om gebruikersconfiguraties te selecteren.
- Volledige ondersteuning voor RFC 2865- en RFC 2866-attributen.
- EAP met de EAP-MD5, EAP-SIM, EAP-TLS, EAP-TTLS, EAP-PEAP en Cisco LEAP EAP-subtypen
- Specifieke attributen voor bijna honderd leveranciers, waaronder BinTec, Foundry, Cisco, Juniper, Lucent/Ascend, HP ProCurve, Microsoft, USR/3Com, Acc/Newbridge en nog veel meer.
daloRADIUS erbij betrekken
daloRADIUS is een geavanceerd RADIUS-webbeheersplatform geschreven in PHP en JavaScript. Het is voornamelijk bedoeld voor het beheren van hotspots en algemeen gebruikte ISP-implementaties die worden aangestuurd door de FreeRADIUS-server. Hieronder vindt u de belangrijkste kenmerken van daloRADIUS:
- Database-abstractielaag met ondersteuning voor veel databasesystemen – MySQL, SQLite, PostgreSQL, MsSQL en Oracle
- Geavanceerd gebruikersbeheer
- Krachtige grafische rapportage en boekhouding
- Integreert met Google Maps voor geolocatie
- Heeft een factureringsengine
Volg de volgende besproken stappen om FreeRADIUS en daloRADIUS op een CentOS 8/RHEL 8 Linux-systeem te installeren.
Stap 1: Werk uw server bij
Vertrouw nooit een systeem dat niet is bijgewerkt. Alle geïnstalleerde pakketten kunnen worden bijgewerkt door het onderstaande commando in de terminal uit te voeren.
sudo dnf -y updateStap 2: Installeer Apache en PHP
We zullen de Apache httpd-server gebruiken om daloRADIUS op uw systeem te hosten. Installeer zowel de httpd- als de PHP-pakketten met het volgende commando.
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 MDB2Controleer de versie van PHP die is geïnstalleerd om te bevestigen dat de installatie succesvol was.
$ 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 TechnologiesInstalleer de Apache-webserver:
sudo dnf -y install @httpdStart en schakel de php-fpm en httpd services in.
sudo systemctl enable --now httpd php-fpmLaten we de start valideren door de status van de twee services te controleren.
systemctl status httpd php-fpmSta http- en https-poorten toe op de firewall.
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reloadReferentie voor Apache httpd-installatie:
- Installeer de Apache httpd-server op RHEL/CentOS 8
Stap 3: Installeer en configureer MariaDB
We hebben een aparte handleiding voor de installatie van de MariaDB-database server op RHEL/CentOS 8. Raadpleeg deze via de onderstaande link.
- Installeer de MariaDB-database server op CentOS/RHEL 8
Na de installatie, open de MySQL-console als root-gebruiker en maak een database/gebruiker aan voor FreeRADIUS/daloRADIUS.
$ mysql -u root -p
CREATE DATABASE radius;
GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "StrongradIusPass";
FLUSH PRIVILEGES;
\qStap 4: FreeRADIUS installeren
FreeRADIUS-pakketten zijn beschikbaar in de modulaire repository.
$ 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
Om te installeren, voer gewoon het commando uit.
sudo dnf install -y @freeradius freeradius-utils freeradius-mysqlStart de service na installatie.
sudo systemctl enable --now radiusd.serviceNu kun je de status controleren:
$ 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..Als je de Firewalld-service laat draaien, sta dan radius- en http-verkeer toe in en uit. De Radius-server gebruikt udp-poorten 1812 en 1813.
sudo firewall-cmd --add-service=radius --permanent
sudo firewall-cmd --reloadStap 5: Configureer FreeRADIUS
Om FreeRADIUS te configureren om MariaDB te gebruiken, volgt u de onderstaande stappen.
1 – Importeer het Radius-databaseschema om de radius-database te vullen
sudo su -
mysql -u root -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql2 – Radius configureren
Eerst moet je een symbolische link voor SQL aanmaken onder /etc/raddb/mods-enabled
sudo ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/Configureer de SQL-module /raddb/mods-available/sql en wijzig de databaseverbindingparameters zodat ze aansluiten bij uw omgeving:
sudo vi /etc/raddb/mods-available/sql- De sql-sectie zou er ongeveer als volgt uit moeten zien.
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"Commentaar op MySQL SSL-instellingen.
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
# }
Wijzig vervolgens de groep van /etc/raddb/mods-enabled/sql naar radiusd:
sudo chgrp -h radiusd /etc/raddb/mods-enabled/sqlStart de radiusd-service opnieuw
sudo systemctl restart radiusdStap 6: Installeer en configureer Daloradius (optioneel)
Je kunt Daloradius gebruiken om de radius-server te beheren via een webinterface. Dit is een optionele configuratie die je kunt kiezen, afhankelijk van je gebruikssituatie.
Download de daloradius-code van Github.
sudo yum -y install git vim
git clone https://github.com/lirantal/daloradius.gitImporteer Daloradius MySQL-tabellen
mysql -u root -p radius < daloradius/contrib/db/fr3-mariadb-freeradius.sql
mysql -u root -p radius < daloradius/contrib/db/mariadb-daloradius.sqlVerplaats de daloradius-map naar het pad in /var/www/html
sudo mv daloradius /var/www/Wijzig vervolgens de machtigingen voor de http-map en stel de juiste machtigingen in voor het daloradius-configuratiebestand.
cd /var/www/daloradius/app/common/includes/
sudo cp daloradius.conf.php.sample daloradius.conf.php
sudo chown -R apache:apache /var/www/daloradius/Je moet nu het bestand daloradius.conf.php aanpassen om de MySQL-databasegegevens aan te passen.
sudo vim daloradius.conf.phpStel de databasenaam, gebruiker en wachtwoord in voor de verbinding.
$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';Om te zeker te zijn dat alles werkt, herstart de radiusd- en httpd-diensten.
sudo systemctl restart radiusd.service httpd
systemctl status radiusd.service httpdEr mag geen foutmelding zijn in de uitvoer van de servicestatus:
Maak extra vereiste mappen aan.
cd /var/www/daloradius/
sudo mkdir -p var/{log,backup}
sudo chown -R apache:apache varInstalleer de onderstaande PHP-modules.
sudo pear install DB
sudo pear install MDB2Apache-webserver configureren
Configureer Apache zodat het luistert op poort 80 en poort 8000
$ sudo vim /etc/httpd/conf/httpd.conf
Listen 80
Listen 8000Configureer virtuele host voor de operatorsmodule:
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>
EOFVervolgens maken we een virtuele host voor gebruikers aan:
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>
EOFMaak mappen aan waarin logbestanden worden opgeslagen.
sudo mkdir -p /var/log/httpd/daloradius/{operators,users}Schakel de standaard welkomstpagina van de Apache-webserver uit.
sudo rm /etc/httpd/conf.d/welcome.confAls SELinux actief is, label dan de mappen overeenkomstig.
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/daloradiusAls SELinux actief is, voeg dan een label toe aan poort 8000 voor gebruik door httpd.
sudo semanage port -m -t http_port_t -p tcp 8000Controleer of het correct is aangebracht.
# semanage port -l | grep -w http_port_t
http_port_t tcp 8000, 80, 81, 443, 488, 8008, 8009, 8443, 9000Sta poorten toe via de firewall.
sudo firewall-cmd --add-service={http,https,radius} --permanent
sudo firewall-cmd --add-port=8000/tcp --permanent
sudo firewall-cmd --reloadStart de services opnieuw op om te zorgen dat alles werkt.
sudo systemctl restart httpd radiusd.serviceDe status van uw diensten kan worden gecontroleerd met systemctl:
systemctl status httpd radiusdToegang tot daloradius via de onderstaande URL's.
- RADIUS-beheerapplicatie: http://<ip>:8000/
- RADIUS-gebruikersportaal applicatie: http://<ip>
Voorbeeld van de portalinterface van een RADIUS-beheerapplicatie.
De standaard inloggegevens zijn:
Username: administrator
Password: radiusdaloRADIUS beheerdersinterface uiterlijk:
Veel plezier met het gebruik van FreeRADIUS en daloRADIUS:
- Installeer FreeRADIUS & daloRADIUS op Ubuntu

