Radius协议讲解

目录

AAA介绍

AAA的基本架构

AAA的认证 授权 计费方式

AAA通过本地和远端实现的大致流程

Radius协议

Radius架构

Radius报文结构

Radius如何对用户进行认证

Radius协议报文交互过程


AAA介绍

AAA(Authentication Authorization and Accounting)又称为认证、授权和计费,是一种管理网络安全的机制,主要为接入网络的用户提供认证、授权和计费三种基本服务,用于防止非法用户登陆设备

认证:对用户进行身份认证,验证用户是否具有访问网络/管理设备的权力

授权:对用户权限进行分类,提供不同的访问权限

记账:记录用户使用网络资源的情况,根据统计数据进行分析计费

AAA的基本架构

AAA通常采用客户端-服务器的结构,服务器集中管理用户信息

NAS客户端:网络接入设备(也可以作为本地AAA服务器管理用户信息)

AAA Server远端AAA服务器

AAA的认证 授权 计费方式

AAA认证方式

不认证:

不对用户进行认证,一般不推荐

本地认证:

将用户信息配置在NAS设备,当接收到用户信息后直接本地认证,认证速度快,但是存储的信息量会受到设备硬件限制

远端认证:

将用户信息配置在专用的AAA服务器上(Radius服务器或HWTACACS服务器)

AAA授权方式

不授权:

不对用户进行授权处理

本地授权:

根据NAS设备上为本地用户账户配置的相关属性进行授权

远端授权:

有专用的AAA服务器进行授权(Radius服务器或HWTACACS服务器)

AAA计费方式

不计费:不进行计费

远端计费:通过Radius服务器或HWTACACS服务器进行计费

AAA通过本地和远端实现的大致流程

远端方式流程

用户向NAS发起AAA申请,NAS收到后将其发送给AAA Server处理

AAA Server将处理后的结果返回给NAS,NAS根据处理结果为Host提供相应的AAA服务

本地方式流程

用户向NAS发起AAA申请,NAS收到后直接处理,然后根据处理结果为Host提供相应的AAA服务


Radius协议

Radius(Remote Autnentication Dial-In User Service)远程认证拨号用户服务,是一种客户端/服务器结构的信息交互协议(Radius的客户端一般是接入设备),承载在UDP协议之上;Radius的认证和授权一体,即认证和授权统一进行;不过Radius不对配置命令进行授权

注意:使用Radius服务器进行认证授权计费时,AAA的方式必须为远端方式

Radius端口号

Radius在进行远程认证的认证和计费端口号为1812和1813或1645和1646

Radius服务器认证方式

一般使用PAP和CHAP对用户进行认证

Radius协议应用场景

  1. 在办公网场景中结合802.1x认证为用户提供认证授权计费服务
  2. 可以作为Portal认证的认证服务器,为用户提供认证授权计费服务
  3. 作为MAC认证的认证服务器,为哑终端等提供认证服务
  4. 也可以直接使用Radius服务器进行远端认证,对用户进行认证授权计费服务

Radius架构

基于AAA的基本架构

Radius客户端

一般位于网络接入设备,可以遍布整个网络

负责将用户的请求传递给Radius服务器,并对服务器的处理结果做出响应

Radius服务器

一般运行在中心计算机或工作站上,维护相关的用户信息,用于响应Radius客户端的请求

对用户进行认证授权和计费;Radius服务器只要维护以下三个数据库

Users:用于存储用户信息(用户名、密码、IP地址等配置信息)

Clients:用于存储Radius客户端信息(IP地址等信息)

Dictionary:用于存储Radius协议中的属性和属性值含义等信息(进行Radius报文交互)

Radius报文结构

Code 包类型

指定Radius的报文类型

Access-Challenge:主要用于EAP中继认证场景

Accounting-Rquest又细分为

 Accounting-Rquest(Start):计费开始请求报文

 Accounting-Rquest(Interim-update):实时计费请求报文

 Accounting-Rquest(Stop):计费结束请求报文

Accounting-Response又细分为

 Accounting-Response(Start):计费开始响应把我嗯

 Accounting-Response(Interim-update):实时计费响应报文

 Accounting-Response(Stop):计费结束响应报文

Identifier 包标识

1、用来匹配请求和响应报文

Radius客户端发送请求报文后,Radius服务器返回的响应报文中的Identifier值与请求报文中的Identifier值相同,将相同Identifier值的请求和响应报文进行匹配

2、用来检测在一段时间内重发的请求报文

如果在一个很短的时间内收到相同的源IP地址、源UDP端口号以及Identifier值的请求报文,Radius服务器就认为是重复的请求报文

Length 包长度

指定Radius报文的长度(Code、Identifier、Length、Authenticator、Avps五个字段)

接收到的报文的实际长度大于Length的取值,超过的字节将作为填充字符而忽略

接收到的报文的实际长度小于Length的取值,该报文会被丢弃

Authenticator 包验证字(对用户进行认证授权)

1、用于对用户密码的加密处理(结合Radius如何给用户认证一起理解)

Request Authenticator 请求验证字

用在认证授权请求报文中,该值在密钥(NSA和服务器之间的共享密钥)的声明周期内是不可预测和唯一的,用来对用户的密码进行加密(不同的认证方式加密方法不同)

PAP方式

将共享密钥与Request Authenticator进行MD5运算,并将该值与用户输入的密码进行异或运算,将其结果存放在认证授权请求包的User-Password属性中

CHAP方式

将共享密钥与Request Authenticator和CHAP ID(认证方发给响应方的一个随机值)进行MD5运算,然后将此值与CHAP ID一起存放在认证授权请求包的Chap-Password属性中

2、用于验证来自服务端的响应的有效性

Response Authenticator 响应验证字

用在认证授权响应报文中,用于NAS验证响应报文的合法性

响应验证字=MD5(Code+Identifier+Length+请求验证字+Avps+共享密钥)

AVPs(Attributes Value Pairs)(Radius属性,可变字段)

携带认证、授权和记账信息(通过TLV结构表示)

TLV26厂商自定义属性(一个报文可以携带一个或多个私有属性,每个私有属性有一个或多个子属性)

TLV79用来承载EAP协议(当802.1x协议使用Radius服务器认证时使用)

Radius如何对用户进行认证

PAP方式(参考Authenticator字段的讲解)

CHAP方式

Radius协议报文交互过程

猜你喜欢

转载自blog.csdn.net/m0_49864110/article/details/129584307