【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协议基础原理

相关推荐
宁雨桥4 分钟前
基于 Debian 服务器的前端项目部署完整教程
服务器·前端·debian
宁雨桥34 分钟前
Debian 服务器环境搭建全指南:从工具选型到项目部署实战
运维·服务器·debian
一匹电信狗36 分钟前
【C++】红黑树详解(2w字详解)
服务器·c++·算法·leetcode·小程序·stl·visual studio
任风雨1 小时前
附录I Linux命令一览
linux·服务器
@爱学习的小趴菜1 小时前
Redis服务器配置
服务器·数据库·redis
kyle~1 小时前
原子性与原子操作
运维·服务器·开发语言·c++
黄金旺铺1 小时前
Linux 命令与运维终极手册(2025 完整版)
linux·运维·服务器
qq_398586542 小时前
小小电脑安装logisim-evolution
linux·proot
一个处女座的暖男程序猿2 小时前
2G2核服务器安装ES 7X版本
服务器·elasticsearch·jenkins
oioihoii2 小时前
不止于Linux:百花齐放的开源世界与社区的力量
linux·运维·开源