【CentOS】搭建Radius服务器

目录

背景

在项目中需要用到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协议基础原理

相关推荐
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
xy123061 天前
OpenStack Train 部署实战(三)控制节点--keystone服务
centos·openstack
深紫色的三北六号1 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行3 天前
Linux和window共享文件夹
linux
Sinclair3 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
木心月转码ing3 天前
WSL+Cpp开发环境配置
linux