认证协议RADIUS篇

2024-06-04 23:32
文章标签 认证 协议 radius

本文主要是介绍认证协议RADIUS篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述:远程认证拨号
服务,是一种分布式、C/S架构信息交互协议,通常应用在既要求较高安全性、又允许远程用户访问的各种网络环境中
传输方式:UDP,端口1812和1813作为认证、计费端口,思科设备认证、授权端口为1645,计费端口1646
Radius协议最初是针对拨号用户AAA的协议,随着用户接入方式的多样性发展,Radius已支持多种用户接入方式,如以太网接入等,通过认证授权来提供接入服务,通过计费来手机、记录用户对网络资源的使用
架构:C/S (客户端/服务器模式)
客户端:位于网络接入服务器NAS上,负责传输用户信息到指定的RADIUS服务器,然后根据服务器返回的信息进行处理,如接受或拒绝用户接入
服务器端:运行在中心计算机或工作站上,维护用户认证与网络访问相关信息,负责接受用户请求并认证用户,然后返回相关信息给客户端
通常,RADIUS需要维护三个数据库:

  • Users:用于存储用户信息(如用户名、口令以及使用的协议、IP地址等配置信息)
  • Clients:用于存储RADIUS客户端的信息(如接入设备的共享密钥、IP地址等)
  • Dictionary:用于存储RADIUS协议中的属性和属性值含义的信息
    报文格式:

    各字段的解释如下:
    Code:长度为1个字节,用来说明RADIUS报文的类型。
    Identifier:长度为1个字节,用来匹配请求报文和响应报文,以及检测在一段时间内重发的请求报文。客户端发送请求报文后,服务器返回的响应报文中的Identifier值应与请求报文中的Identifier值相同。
    Length:长度为2个字节,用来指定RADIUS报文的长度。超过Length取值的字节将作为填充字符而忽略。如果接收到的报文的实际长度小于Length的取值,则该报文会被丢弃。
    Authenticator:长度为16个字节,用来验证RADIUS服务器的响应报文,同时还用于用户密码的加密。
    Attribute:不定长度,为报文的内容主体,用来携带专门的认证、授权和计费信息,提供请求和响应报文的配置细节。Attribute可以包括多个属性,每一个属性都采用(Type、Length、Value)三元组的结构来表示。
    认证报文:
报文名称说明
Access-Request认证请求报文,是RADIUS报文交互过程中的第一个报文,用来携带用户的认证信息(例如:用户名、密码等)。认证请求报文由RADIUS客户端发送给RADIUS服务器,RADIUS服务器根据该报文中携带的用户信息判断是否允许接入
Access-Accept认证接受报文,是服务器对客户端发送的Access-Request报文的接受响应报文。如果Access-Request报文中的所有属性都可以接受(即认证通过),则发送该类型报文。客户端收到此报文后,认证用户才能认证通过并被赋予相应的权限
Access-Reject认证拒绝报文,是服务器对客户端的Access-Request报文的拒绝响应报文。如果Access-Request报文中的任何一个属性不可接受(即认证失败),则RADIUS服务器返回Access-Reject报文,用户认证失败
Access-Challenge认证挑战报文。EAP认证时,RADIUS服务器接收到Access-Request报文中携带的用户名信息后,会随机生成一个MD5挑战字,同时将此挑战字通过Access-Challenge报文发送给客户端。客户端使用该挑战字对用户密码进行加密处理后,将新的用户密码信息通过Access-Request报文发送给RADIUS服务器。RADIUS服务器将收到的已加密的密码信息和本地经过加密运算后的密码信息进行对比,如果相同,则该用户为合法用户

计费报文:

报文名称说明
Accounting-Request(Start)计费开始请求报文。如果客户端使用RADIUS模式进行计费,客户端会在用户开始访问网络资源时,向服务器发送计费开始请求报文
Accounting-Response(Start)计费开始响应报文。服务器接收并成功记录计费开始请求报文后,需要回应一个计费开始响应报文
Accounting-Request(Interim-update)实时计费请求报文。为避免计费服务器无法收到计费停止请求报文而继续对该用户计费,可以在客户端上配置实时计费功能。客户端定时向服务器发送实时计费报文,减少计费误差
Accounting-Response(Interim-update)实时计费响应报文。服务器接收并成功记录实时计费请求报文后,需要回应一个实时计费响应报文
Accounting-Request(Stop)计费结束请求报文。当用户断开连接时(连接也可以由接入服务器断开),客户端向服务器发送计费结束请求报文,其中包括用户上网所使用的网络资源的统计信息(上网时长、进/出的字节数等),请求服务器停止计费
Accounting-Response(Stop)计费结束响应报文。服务器接收计费停止请求报文后,需要回应一个计费停止响应报文

授权报文:

报文名称说明
CoA-Request动态授权请求报文。当管理员需要更改某个在线用户的权限时(例如,管理员不希望用户访问某个网站),可以通过服务器发送一个动态授权请求报文给客户端,使客户端修改在线用户的权限
CoA-ACK动态授权请求接受报文。如果客户端成功更改了用户的权限,则客户端回应动态授权请求接受报文给服务器
CoA-NAK动态授权请求拒绝报文。如果客户端未成功更改用户的权限,则客户端回应动态授权请求拒绝报文给服务器
DM-Request用户离线请求报文。当管理员需要让某个在线的用户下线时,可以通过服务器发送一个用户离线请求报文给客户端,使客户端终结用户的连接
DM-ACK用户离线请求接受报文。如果客户端已经切断了用户的连接,则客户端回应用户离线请求接受报文给服务器
DM-NAK用户离线请求拒绝报文。如果客户端无法切断用户的连接,则客户端回应用户离线请求拒绝报文给服务器

工作原理:
接入设备作为Radius客户端,负责收集用户的用户名和密码信息,并发送到Radius服务器,Radius服务器则根据这些信息完成用户身份认证以及用户授权及缴费,交互流程如下:

附:Radius在核心交换机配置

# 定义radius
radius-server template qytang_radius_server-------------定义radius服务器模板
radius-server shared-key simple Huawei@123------------联动服务器设置密码
radius-server authentication 192.168.1.100 1812 -----------设置认证的端口
radius-server accounting 192.168.1.100 1813----------------设置计费的端口
radius-server authorization 192.168.1.100 shared-key simple Huawei@123------授权可选 aaa
authentication-scheme qytang_auth
authentication-mode radius              
accounting-scheme qytang_acco
accounting-mode radius
domain default
authentication-scheme qytang_auth
accounting-scheme qytang_acco
radius-server  qytang_radius_server

这篇关于认证协议RADIUS篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1031431

相关文章

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

Modbus-RTU协议

一、协议概述 Modbus-RTU(Remote Terminal Unit)是一种基于主从架构的通信协议,采用二进制数据表示,消息中的每个8位字节含有两个4位十六进制字符。它主要通过RS-485、RS-232、RS-422等物理接口实现数据的传输,传输距离远、抗干扰能力强、通信效率高。 二、报文结构 一个标准的Modbus-RTU报文通常包含以下部分: 地址域:单个字节,表示从站设备

【Shiro】Shiro 的学习教程(二)之认证、授权源码分析

目录 1、背景2、相关类图3、解析3.1、加载、解析阶段3.2、认证阶段3.3、授权阶段 1、背景 继上节代码,通过 debug 进行 shiro 源码分析。 2、相关类图 debug 之前,先了解下一些类的结构图: ①:SecurityManager:安全管理器 DefaultSecurityManager: RememberMeManager:实现【记住我】功能

网络原理之TCP协议(万字详解!!!)

目录 前言 TCP协议段格式 TCP协议相关特性 1.确认应答 2.超时重传 3.连接管理(三次握手、四次挥手) 三次握手(建立TCP连接) 四次挥手(断开连接)  4.滑动窗口 5.流量控制 6.拥塞控制 7.延迟应答 8.捎带应答  9.基于字节流 10.异常情况的处理 小结  前言 在前面,我们已经讲解了有关UDP协议的相关知识,但是在传输层,还有

OpenStack离线Train版安装系列—3控制节点-Keystone认证服务组件

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版