参考网址:http://www.tutorialspoint.com/radius/index.htm
RADIUS:Remote AuthenticationDial In User Service
RADIUS是一个承载认证、鉴权相关信息的协议,网络访问服务(NAS)之间的配置,希望认证它们的链路和共享认证服务。
在开始学习RADIUS之前,了解下面两个概念是非常重要的。
1)什么是AAA?
2)什么是NAS?
首先让我们对上面两个感念有一定的基本认识。
AAA表示:
(i)Authentication(认证):
是指确定请求的用户是一个合法的用户
通过表示身份和凭证实现
凭证的示例为密码,一次性Token、数字认证和电话号码(主被叫)
(ii)Authorization and(授权)
是指保证用户使用专用类型服务(包括“无服务”),基于它们的认证。
可以基于限制,例如,天级时间限制、物理位置限制或相同用户多次登录的限制。
服务的示例包括,但是不限于:IP地址过滤、地址赋值、路由赋值、加密、QOS/差别服务、带宽控制流量管理。
(iii) Accounting(审计)
是指跟踪用户消费(使用)的网络资源
在审计中采集的典型信息包括用户的标识,服务的性质,服务什么时候开始,什么时候结束(计费)。
可以用于管理、计划、计费等。
AAA服务提供所有上面的服务给客户端。
AAA协议:
1)终端访问控制器的访问控制系统(TACACS)
TACACS是一个远程认证协议,用作与认证服务器进行通信,通常使用在UNIX网络中。TACACS允许远程访问服务于认证服务通信,为了决定用户是否允许访问网络。Unix后台是TACACSD,运行在49端口上,使用TCP。
2)TACACS+:
TACACS+是为路由、网络访问服务和其它网络计算设备提供访问控制的协议,使用一个以上的中心服务器。它使用TCP,提供单独认证、鉴权和审计服务,端口是49。
3)RADIUS:
远程认证拨号用户服务是一个AAA应用协议,例如:网络认证或IP移动性。后续章节中,我们会看到更多的RADIUS详情。
4)DIAMETER
Diameter是计划替代RADIUS的一种协议。
什么是NAS(网络访问服务器)?
网络访问服务(NAS)是服务单元,客户端拨号是获得访问网络。网络访问服务是一个设备,通常有到主干网和电信(POTS或ISDN)的接口,接收主机的呼叫,希望通过拨号服务访问主干王。NAS位于互联网提供者哪里,提供他们的客户访问互联网。
网络访问服务(NAS)是:
1)远程资源的单个访问点
2)远程访问服务,因为它允许远程访问网络
3)网络的起始入口点
4)保证访问保护资源的网关
几个示例:
1)使用用户ID和面膜的互联网访问认证
2)使用VOIP、FOIP、VMOIP要求可用电话号码或IP地址
3)电话预付费卡使用预付费卡号
RAIDUS是一个承载认证、鉴权的协议,配置希望认证链路的网络访问服务和认证服务器之间的信息。
1)RADIUS遵循远程认证拨号用户服务
2)RADIUS是应用的AAA协议,例如:网络访问和IP移动性
3)可在本地和移动下工作
4)使用PAP、CHAP和EAP协议认证用户
5)文本文件、LDAP服务、鉴权数据库方式查看
6)在认证之后,服务参数传回给NAS
7)当会话开始和结束时通知。数据将用于账单或统计目的
8)SNMP用于远程监控
9)可以作用代理
简单的RADIUS网络框架图:
下面是RADIUS主要特征的列表:
1)客户端服务器们模型(C/S)
NAS作为RADIUS服务的客户端
RADIUS服务负责获取用户连接请求,验证用户,然后返回所有必要的配置信息,用于客户端提交服务给用户。
2)网络安全
在客户端和服务之间的传输通过使用共享密钥认证,该密钥从来不发送到网络上。
3)灵活的鉴权机制
RADIUS支持下面的协议用于鉴权目的:
点对点协议 – PPP
密码认证协议- PAP
挑战-握手认证协议 – CHAP
简单的UNIX登录
4)扩展协议
RADIUS是可扩展的,许多RADIUS硬件和软件实现厂商有它们字节的方言。
5)无状态协议,使用UDP,运行在端口1812上。
下面是RADIUS操作的详情。在客户端与RADIUS服务开始通信之前,它要求在客户端和服务之间共享密码,客户端必须配置使用RADIUS服务来获取服务。
正确配置一个客户端:
1)客户端开始Access-Request
2)服务器发送Access-Accept、Access-Reject或Access-Challenge。
3)Access-Accept保留所有要求的属性提供服务给用户
RADIUS码(十进制)赋值如下:
1 Access-Request
2 Access-Accept
3 Access-Reject
4 Accounting-Request
5 Accounting-Response
11 Access-Challenge
12 Status-Server (experimental)
13 Status-Client (experimental)
255 Reserved
不考虑Alive概念-好还是坏?
代码4和5与RADIUS审计功能相关,代码12和13保留可能的用途,但是这里没有进一步提到。
RADIUS报文格式如下图所示:
Code:1个八位字节(Octet)长度,表示报文的各种类型。通常1个八位字节意味着1 Byte。
Identifier:又是一个8位字节长度,辅助匹配请求的响应。
Length:这是2个8位字节长度,指定报文的长度,包括RADIUS头部(Code,Identifier,length和Authenticator)(最小报文长度为20个8位字节,最大为4096个8位字节)。
Authenticator:16个Byte长度,填满一些请求和响应。
Attributes列表:它是一个63+属性列表,RADIUS属性也有指定的格式,下章描述。
RADIUS属性包含下面三个部分(TLV):
1)Type: 1 Byte,表示属性的各种类型,它是属性代码,如下面列表中所示。
2)Length:1Byte,表示属性的长度,包含Type和自身
3)Value:0或者多个Bytes,包含属性专用的信息。
RADIUS属性列表:
|
|
让我们看一个RADIUS请求示例:
1)192.168.1.16的NAS发送Access-RequestUDP报文到RADIUS服务,用户名称为memo,在端口3上使用密码arctangent密码登录。
2)请求认证是由NAS生成的16个字节随机数
3)用户密码是16个字节的密码,以零字节结尾,与D5进行XOR操作(工序安全|请求认证)
01 00 00 38 0f 40 3f 94 73 97 80 57 bd 83 d5 cb 98 f4 22 7a01 06 6e 656d 6f 02 12 0d be 70 8d 93 d4 13 ce 31 96 e43f 78 2a 0a ee 04 06 c0 a8 01 10 05 06 0000 00 03
1Code = Access-Request(1)
1Identifier = 0
2Length = 0x0038(56)
16请求验证:…
属性列表:
6User-Name = nemo
18User-Passwd =
6NAS-IP-Address = 192.168.1.16
6NAS-Port = 3
DIAMETER计划替代RADIUS协议
DIAMETER是应用的AAA协议,例如网络访问和IP移动性
打算在本地和远程AAA情况下均能使用
DIAMETER只是两倍与前任协议RIADUS
使用TCP和SCTP承载,不是UDP,子协议号为46
它使用传输级别安全(IPSEC或IP)
32位标识符替代8位(RADIUS)
支持无状态和状态模型
支持应用层应答,定义容错
更好的远程支持
使用AVP
容易扩展,可以定义新的命令和类型
现在你已经学习了RADIUS和DIAMETER的基本知识,两个协议更深入的详情需要阅读各种RFC文档。
· RFC 2865 Remote AuthenticationDial In User Service (RADIUS)
· RFC 2866 RADIUS Accounting
· RFC 3162 RADIUS Extensions
· RFC 2903 Generic AAAArchitecture
· RFC 4004 DiameterMobile IPv4 Application