【CentOS】搭建Radius服务器

ops/2025/3/16 0:34:44/

目录

  • 背景
  • 简介:Radius是什么?
  • Radius服务器验证原理
  • 搭建Radius服务器
    • 环境信息
    • yum在线安装
    • 配置FreeRADIUS相关文件
      • clients.conf文件
      • users文件
      • 重启服务
    • 验证
  • 参考链接

背景

在项目中需要用到Radius服务器作为数据库代理用户的外部验证服务器,做以下总结。

Radius_4">简介:Radius是什么?

  • Radius认证是一种应用最广泛的AAA协议,即认证(Authentication)、授权(Authorization)和计费(Accounting),是网络安全中进行访问控制的一种安全管理机制。Radius是一种C/S结构的协议,该协议认证机制灵活,简单明确,可扩充,可以采用PAP、CHAP或者Unix登录认证等多种方式。
  • 协议定义了基于UDP的RADIUS报文格式及其传输机制,并规定UDP端口1812、1813分别作为认证、计费端口。

在这里插入图片描述

Radius_9">Radius服务器验证原理

接入设备作为RADIUS客户端,负责收集用户信息(例如:用户名、密码等),并将这些信息发送到RADIUS服务器。RADIUS服务器则根据这些信息完成用户身份认证以及认证通过后的用户授权和计费。用户、RADIUS客户端和RADIUS服务器之间的交互流程如下:
在这里插入图片描述
参考链接: RADIUS协议基础原理

Radius_13">搭建Radius服务器

环境信息

系统内核版本
CentOS Linux 7.93.10.0-1160.71.1.el7.x86_64

yum在线安装

使用yum命令在线安装FreeRadius,如果要离线安装,请参考链接: Radius服务端搭建、运行及测试:

yum install -y freeradius freeradius-mysql freeradius-utils

查看服务状态:一般为未启动,默认的安装及配置文件路径:/etc/raddb

ps -ef|grep radius

在这里插入图片描述

前台启动Radius服务:

sudo radiusd -X

在这里插入图片描述

打开新窗口,本机测试:

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

在这里插入图片描述
此处访问被拒绝,通过前台服务打印的内容可以看到:
在这里插入图片描述
原因在于:

  • 没有配置允许与 RADIUS 服务器通信的客户端设备
  • 没有配置允许访问RADIUS 服务器的用户

这两个是需要根据实际情况配置的,是合理的。

配置FreeRADIUS相关文件

clients.conf文件

FreeRADIUS 中 clients.conf 文件用于定义允许与 RADIUS 服务器通信的客户端设备(如网络接入设备、路由器、AP 等),并配置其安全参数

vim /etc/raddb/clients.conf

修改client字段内容为下如所示:10.0.2.0/24代表允许该网段访问,testing123Radius的秘钥,后续users文件中添加的用户登录Radius服务,需要使用这个密码秘钥

client 10.0.2.0/24 {secret          = testing123
}

users文件

FreeRADIUS 中users 文件用于本地用户认证和动态策略控制的核心配置文件。它允许管理员直接在文件中定义用户账户、认证规则以及授权返回的 RADIUS 属性(如 VLAN、带宽限制等)。

vim /etc/raddb/users

添加如下内容,确保此用户可以登录Radius服务:

# 设置任意账号密码认证通过
DEFAULT Auth-Type := "Accept"
# 用户名:test 密码:123456
test Cleartext-Password:= "123456"

在这里插入图片描述

重启服务

重启服务,让配置生效

sudo radiusd -X

在这里插入图片描述
Radius服务器最基础的功能已配置完毕。

验证

之前我们配置了:

  • 允许与 RADIUS 服务器通信的客户端设备为10.0.2.0/24网段的设备
  • 并且允许访问RADIUS 服务器用户:test 密码:123456

用10.0.2.0/24网段`的设备进行测试:

radtest test 123456 10.0.2.15 0 testing123
#注:radtest命令由5个参数组成:
#1、第一个参数为用户名(test)
#2、第二个参数为密码(123456)
#3、第三个参数为服务器IP地址(10.0.2.15)
#4、第四个参数为NAS端口(0)
#5、第五个参数为共享密钥(testing123)

在这里插入图片描述
登陆成功

参考链接

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


http://www.ppmy.cn/ops/166074.html

相关文章

基于微信小程序的小区管理系统设计与实现【lw+源码+部署+视频+讲解】

第1章 绪论 1.1 研究背景 互联网时代不仅仅是通过各种各样的电脑进行网络连接的时代,也包含了移动终端连接互联网进行复杂处理的一些事情。传统的互联网时代一般泛指就是PC端,也就是电脑互联网时代,但是最近几十年,是移动互联网…

数据挖掘导论——第二章:数据

谈数据之前,我们要先知道数据有哪几种类型。数据的维度,数据的频率、位置、分布(方差或标准差衡量)等。 接着就是数据的质量,数据挖掘着眼于要么是对数据质量问题的检测和纠正,要么是使用可以容忍低质量数…

c#使用redis如何实现数据的分库存储

在 C# 中使用 Redis 实现数据的分库存储,可以通过以下几种方案实现。以下详细说明并提供代码示例: 方案 1:Redis 多数据库索引(逻辑分库) Redis 默认支持 0-15 共 16 个逻辑数据库,通过索引切换。适用于简单场景。 步骤 连接时指定数据库索引: using StackExchange.Re…

PGSQL基本使用

PGSQL基本使用 文章目录 PGSQL基本使用日期转换长度不够补数获取上下行取连续的开始和结束的值 日期转换 格式说明YYYY年MM月DD日hh2424小时制mi分钟ss秒 -- 日期字符串转指定日期字符串 -- 20250101123000 转为 2025-01-01 12:30:00 select to_char(to_timestamp(2025010112…

Android Studio搭建环境并运行项目

参考: android studio开发环境搭建全过程_androidstudio 搭建开发环境-CSDN博客 Android Studio 开发环境搭建与项目结构认识 1、下载Android Studio 和Java JDK 并配置 (安装教程看百度),我这里使用的是Android Studio 2024.01版…

【零基础入门unity游戏开发——进阶篇】Marhf和Math的使用

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…

IDEA 创建SpringCloud 工程(图文)

创建父工程 打开IDEA,【New Project】新建一个Spring Boot 项目。 选择【Spring Web】依赖之后【Create】。 删除【src文件夹】以及【mvn开头文件】。 在pom文件中增加【packaging 标签】。 创建子工程 在父工程中,【New】→【Module】。 也同样…

ArcGIS助力水文分析:数据处理、地图制作与流域特征提取

在水文水环境保护中,对于信息的采集、处理和分析是关键步骤。水文水环境及其相关数据均具有空间分布特征,传统的方法难以发挥作用。地理信息系统(GIS)强大的空间数据管理和分析功能,在空间信息处理上有独到的优势&…