RADIUS

RADIUS是一种AAA协议,提供验证、授权及计费服务。适用于网络接入及漫游服务,采用客户端-服务器架构,通过UDP传输数据包。RADIUS协议支持多种验证方式,并可通过代理服务器实现漫游。

远端用户拨入验证服务RADIUS, Remote Authentication Dial In User Service)是一个AAA协议,意思就是同时兼顾验证(authentication)、授权(authorization)及计费(accounting)三种服务的一种网络传输协议(protocol),通常用于网络存取、或流动IP服务,适用于局域网漫游服务。

客户端-服务器结构

RADIUS协议是一种基于主从式架构的协议。RADIUS 协议中的客户端是对用户(人或者计算机)提供网络连接服务的器材,对服务器提出验证和计费要求。服务器针对客户端的通过进行验证和计费给予应答。服务器只有针对客户端的请求进行应答,而无法反方向地对用户进行服务停止等的请求。

RADIUS 客户端的实例

因特网连接服务中,拨号呼叫装置和宽带接入服务器(BAS、Broadband Access Server)等接收装置(NAS、Network Access Server)即为 RADIUS 客户端。(虽然名字含有“服务器”,但从 RADIUS 协议的角度来看是客户端)。无线 LAN 环境中的无线接取器和 VLAN 中的 VLAN开关等都是。在内容提供的服务中,Web 服务器起到了 RADIUS 客户端的作用。

协议的概要

客户端对服务器提出“RADIUS 请求包”,服务器对客户端发送“RADIUS 应答包”。双方通信均由 IP 的UDP包进行。

双方的数据包,头部分由20个 8位元和“属性”组成。头部分包括类别码(Code)1个8位元、识别码(Identifier)1个8位元、数据包整体长度2个8位元、验证码(Authenticator)16个8位元。识别码根据客户端决定的需求而设定,服务器直接照抄到应答包里,因为客户端需要在收到的应答包与过去曾接收到的请求包对照。实际客户端一般只是进行累计数值编号,但没有规定必须是序列号。验证码是为了证明无发送者伪装和篡改。属性部分是将属性値对 (Attribute Value Pair)任意次重复。属性値对由属性编号1个8位元、长度1个8位元、属性値组成。对于値可以赋予4个8位元的整数値、4个8位元IP地址、1 - 253个8位元的文字串等等。

对于每个属性编号,每个属性値对里值的含义在RFC文件里均有规定,还可以通过给属性编号赋予新的定义来增加使用目的,RADIUS 协议的灵活性所在也是其最大的特征。但是一般不推荐各个机器产商为各自目的独自给属性标号赋值。产商特有功能应做为属性编号 26 号 (Vendor Specific)的值与产商编号一起加到数据里。属性编号 26 号的属性値对一般称为 VSA (Vendor Specific Attribute) 。厂家编号由IANA进行管理和赋予。

协议通过属性値对里含有各种个样信息进行验证和计费。为实现验证,用户名和密码各有属性编号。拨号上网使用PPP时针对 PPP 用的验证协议 PAPCHAPEAP均备有各自的属性编号。为实现计费,备有使用秒数、收发数据量等的属性编号。由此根据属性编号可以判断、验证和计费两功能是只有一种才能使用还是二者可同时使用。

RADIUS分组的最大长度,在RADIUS验证协议中是4096个8位元、RADIUS计费协议中是 4095 个 8 位元,这个差异据说并没有特殊含义,而是 RFC 当初的错字将错就错地沿用下来的缘故。

AAA

RADIUS 协议是一种基于AAA的协议,但由于 RADIUS 协议本身创建于 AAA 模式之前,因此,RADIUS 协议中并没有区分“验证”和“授权”,而是合为“验证”处理, 因此 RADIUS 客户端在实际操作中无法知道被拒绝的原因是由于密码错误还是因为没有权限。

共有键

UDP与TCP不同,无法识别伪装送信者和数据篡改。因此仅靠通信对方的 IP 地址是不足以信任通信内容的。为了防止伪装和篡改,RADIUS 客户端和服务器之间共享一个叫“共享密码” (Shared secret)的密钥字符串,将数据包的内容和共享密码得到的摘要信息配给验证符号和属性值。应该为每对 RADIUS 客户端和服务器准备一个共享密码。针对一个 RADIUS 服务器只用一个密码而与所有 RADIUS 客户端都共用会造成安全上的重大隐患。另外,从安全的角度来说,共享密码的内容若被第三方泄露也是一大问题[1]

代理

通过一个代理 RADIUS AAA 服务器进行漫游

自身作为 RADIUS 服务器,而把实际的验证和计费处理委托其他 RADIUS 服务器的情况即为“RADIUS代理服务器”。也就是说本身既是 RADIUS 服务器也是 RADIUS 客户端,将需求“转送”。

可以通过判断用户名的字符串改变转送地址。比如用户名做成含有电子邮件地址“@”符号和域名的字符串,根据不同的域名部分字符串转送到其他 RADIUS 服务器上。这种技术广泛被利用于 ISP(互联网服务提供商)之间的漫游服务等。上述例子中用于判断转送目的类似域名的部分通常被称为 Realm。

IEEE 802.1X

IEEE 802.1X是以太网中一个控制可否使用局域网的一个协议。通过使用 IEEE 802.1X 和 RADIUS 协议,可以对仅通过 RADIUS 服务器验证的用户允许局域网服务。当然,为此需要配备 IEEE 802.1X 以及 RADIUS 协议双方能使用的无线接入点或 VLAN 开关。另外“802.1x”中的 X 一般为大写,这是因为小写 x 容易被人误解其像数学中 x 一样可代表任意参数。

IEEE 802.1X 和 RADIUS 协议均没有规定实际的验证步骤。实际的验证中通常使用 EAP-TLSPEAPEAP-TTLS 等 EAP上的验证步骤进行。为实现 EAP 验证的数据交换,用户终端和接入点或开关之间的以太网使用 IEEE 802.1X,接入点或开关与 RADIUS 服务器之间使用 RADIUS 协议进行中継。

EAP-TLS 对于基于TLS数字证书进行相互验证(为防止伪装服务提供者)这一点虽然很重要,但数字证书的管理和运用对于一般机构是一个很大的负担。PEAP 和 EAP-TTLS 的验证步骤是在创建以 TLS 加密的通讯线路后再进行密码信息的交换 。EAP-TLS 与 PEAP・EAP-TTLS 的对比可以参照比较是通过网页浏览器TLS中利用数字证书进行相互验证还是 SSL 上的密码验证。

软件

RADIUS 协议的开发者 Livingston Enterprises 公司(后被 Lucent Technologies 公司收购)进行的 RADIUS 服务器的搭载以及之后派生出来的使用逐渐增多。近年出现里更多的开源软件、商用软件。

利用事例

  • ISP(互联网服务提供商)
  • 移动电话的网络连接服务
  • 无线 LAN、VLAN
  • Web 上提供收费内容的服务

定义

通过下述 RFC 文件定义:


外部链接

Copyright (c) 2004 by Accense Technology, Inc.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License Version 1.1 published by the Free Software Foundation.
本文档允许在基于 GNU Free Documentation License Version 1.1 规定的条件下复制、发布和变更。
### RADIUS协议的使用场景及配置方法 ### 使用场景 RADIUS协议广泛应用于需要远程认证和授权的场景中,尤其适用于用户接入方式多样化的网络环境。以下是其主要应用场景: - **网络接入认证**:在企业和校园网络中,RADIUS协议用于对用户的网络接入请求进行认证和授权,确保只有经过验证的用户才能访问网络资源[^1]。 - **无线局域网认证**:在无线局域网(WLAN)中,RADIUS协议用于对用户的接入请求进行认证和计费,提供安全的无线网络访问控制。 - **远程拨号接入认证**:在远程拨号接入网络中,RADIUS协议用于对用户的拨号接入请求进行认证和授权,支持多种拨号协议,如PPP(Point-to-Point Protocol)。 RADIUS协议通过认证、授权和计费(AAA)功能,提供统一的用户管理机制,适用于以太网、无线网络、远程拨号等多种接入方式[^2]。 ### 配置方法 RADIUS协议采用客户端/服务器(C/S)结构,其配置主要包括服务器设置、客户端配置和用户认证流程。 #### RADIUS服务器配置 RADIUS服务器负责处理认证、授权和计费请求。配置RADIUS服务器通常包括以下步骤: 1. 安装RADIUS服务器软件,如FreeRADIUS。 2. 配置共享密钥,用于客户端和服务器之间的通信认证。 3. 配置用户数据库,存储用户账号、密码和权限信息。 4. 设置网络访问策略,定义用户访问权限和限制。 示例配置文件片段(FreeRADIUS): ```bash # clients.conf client 192.168.1.0/24 { secret = mysharedsecret shortname = network } ``` #### RADIUS客户端配置 RADIUS客户端通常为网络接入设备(如路由器、交换机、无线接入点等),负责将用户的认证请求转发给RADIUS服务器。配置RADIUS客户端包括以下内容: 1. 指定RADIUS服务器的IP地址和端口。 2. 配置共享密钥,确保与服务器端一致。 3. 设置认证方式(如PAP、CHAP等)。 示例配置(Cisco路由器): ```bash aaa new-model aaa authentication login default group radius local radius server RADIUS_SERVER address ipv4 192.168.1.100 key mysharedsecret ``` #### 用户认证流程 RADIUS协议的基本消息交互流程如下: 1. 用户输入用户名和口令。 2. RADIUS客户端向RADIUS服务器发送认证请求包(Access-Request)。 3. RADIUS服务器验证用户信息,返回认证响应包(Access-Accept或Access-Reject)。 4. 若认证成功,RADIUS客户端允许用户接入,并发送计费开始请求(Accounting-Request)。 5. RADIUS服务器返回计费开始响应(Accounting-Response)。 6. 用户断开连接时,RADIUS客户端发送计费停止请求(Accounting-Request)。 7. RADIUS服务器返回计费结束响应(Accounting-Response)[^4]。 RADIUS协议支持多种认证机制,如PAP、CHAP或Unix登录认证,同时通过Attribute-Length-Value(AVP)结构实现协议的可扩展性[^3]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值