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服务器来提供认证服务器,在某台服务器宕机时,可以自动切换为备用服务器,避免影响正常办公。
更多技术博文
-
一文帮助您了解如何进行风险辨识,确保计算机系统安全
本文探讨了在计算机系统安全中的关键一环——如何进行风险辨识。通过系统化方法,识别和评估潜在的安全威胁和漏洞,从而全面了解系统中存在的潜在风险。采取多种方法,如安全漏洞扫描、安全威胁模拟等,有助于发现安全威胁,并为进一步的安全保护提供基础。
-
#知识百科
-
#安全
-
-
风险检测系统:如何保障计算机系统安全?
本文探讨了风险检测系统在计算机安全中的关键作用。通过监测系统行为、分析网络流量等方式,风险检测系统能及时发现潜在安全威胁,提高系统安全性和稳定性。文章强调建立和使用风险检测系统是保护计算机系统安全的重要措施,对各个领域的安全保障具有重要意义。
-
#知识百科
-
#安全
-
-
企业办公场所智能化核心技术之POE网关是什么
本文探讨了POE网关在提升企业办公智能化水平中的关键作用。通过以太网电缆为智能设备提供数据和电力,POE网关简化了设备管理流程,提高了工作效率,降低了总体成本。这项关键技术不仅满足了企业对智能化办公环境的需求,还为企业创造出更智能、高效、节能的办公环境。
-
#知识百科
-
#安全
-
-
一文带你了解POE交换机与POE路由器是什么?
本文探讨了POE交换机和POE路由器在智能化办公环境中的关键作用。它们通过为智能设备提供电力和数据传输,实现了高效通信和智能管理。POE交换机简化了设备连接并提升了工作效率,而POE路由器作为核心枢纽,打造了灵活、可靠和安全的网络环境。
-
#交换机
-
#知识百科
-