1. 软件版本如下
centos 7.9
FreeRadius 3.0.13
DaloRadius 1.3
2. 安装操作系统和必要软件包
安装CENTOS7.9, 选择server with gui
关闭防火墙和Selinux
[root@localhost ~]# systemctl stop firewalld //关闭防火墙
[root@localhost ~]# systemctl disable firewalld //关闭防火墙自启
[root@localhost ~]# setenforce 0 //关闭selinux
[root@localhost ~]# sed -i '7s/enforcing/disabled/' /etc/selinux/config //关闭Selinux自启
[root@localhost ~]# yum install -y unzip epel-release mariadb-server mariadb
[root@localhost ~]# systemctl enable --now mariadb
[root@localhost ~]# mysql_secure_installation //SQL自动配置(除设置密码,其余都回车)

[root@localhost ~]# mysql -u root -p //登录数据库
MariaDB [(none)]> create database radius; 创建数据库radius
MariaDB [(none)]> grant all on radius.* to radius@localhost identified by '123456'; //设置radius用户名密码及权限
MariaDB [(none)]> flush privileges; //刷新权限
MariaDB [(none)]> exit
3.安装配置FreeRadius
[root@localhost ~]# yum install -y freeradius freeradius-utils freeradius-mysql
[root@localhost ~]# radiusd -X //用于验证radiusd是否安装好
Ready to process requests //最后一行显示左边文件,注意先验证再启动服务
[root@localhost ~]# systemctl enable --now radiusd.service
[root@localhost ~]# mysql -u root -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql //创建FreeRadius在数据库中的数据表
[root@localhost ~]# vi /etc/raddb/mods-available/sql //使用VI编辑器修改配置文件
driver = "rlm_sql_mysql"
dialect = "mysql"
server = "localhost"
port = 3306
login = "radius"
password = "123456"
read_clients = yes
[root@localhost ~]# ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/sql //如果不设置,radius无法正常使用
[root@localhost ~]# chgrp -h radiusd /etc/raddb/mods-enabled/sql //配置文件权限
[root@localhost ~]# systemctl restart radiusd.service //重启radius服务
4.安装Apache,PHP和daloradius
[root@localhost ~]# yum install -y php php-mysql php-pear php-devel php-common php-gd php-mbstring php-mcrypt php-xml php-pear-DB httpd
[root@localhost ~]# systemctl enable --now httpd
[root@localhost ~]# wget https://github.com/lirantal/daloradius/archive/master.zip //从Github上获取并下载源代码
[root@localhost ~]# unzip master.zip //解压
[root@localhost ~]# mv daloradius-master/ /var/www/html/daloradius
[root@localhost ~]# cp /var/www/html/daloradius/library/daloradius.conf.php.sample /var/www/html/daloradius/library/daloradius.conf.php
[root@localhost ~]# chown -R apache:apache /var/www/html/daloradius
[root@localhost ~]# chmod -R 664 /var/www/html/daloradius/library/daloradius.conf.php
[root@localhost ~]# mysql -u root -p radius < /var/www/html/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql
[root@localhost ~]# mysql -u root -p radius < /var/www/html/daloradius/contrib/db/mysql-daloradius.sql
[root@localhost ~]# vi /var/www/html/daloradius/library/daloradius.conf.php

5. 测试连接
浏览器访问:http://ip_address/daloradius(默认用户名:administrator 密码:radius)

新建用户test1 密码test1

[root@localhost ~]# radtest test1 test1 127.0.0.1 1812 testing123
Sent Access-Request Id 63 from 0.0.0.0:59654 to 127.0.0.1:1812 length 75
User-Name = "test1"
User-Password = "test1"
NAS-IP-Address = 127.0.0.1
NAS-Port = 1812
Message-Authenticator = 0x00
Cleartext-Password = "test1"
Received Access-Accept Id 63 from 127.0.0.1:1812 to 0.0.0.0:0 length 20
使用radtest命令测试,显示验证成功,同时可以在Daloradius页面查看记录

6. mysql扩展知识
[root@localhost ~]# mysql -u radius -p //连接数据库
MariaDB [(none)]> show databases; //查看数据库
MariaDB [(none)]> use radius; //切换数据库
MariaDB [radius]> select table_name from information_schema.tables where table_schema='radius'; //查询所有表
MariaDB [radius]> select username from userinfo; //查看用户信息