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

相关推荐
高峰聚焦5 分钟前
【Ubuntu】Netplan静态网络配置
linux·运维·ubuntu
冯一川18 分钟前
Arm核的Ubuntu系统上安装Wireshark
linux·ubuntu·wireshark
wgc2k21 分钟前
Java游戏服务器开发流水账(2)开发中Maven的管理
java·服务器·游戏
原小明22 分钟前
Ubuntu 22.04 出现 ‘Temporary failure resolving‘ 解决方案
linux·运维
Jerry&Louis23 分钟前
【Ubuntu】fcitx5 + Rime(中州韵)好用的Linux中文输入法
linux·ubuntu
o0o_-_24 分钟前
【瞎折腾/mi50 32G/ubuntu】mi50显卡ubuntu运行大模型开坑(二)使用llama.cpp部署Qwen3系列
linux·ubuntu·llama
敲上瘾42 分钟前
数据库(MySQL)基础
linux·数据库·mysql
XY.散人44 分钟前
初识Linux · 传输层协议TCP · 上
linux·网络·tcp/ip
love530love1 小时前
好消息!PyCharm 社区版现已支持直接选择 WSL 终端为默认终端
linux·ide·人工智能·windows·python·pycharm
程序员JerrySUN1 小时前
驱动开发硬核特训 · Day 30(上篇):深入理解 I2C 总线驱动模型(以 at24 EEPROM 为例)
linux·开发语言·驱动开发