分享

RADIUS协议详解 – 弱电智能网

 网络搬运工 2024-01-24 发布于上海

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基本网络结构图

RADIUS协议详解

如上图所示: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协议部署示意图

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报文结构图

RADIUS协议详解

表1-1 RADIUS报文字段含义
字段长度含义说明
Code1字节标识报文类型常用报文类型对应数值和含义如下:

1:Access-Request,认证请求报文

2:Access-Accept,认证接受报文

3:Access-Reject,认证拒绝报文

4:Accounting-Request,记账请求报文

5:Accounting-Response,记账应答报文

11:Access-Challenge,认证质询报文

Identifier1字节匹配请求和响应报文同一类型的请求报文和响应报文的Identifier值相同
Length2字节RADIUS报文的长度值为Code、Identifier、Length、Authenticator、Attributes五个字段长度之和

若实际收到的报文长度大于Length值,则超过Length值的部分内容将被作为填充值忽略掉;若实际收到的报文长度小于Length值,则丢弃该报文

Authenticator16字节验证报文和

用户密码加解密

Attributes变长携带认证、授权和记账信息通常包含多个属性,属性采用TLV(Type、Length、Value)三元组结构表示

1.4.2  RADIUS协议交互过程

图1-4    RADIUS认证、授权和记账流程图

RADIUS协议详解

  • RADIUS的认证和授权流程

    • 用户输入用户名、密码等身份信息,并将其发送给RADIUS客户端。

    • RADIUS客户端接收用户的用户名、密码信息,并向RADIUS服务器发送认证请求报文。认证请求报文中的密码为加密形式。

    • RADIUS服务器收到认证请求后,验证用户名、密码信息是否合法。若合法则接受认证请求,并同时下发该用户的授权信息;若不合法,则拒绝该认证请求。

  • RADIUS的记账流程

    • 若用户发起认证流程中,RADIUS服务器返回认证成功,则RADIUS客户端继续发送记账开始请求报文。

    • RADIUS服务器回应记账开始响应报文,开始记账。

    • 若用户需要结束访问网络资源,则向RADIUS客户端申请断开连接。

    • RADIUS客户端发送记账结束请求报文。

    • RADIUS服务器返回记账结束响应报文,并停止记账。

    • 用户断开连接,无法再访问网络资源。

1.5   RADIUS协议典型应用场景

RADIUS协议常见的一个场景是在办公网场景中结合802.1X认证为用户提供认证服务。

假设某公司存在几个办公区,员工在办公区内访问网络时需要受到权限管控。公司领导希望能够对不同级别的员工配发不同的权限,且同一员工在不同办公区办公时,其权限等级是一致的。

图1-5    办公网802.1X认证场景

RADIUS协议详解

如图2-5所示,在各个办公区的接入设备上配置802.1X认证,认证方法指定为RADIUS服务器。同时在RADIUS服务器为不同员工配置相应的账号和权限,即可管理员工的网络权限。

员工在访问网络时,接入设备会要求员工提供账号进行认证。账号的网络访问权限由RADIUS服务器配置指定。

使用RADIUS服务器认证有如下优点:

  • 方便部署,账号统一管理,不易混乱。所有办公区的接入设备都可以指定同一个RADIUS服务器,接入设备不需要重复配置员工的账号,只需要在服务器上配置好员工账号后,即可在所有办公区内生效。同时,若有新增办公区时,只需要在对应的接入设备上指定原有的RADIUS服务器进行认证即可。

  • 安全性。RADIUS数据传输经过加密,防止账号信息在经过公用网络时被监听窃取。

  • 支持备用RADIUS服务器。支持使用多组RADIUS服务器来提供认证服务器,在某台服务器宕机时,可以自动切换为备用服务器,避免影响正常办公。


来自:https://www./tech/networking/38852.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多