目录
背景
在项目中需要用到Radius服务器作为数据库代理用户的外部验证服务器,做以下总结。
简介:Radius是什么?
- Radius认证是一种应用最广泛的
AAA协议
,即认证(Authentication)、授权(Authorization)和计费(Accounting),是网络安全中进行访问控制的一种安全管理机制。Radius是一种C/S结构
的协议,该协议认证机制灵活,简单明确,可扩充,可以采用PAP、CHAP或者Unix登录认证等多种方式。 - 协议定义了基于UDP的RADIUS报文格式及其传输机制,并规定UDP端口
1812
、1813分别作为认证
、计费端口。

Radius服务器验证原理
接入设备作为RADIUS客户端,负责收集用户信息(例如:用户名、密码等),并将这些信息发送到RADIUS服务器。RADIUS服务器则根据这些信息完成用户身份认证以及认证通过后的用户授权和计费。用户、RADIUS客户端和RADIUS服务器之间的交互流程如下:
参考链接: RADIUS协议基础原理
搭建Radius服务器
环境信息
系统 | 内核版本 |
---|---|
CentOS Linux 7.9 | 3.10.0-1160.71.1.el7.x86_64 |
yum在线安装
使用yum命令在线
安装FreeRadius
,如果要离线安装,请参考链接: Radius服务端搭建、运行及测试:
javascript
yum install -y freeradius freeradius-mysql freeradius-utils
查看服务状态:一般为未启动
,默认的安装及配置文件路径:/etc/raddb
javascript
ps -ef|grep radius

前台启动Radius服务:
javascript
sudo radiusd -X

打开新窗口,本机测试:
javascript
radtest testing password localhost 0 testing123
javascript
#注:radtest命令由5个参数组成:
#1、第一个参数为用户名(testing)
#2、第二个参数为密码(password)
#3、第三个参数为服务器IP地址(localhost)
#4、第四个参数为NAS端口(0)
#5、第五个参数为共享密钥(testing123)

此处访问被拒绝
,通过前台服务打印的内容可以看到:
原因在于:
- 没有配置允许与 RADIUS 服务器通信的客户端设备
- 没有配置允许访问RADIUS 服务器的用户
这两个是需要根据实际情况配置
的,是合理的。
配置FreeRADIUS相关文件
clients.conf文件
FreeRADIUS 中 clients.conf 文件用于定义允许与 RADIUS 服务器通信的客户端设备(如网络接入设备、路由器、AP 等),并配置其安全参数
。
javascript
vim /etc/raddb/clients.conf
修改client字段
内容为下如所示:10.0.2.0/24
代表允许该网段访问,testing123
为Radius的秘钥,后续users文件中添加的用户登录Radius服务,需要使用这个密码秘钥
:
javascript
client 10.0.2.0/24 {
secret = testing123
}
users文件
FreeRADIUS 中users 文件用于本地用户认证和动态策略控制的核心配置文件
。它允许管理员直接在文件中定义用户账户、认证规则以及授权返回的 RADIUS 属性(如 VLAN、带宽限制等)。
javascript
vim /etc/raddb/users
添加如下内容,确保此用户可以登录Radius服务:
javascript
# 设置任意账号密码认证通过
DEFAULT Auth-Type := "Accept"
# 用户名:test 密码:123456
test Cleartext-Password:= "123456"

重启服务
重启服务,让配置生效
javascript
sudo radiusd -X

Radius服务器最基础的功能已配置完毕。
验证
之前我们配置了:
- 允许与 RADIUS 服务器通信的客户端设备
为10.0.2.0/24网段
的设备 - 并且允许访问RADIUS 服务器的
用户:test 密码:123456
用10.0.2.0/24网段`的设备进行测试:
javascript
radtest test 123456 10.0.2.15 0 testing123
javascript
#注:radtest命令由5个参数组成:
#1、第一个参数为用户名(test)
#2、第二个参数为密码(123456)
#3、第三个参数为服务器IP地址(10.0.2.15)
#4、第四个参数为NAS端口(0)
#5、第五个参数为共享密钥(testing123)

登陆成功
参考链接
参考链接: Linux(centos7.9)搭建Radius服务器
参考链接: RADIUS协议基础原理