1 RADIUS协议原理及应用
1.1 RADIUS协议概述
1987年,Merit Network, Inc.公司从美国科学基金会获得了NSFnet(Internet前身)的运营权。Merit需要将原先运行在专有网络协议上的大量拨号业务移植到基于IP网络的NSFnet上。通过招标,一家名为Livingston的公司为Merit提供了一套方案,并将其命名为RADIUS(Remote Authentication Dial-In User Service,远程认证拨号用户服务)。RADIUS协议最初用于拨号用户的认证和计费,在经过多次修改之后,成为事实上的网络接入标准。
RADIUS协议是基于UDP的应用层协议,其符合AAA标准,同时具有方便部署、网络传输安全、协议易于扩展、支持多种认证机制等优点,在普通电话上网、ADSL上网、小区宽带上网、IP电话等业务得到了广泛应用。
1.2 RADIUS协议与AAA
1.2.1 AAA介绍
AAA(Authentication Authorization and Accounting,认证、授权和记账)是一种管理网络安全的机制,可以为接入网络的用户提供认证、授权和记账(计费)三种基本服务,具体内容如下:
● 认证服务:在用户访问网络前对其身份进行识别,用于验证用户是否具有访问权。
● 授权服务:对用户权限进行分类,为不同用户提供不同的访问权限。
● 记账服务:记录用户使用网络资源的情况,统计的数据可用于进行分析、计费等。
图1-1 AAA基本网络结构图
如上图所示:AAA基本网络结构由Host(用户)、NAS(Network Access Server,网络接入设备)和AAA server(远程服务器)组成。
(1) 用户向NAS发起AAA申请,NAS收到AAA申请后,将其发送给AAA server进行处理。
(2) AAA server处理后将结果返回给NAS。NAS根据处理结果为Host提供相应的AAA服务。
1.2.2 RADIUS与AAA的关系
AAA作为一种安全机制,可以通过不同的协议来实现。
RADIUS是一种基于UDP的应用层协议,支持认证、授权和记账功能,协议简单、灵活、可拓展性强,是一种流行的AAA实现方案。
图1-2 RADIUS协议部署示意图
如上图所示,在NAS上部署RADIUS client协议,在AAA server上部署RADIUS server协议,即可用RADIUS协议实现AAA服务。
1.3 RADIUS协议特性
1. C/S模型
RADIUS协议基于C/S(Client/Server)模式,分为RADIUS客户端和RADIUS服务端。
RADIUS客户端协议部署在接入设备上,将用户的请求传递给RADIUS服务端,并对服务器端的处理结果作出响应。
RADIUS服务端协议部署在服务器上,用于响应RADIUS客户端的请求。
2. 网络安全
RADIUS客户端和服务器之间传输的用户密码都经过加密,且用于加密的共享密钥不经过网络传输,避免用户密码在经过不安全的网络环境时被监听窃取。
3. 灵活的认证机制
RADIUS服务器支持多种用户认证方法。
用户提供用户名和用户密码后,RADIUS服务器支持使用PAP、CHAP、UNIX登录和其他认证机制。
4. 协议可扩展
RADIUS具有良好的扩展性。
RADIUS报文通过可变长度的Attributes字段来携带认证、授权和记账信息。Attributes字段中携带一连串的TLV(Type、Length、Value)三元组属性信息。
若要新增全新的属性,则直接在Attributes字段中增加TLV三元组即可,不会对原有的协议造成干扰。
1.4 RADIUS报文与协议交互过程
1.4.1 RADIUS协议报文
图1-3 RADIUS报文结构图
字段 | 长度 | 含义 | 说明 |
Code |
1字节 |
标识报文类型 |
常用报文类型对应数值和含义如下: 1:Access-Request,认证请求报文 2:Access-Accept,认证接受报文 3:Access-Reject,认证拒绝报文 4:Accounting-Request,记账请求报文 5:Accounting-Response,记账应答报文 11:Access-Challenge,认证质询报文 |
Identifier |
1字节 |
匹配请求和响应报文 |
同一类型的请求报文和响应报文的Identifier值相同 |
Length |
2字节 |
RADIUS报文的长度 |
值为Code、Identifier、Length、Authenticator、Attributes五个字段长度之和 若实际收到的报文长度大于Length值,则超过Length值的部分内容将被作为填充值忽略掉;若实际收到的报文长度小于Length值,则丢弃该报文 |
Authenticator |
16字节 |
验证报文和 用户密码加解密 |
无 |
Attributes |
变长 |
携带认证、授权和记账信息 |
通常包含多个属性,属性采用TLV(Type、Length、Value)三元组结构表示 |
1.4.2 RADIUS协议交互过程
图1-4 RADIUS认证、授权和记账流程图
● RADIUS的认证和授权流程
a 用户输入用户名、密码等身份信息,并将其发送给RADIUS客户端。
b RADIUS客户端接收用户的用户名、密码信息,并向RADIUS服务器发送认证请求报文。认证请求报文中的密码为加密形式。
c RADIUS服务器收到认证请求后,验证用户名、密码信息是否合法。若合法则接受认证请求,并同时下发该用户的授权信息;若不合法,则拒绝该认证请求。
● RADIUS的记账流程
d 若用户发起认证流程中,RADIUS服务器返回认证成功,则RADIUS客户端继续发送记账开始请求报文。
e RADIUS服务器回应记账开始响应报文,开始记账。
f 若用户需要结束访问网络资源,则向RADIUS客户端申请断开连接。
g RADIUS客户端发送记账结束请求报文。
h RADIUS服务器返回记账结束响应报文,并停止记账。
i 用户断开连接,无法再访问网络资源。
1.5 RADIUS协议典型应用场景
RADIUS协议常见的一个场景是在办公网场景中结合802.1X认证为用户提供认证服务。
假设某公司存在几个办公区,员工在办公区内访问网络时需要受到权限管控。公司领导希望能够对不同级别的员工配发不同的权限,且同一员工在不同办公区办公时,其权限等级是一致的。
图1-5 办公网802.1X认证场景
如图2-5所示,在各个办公区的接入设备上配置802.1X认证,认证方法指定为RADIUS服务器。同时在RADIUS服务器为不同员工配置相应的账号和权限,即可管理员工的网络权限。
员工在访问网络时,接入设备会要求员工提供账号进行认证。账号的网络访问权限由RADIUS服务器配置指定。
使用RADIUS服务器认证有如下优点:
● 方便部署,账号统一管理,不易混乱。所有办公区的接入设备都可以指定同一个RADIUS服务器,接入设备不需要重复配置员工的账号,只需要在服务器上配置好员工账号后,即可在所有办公区内生效。同时,若有新增办公区时,只需要在对应的接入设备上指定原有的RADIUS服务器进行认证即可。
● 安全性。RADIUS数据传输经过加密,防止账号信息在经过公用网络时被监听窃取。
● 支持备用RADIUS服务器。支持使用多组RADIUS服务器来提供认证服务器,在某台服务器宕机时,可以自动切换为备用服务器,避免影响正常办公。
更多技术博文
-
全调度以太网(GSE),中国智算网络新标准
GSE网络作为一种全调度以太网技术,专为大规模AI训练集群设计,通过按需调度实现无损性能,提供灵活快速的部署方案,构建开放生态,显著提升智算效率和运维体验。
-
#知识百科
-
-
以太和PON,谁能更好地支撑办公室横向流量业务?
了解以太彩光与PON的区别,解析办公资源共享难题,锐捷极简以太彩光方案助您高效适配办公网,共享打印无压力!
-
#交换机
-
-
场景无线 驱动高效办公!锐捷新一代企业无线办公解决方案全新发布!
面对企业数智化转型中的无线办公网络挑战,锐捷新一代企业无线办公解决方案通过全场景AP、智能调度与云端智能运维等技术,实现网络性能、用户体验与运维效率的全面提升。
-
#无线网
-
#办公网
-
-
以太彩光和PON,运维管理谁技高一筹?
锐捷网络提供极简以太全光方案,简化配置流程,降低学习成本,让全光网络升级更平滑。
-
#交换机
-