H3C RADIUS概述

发布时间:2019-06-25 10:58:18编辑:auto阅读(2779)

        RADIUS( Remote Authentication Dial-In User Service,远程认证拨号用户服务)是一种用于实现AAA( Authentication, Authorization and Accounting,认证、授权和计费)的协议。


    RADIUS 简介

        RADIUS 是一种分布式的、 客户端/服务器结构的信息交互协议, 能保护网络不受未授权访问的干扰,常应用在既要求较高安全性、又允许远程用户访问的各种网络环境中。该协议定义了基于 UDP 的RADIUS 帧格式及其消息传输机制,并规定 UDP 端口 1812、 1813 分别作为认证、计费端口。RADIUS 最初仅是针对拨号用户的 AAA 协议,后来随着用户接入方式的多样化发展, RADIUS 也适应多种用户接入方式,如以太网接入、 ADSL 接入。它通过认证授权来提供接入服务,通过计费来收集、记录用户对网络资源的使用。


    客户端/服务器模式

       · 客户端: RADIUS 客户端一般位于 NAS 设备上,可以遍布整个网络,负责传输用户信息到指定的 RADIUS 服务器,然后根据从服务器返回的信息进行相应处理(如接受/拒绝用户接入)。

       · 服务器: RADIUS 服务器运行在中心计算机或工作站上,维护相关的用户认证和网络服务访问信息,负责接收用户连接请求并认证用户,然后给客户端返回所有需要的信息(如接受/拒绝认证请求)。

        RADIUS服务器通常要维护三个数据库,如 图 1-1 所示。

    wKiom1RU-kignP19AACIAmcHDAg874.jpg

       · “Users”:用于存储用户信息(如用户名、口令以及使用的协议、 IP 地址等配置信息)。

       · “Clients”:用于存储 RADIUS 客户端的信息(如接入设备的共享密钥、 IP 地址等)。

       · “Dictionary”:用于存储 RADIUS 协议中的属性和属性值含义的信息。


    安全和认证机制

        RADIUS 客户端和 RADIUS 服务器之间认证消息的交互是通过共享密钥的参与来完成的, 并且共享密钥不能通过网络来传输,增强了信息交互的安全性。另外,为防止用户密码在不安全的网络上传递时被窃取,在传输过程中对密码进行了加密。

        RADIUS 服务器支持多种方法来认证用户,如基于 PPP 的 PAP、 CHAP 认证。另外, RADIUS 服务器还可以为其它类型的认证服务器提供代理客户端的功能,向其提出认证请求。


    RADIUS 的基本消息交互流程

        用户、 RADIUS客户端和RADIUS服务器之间的交互流程如 图 1-2 所示。

    wKioL1RU-tbzhGtNAAFsQZoBVak338.jpg

    消息交互流程如下:

        (1) 用户发起连接请求,向 RADIUS 客户端发送用户名和密码。

        (2) RADIUS 客 户 端 根 据 获 取 的 用 户 名 和 密 码 , 向 RADIUS 服 务 器 发 送 认 证 请 求 包( Access-Request),其中的密码在共享密钥的参与下由 MD5 算法进行加密处理。

        (3) RADIUS 服务器对用户名和密码进行认证。如果认证成功, RADIUS 服务器向 RADIUS 客户端发送认证接受包( Access-Accept);如果认证失败,则返回认证拒绝包( Access-Reject)。由于 RADIUS 协议合并了认证和授权的过程,因此认证接受包中也包含了用户的授权信息。

        (4) RADIUS 客户端根据接收到的认证结果接入/拒绝用户。如果允许用户接入,则 RADIUS 客户端向 RADIUS 服务器发送计费开始请求包( Accounting-Request)。

        (5) RADIUS 服务器返回计费开始响应包( Accounting-Response),并开始计费。

        (6) 用户开始访问网络资源。

        (7) 用 户 请 求 断 开 连 接 , RADIUS 客 户 端 向 RADIUS 服 务 器 发 送 计 费 停 止 请 求 包( Accounting-Request)。

        (8) RADIUS 服务器返回计费结束响应包( Accounting-Response),并停止计费。

        (9) 用户结束访问网络资源。


    RADIUS 报文结构

        RADIUS采用UDP报文来传输消息, 通过定时器管理机制、 重传机制、 备用服务器机制, 确保RADIUS服务器和客户端之间交互消息的正确收发。 RADIUS报文结构如 图 1-3 所示。

    wKiom1RU-pmSl6_ZAACwtPLNafU337.jpg


    各字段的解释如下:

        (1) Code 域

        长度为 1 个字节,用于说明RADIUS报文的类型,如 表 1-1 所示。

    wKioL1RU-xDgMocRAAOXouNZk8g433.jpg


        (2) Identifier 域

        长度为 1 个字节,用于匹配请求包和响应包,以及检测在一段时间内重发的请求包。类型一致的请求包和响应包的 Identifier 值相同。

        (3) Length 域

        长度为 2 个字节, 表示 RADIUS 数据包(包括 Code、 Identifier、 Length、 Authenticator 和 Attribute)的长度,范围从 20~4096。超过 Length 域的字节将作为填充字符被忽略。如果接收到的包的实际长度小于 Length 域的值时,则包会被丢弃。

        (4) Authenticator 域

        长度为 16 个字节,用于验证 RADIUS 服务器的应答,另外还用于用户密码的加密。 Authenticator包括两种类型: Request Authenticator 和 Response Authenticator。

        (5) Attribute 域

        不定长度,用于携带专门的认证、授权和计费信息,提供请求和响应报文的配置细节。 Attribute 可包括多个属性,每一个属性都采用( Type、 Length、 Value)三元组的结构来表示。

       · 类型( Type), 1 个字节,取值为 1 ~255,用于表示属性的类型, 表 1-2 列出了RADIUS认证、授权、计费常用的属性。

       · 长度( Length),表示该属性(包括类型、长度和属性)的长度,单位为字节。

       · 属性值( Value),表示该属性的信息,其格式和内容由类型和长度决定,最大长度为 253 字节。

    wKiom1RU-vrj8tqCAAJX8AKxcNM141.jpg

    wKioL1RU-1fwsTnBAAFzTMRSvdY474.jpg

    wKiom1RU-vqxjWBYAAJMICTfIOY856.jpg

    wKioL1RU-1eCnNvSAACulcSaF6I510.jpg

        说明:表 1-2 中所列的属性由 RFC 2865、 RFC 2866、 RFC2867 和RFC2568 分别定义。


    RADIUS 扩展属性

        RADIUS 协议具有良好的可扩展性,协议( RFC 2865)中定义的 26 号属性( Vendor-Specific)用于设备厂商对 RADIUS 进行扩展,以实现标准 RADIUS 没有定义的功能。

        设备厂商可以封装多个自定义的“( Type、 Length、 Value)”子属性来扩展RADIUS。如 图 1-4所示, 26 号属性报文内封装的子属性包括以下四个部分:

       · Vendor-ID 域占 4 字节, 表示厂商代号, 最高字节为 0, 其余 3 字节的编码见 RFC 1700。 H3C公司的 Vendor-ID 是 2011 。

       · Vendor-Type,表示扩展属性的子属性类型。

       · Vendor-Length,表示该子属性长度。

       · Vendor-Data,表示该子属性的内容。


    协议规范

        与 RADIUS 相关的协议规范有:

       · RFC 2865: Remote Authentication Dial In User Service (RADIUS)

       · RFC 2866: RADIUS Accounting

       · RFC 2867: RADIUS Accounting Modifications for Tunnel Protocol Support

       · RFC 2868: RADIUS Attributes for Tunnel Protocol Support

       · RFC 2869: RADIUS Extensions


关键字