万万哇 发表于 2024-8-10 14:57:16

一文轻松让你搭建一个RADIUS服务器

1. 体系环境

1.1.操作体系



[*]Ubuntu-20.04.1 (kernel: 5.15.0-58-generic)
1.2.所需软件



[*]FreeRADIUS
https://i-blog.csdnimg.cn/direct/20d8222224814d40a013cfde74abc078.png


[*]MariaDB
https://i-blog.csdnimg.cn/direct/6693cb65efcd40af91d7937d9ae0dcab.png
1.3.注意事项



[*]本文提到的全部操作,都是以root 身份执行;
2. FreeRADIUS的安装

2.1. 安装FreeRADIUS服务器程序

以root身份登录到终端,执行如下命令:


[*]apt install freeradius
安装FreeRADIUS工具包,以root身份登录到终端,执行如下命令:


[*]apt install freeradius-utils

[*]注:该工具包用于测试freeradius。

2.2 修改用户管理配置文件

2.2.1 FreeRADIUS的测试

打开/etc/freeradius/3.0/users文件,查找"steve    Cleartext-Password := "testing"(73-81)", 取消该段内容的注释。
2.2.2 修改防火墙配置

修改防火墙配置,答应freeradius所使用的端口1812和1813。命令如下所示:


[*]iptables -A INPUT -p udp --dport 1812 -j ACCEPT
[*]iptables -A INPUT -p udp --dport 1813 -j ACCEPT
2.3 以调试方式启动freeradius

执行如下命令:


[*]freeradius -X
正常情况下,终端会输出如下信息:
https://i-blog.csdnimg.cn/direct/8b10aff57c204aafbf21feb07bdeff51.png
2.4.使用测试工具测试

打开一个新的终端,以root 身份登录,执行如下命令:


[*]radtest steve testing localhost 0 testing123
正常情况下,终端会输出如下信息:
https://i-blog.csdnimg.cn/direct/5aef48543e6f4e369e09a2bd65354d42.png
输出"Access-Accept"表现乐成,"Access-Reject"表现失败。
3. MariaDB的安装

3.1. 安装MariaDB服务器程序

以root 身份登录到终端,执行如下命令:


[*]apt install mariadb-server
安装乐成后,使用systemctl命令可以查看到mariadb服务是否已经开启。
https://i-blog.csdnimg.cn/direct/dd85426d0cdb421f9cd2874d472df0cb.png
3.2. 安装MariaDB客户端程序

以root 身份登录到终端,执行如下命令:


[*]apt-get installmariadb-client
3.3 MariaDB的测试

3.3.1 创建数据库

以root身份登录到终端,执行如下命令:


[*]mysql -u root -p
要求输入密码时,直接回车即可。
mysql> create databaseradius;
mysql> grant all on radius.* to radius@localhost identified by“radpass”; 
mysql> exit;
https://i-blog.csdnimg.cn/direct/58875c777b3f43208faf8b71ecf84f3a.png
3.3.2 导入表结构

以root身份登录到终端,执行如下命令:


[*]mysql -u root radius < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql
上面的指令,共导入8个表,分别是:


[*]nas,网络设备表
[*]radacct,计费情况表
[*]radcheck,用户查抄信息表
[*]radgroupcheck,用户组查抄信息表
[*]radgroupreply,用户组回复信息表
[*]radpostautch,认证后处置惩罚信息,可以包罗认证请求乐成和拒绝的记录radreply 用户回复信息表
[*]radusergroup,用户和组关系表
可以进入radius 数据库,查看导入的表结构,执行如下命令:
mysql -u root radius
mysql> show tables;
https://i-blog.csdnimg.cn/direct/a1c659d6f1704577b6b26411ff682d4e.png
3.3.3 建立组信息和用户信息

在终端输入”mysql -u root radius“,打开数据库,执行如下命令:
1. 新建'user'组
mysql> insert into radgroupcheck (groupname,attribute,op,value) values  ('usr','Auth- Type',':=','Local');
mysql> insert into radgroupcheck (groupname,attribute,op,value) values ('usr','Service-Type',':=','Framed-User');
mysql> insert into radgroupcheck (groupname,attribute,op,value) values ('usr','Framed-IP-Address',':=','255.255.255.255');
mysql> insert into radgroupcheck (groupname,attribute,op,value) values ('usr','Framed-IP-Netmask',':=','255.255.255.0');
2. 查看新建组
https://i-blog.csdnimg.cn/direct/68a611bf416543cda3bfc2c5442dd084.png
3. 新建'test'用户
mysql> insert into radcheck (username,attribute,op,value) values ('test','CleartextPassword',':=','testpwd');
4. 查看新建用户
https://i-blog.csdnimg.cn/direct/cc06009840f943e7b4098e6989974d70.png
5. 将用户加入组中
mysql> insert into radusergroup (username,groupname) values ('test','user');
6. 查看用户和组信息
https://i-blog.csdnimg.cn/direct/8640b158f5644f0b854bcfaff3d5910a.png
4. FreeRADIUS与MariaDB的对接

4.1 安装freeradius-mysql组件

以root身份登录到终端,执行如下命令:


[*]apt installfreeradius-mysql
4.2. 重启MariaDB服务

以root身份登录到终端,执行如下命令:


[*]systemctl restart mariadb
4.3 使能FreeRADIUS中的mysql认证配置

默认mods-enabled目录下没有该配置,必要创建一个软链接到mods-available目录下的sql文件,执行如下命令:


[*]cd /etc/freeradius/3.0/mods-enabled
[*]ln -s ../mods-available/sql
https://i-blog.csdnimg.cn/direct/6387ab9e549946e9a4d1c55e1432bab5.png
4.4. 修改FreeRADIUS中的mysql认证配置

直接修改/etc/freeradius/3.0/mods-available/sql文件,将dialect = "sqlite"这一行,修改为dialect = "mysql"。
https://i-blog.csdnimg.cn/direct/e43297a92c1944c1823dd8d6e91ccccf.png
将driver = "rlm_sql_null"这一行,修改为driver = "rlm_sql_mysql"。
https://i-blog.csdnimg.cn/direct/6216978756954150aafc66012107b172.png
将tsl相关的内容屏蔽,具体如下:
https://i-blog.csdnimg.cn/direct/11cc553b781f4e7f8b22129ad696cf89.png
同时必要取消"Connection info"部门注释,具体如下:
https://i-blog.csdnimg.cn/direct/ded2d236071746039d1bce5ccdc0956b.png
4.5. 测试通过数据库做用户认证

1. 重新以调试方式运行freeradius,执行如下命令:


[*]systemctl stop freeradius
[*]freeradius -X
正常情况下,终端会输出如下信息:
https://i-blog.csdnimg.cn/direct/c36e8977843a4cb19288bd38dd8cb19c.png
2. 打开一个新的终端,以root 身份登录,执行如下命令:


[*]radtest test testpwd localhost 1812 testing123
正常情况下,终端会输出如下信息:
https://i-blog.csdnimg.cn/direct/187813a2e202437886f69159090f4404.png
5. 常见错误

1. Failed binding to auth address * port 1812 bound to serverdefault: Address already in use /usr/local/etc/raddb/sites-enabled/default:Error binding to port for 0.0.0.0 port 1812
原因:已经有一个FreeRADIUS 实例在运行了
解决:systemctl stop freeradius.service
2. 安装mariadb-server 报错
Job for mariadb.service failed because thecontrol process exited with error code.
See "systemctl status mariadb.service"and "journalctl -xe" for details.
原因:查看/var/log/mysql/error.log 文件,提示:
Unknown/unsupported storage engine: InnoDB
解决:sudo apt remove --purgemysql-server mysql-client sudo rm -rf /var/run/mysql*
sudo apt autoremovesudo apt autoclean
3. 安装mariadb-server报错
Job for mariadb.service failed because atimeout was exceeded.
See "systemctl status mariadb.service" and"journalctl -xe" for details.
原因:体系之前安装了mysql,它会激活一个与mariadb不兼容的apparmor配置文件,apt  remove –purge操作只能删除配置文件,但不会停用/卸载它。只有手动卸载它,mariadb才气不受apparmor的阻碍,正常工作。
解决:echo "/usr/sbin/mysqld{ }" >> /etc/apparmor.d/usr.sbin.mysqld
apparmor_parser -v -R/etc/apparmor.d/usr.sbin.mysqld

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 一文轻松让你搭建一个RADIUS服务器