RADIUS协议原理及应用.docx

上传人:b****6 文档编号:4569171 上传时间:2022-12-06 格式:DOCX 页数:19 大小:4.52MB
下载 相关 举报
RADIUS协议原理及应用.docx_第1页
第1页 / 共19页
RADIUS协议原理及应用.docx_第2页
第2页 / 共19页
RADIUS协议原理及应用.docx_第3页
第3页 / 共19页
RADIUS协议原理及应用.docx_第4页
第4页 / 共19页
RADIUS协议原理及应用.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

RADIUS协议原理及应用.docx

《RADIUS协议原理及应用.docx》由会员分享,可在线阅读,更多相关《RADIUS协议原理及应用.docx(19页珍藏版)》请在冰豆网上搜索。

RADIUS协议原理及应用.docx

RADIUS协议原理及应用

RADIUS协议原理及应用

 

培训目标

●了解RADIUS协议大体概念;

●熟悉RADIUS协议报文结构;

●熟悉RADIUS协议工作原理;

前言

企业要求只有授权的用户才能访问自己的内部网络,教育网采取依照流量计费的策略,VOD系统依照点播的时刻收费等等。

这些最多见的网络应用却面临一个一样的问题:

如何对用户进行认证和计费?

一种常见的认证计费方式——RADIUS协议会帮忙咱们解决这些问题。

RADIUS是目前最常常利用的认证计费协议之一,它简单平安,易于治理,扩展性好,因此取得普遍应用。

1RADIUS协议简介

RADIUS(RemoteAuthenticationDialInUserService)是远程认证拨号用户效劳的简称。

RADIUS原先设计的目的是为拨号用户进行认证和计费。

后来通过量次改良,形成了一项通用的认证计费协议,要紧完成在网络接入设备和认证效劳器之间承载认证、授权、计费和配置信息。

RADIUS是一种C/S结构的协议,它的客户端最初确实是NAS效劳器,此刻任何运行RADIUS客户端软件的运算机都能够成为RADIUS的客户端。

RADIUS大体原理:

用户接入NAS,NAS向RADIUS效劳器利用Access-Request数据包提交用户信息,包括用户名、密码等相关信息,其顶用户密码是通过MD5加密的,两边利用共享密钥,那个密钥不通过网络传播;RADIUS效劳器对用户名和密码的合法性进行查验,必要时能够提出一个Challenge,要求进一步对用户认证,也能够对NAS进行类似的认证;假设是合法,给NAS返回Access-Accept数据包,许诺用户进行下一步工作,不然返回Access-Reject数据包,拒绝用户访问;假设是许诺访问,NAS向RADIUS效劳器提出计费请求Account-Request,RADIUS效劳器响应Account-Accept,对用户开始计费,同时用户能够进行自己的相关操作。

RADIUS协议具有以下特点:

●客户端/效劳器结构;

●采纳共享密钥保证网络传输平安性;

●良好的可扩展性;

●认证机制灵活;

RADIUS协议承载于UDP之上,官方指定端口号为认证授权端口1812、计费端口1813。

RADIUS协议在RFC2865、RFC2866中概念。

锐捷网络RG-SAM系统和NAS之间的通信采纳RADIUS协议。

由于RADIUS协议的良好扩展性,很多厂家对RADIUS作了扩展,咱们公司也对其进行了扩展。

使历时咱们应该注意不同公司对RADIUS协议扩展部份不能完全兼容。

2RADIUS协议报文结构

Radius协议报文格式

RADIUS报文格式如以下图所示,各域内容依照从左向右传送

0123

01234567890123456789012345678901

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Code|Identifier|Length|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Authenticator|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|Attributes...

+-+-+-+-+-+-+-+-+-+-+-+-+-

Code域

Code域长度为1个字节,用于标明RADIUS报文的类型,假设是Code域中的内容是无效值,报文将被抛弃RADIUSCode域的有效值如下:

Code=1Access-Request

Code=2Access-Accept

Code=3Access-Reject

Code=4Accounting-Request

Code=5Accounting-Response

Code=11Access-Challenge

Code=12Status-Server(experimental)

Code=13Status-Client(experimental)

Code=65业务修改请求消息

Code=66业务修改请求回应消息

Code=67业务修改请求回应拒绝消息

Code=255Reserved

其中1213255为保留的Code值一样可不能碰着,1234511比较常见,别离标明报文类型为认证请求、认证同意、认证拒绝、计费请求、计费回应、计费成功和访问质询。

Identifier域

Identifier域长度为1个字节,用于匹配请求的回应。

假设是在短时刻内RADIUS效劳器收到从相同的源IP,相同源端口,相同标识域的报文,那么以为收到的是重复的请求。

Length域

Length域占两个字节,用于指明报文的有效长度,多出长度域的字节部份将被视为填充。

在接收时被忽略。

假设是报文长度小于长度域中的值,整个报文将被抛弃。

长度域的范围在20和4096之间。

Authenticator

认证字域占用16个字节,用于RadiusClient和Server之间消息认证的有效性,和密码隐藏算法。

访问请求Access-Request报文中的认证字的值是16字节随机数,认证字的值要不能被预测而且在一个共享密钥的生命期内唯一。

访问请求Access-Request认证字

在Access-Request包中认证字的值是16字节随机数,认证字的值要不能被预测,

而且在一个共享密钥的生命期内唯一;

访问回应认证字

Access-AcceptAccess-Reject和Access-Challenge包中的认证字称为访问回应认证字,访问回应认证字的值概念为MD5(Code+ID+Length+RequestAuth+Attributes+Secret);

计费请求Accounting-Request认证字

在计费请求包中的认证字域称为计费请求认证字,它是一个16字节的MD5校验和,计费请求认证字的值概念为MD5(Code+Identifier+Length+16zerooctets+requestattributes+sharedsecret);

计费回应Accounting-Response认证字

在计费回应报文中的认证字域称为计费回应认证字,它的值概念为MD5(Accounting-ResponseCode+Identifier+Length+theRequestAuthenticatorfieldfromtheAccounting-Requestpacketbeingrepliedto+theresponseattributes+sharedsecret);

Attributes域

012

012345678901234567890

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

|Type|Length|Value...

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

属性域的长度是可变的,它是一个由业务类型必需的属性和可选属性组成的属性链。

一个属性包括如下三个部份:

Type域

类型域长度为一个字节,RADIUS效劳器和客户端当碰着不可识别的属性时,能够将其忽略。

常常利用的属性类型请参见RFC2865RFC2866;

Length域

长度域长度为一个字节,指明了一个属性的类型、长度和值域的总长度。

假设是在认证请求报文中携带有属性长度非法的属性,那么必需回应访问拒绝报文;假设是在访问回应报文中存在非法的属性长度,

那个报文必需被直接抛弃或被以为是访问拒绝报文。

Value域

值域由零或多个字节组成包,含详细的属性信息,它的格式由属性的长度和类型域决定。

注意RADIUS中没有一个类型的值域是以NULL(hex00)结尾,的也确实是说值域中是没有终止符的,效劳器和客户端需要能够处置内嵌的NULL。

值域的数据类型是以下5种类型之一。

“text”类型是“string”类型的子集:

text1-253字节长

string1-253字节长能够包括二进制数据

address4字节高位在前

integer4字节无符号数高位在前

time4字节无符号数高位在前表示从1970年1月1日零点零时零秒到此刻的秒数

常常利用属性类型列表

●Type=1用户名User-Name

●Type=2用户密码User-Password

●Type=3CHAP密码CHAP-Password

●Type=4NASIP地址NAS-IP-Address

●Type=5NAS端口NAS-Port

●Type=6效劳类型Service-Type

●Type=7帧协议Framed-Protocol

●Type=8分帧IP地址配置Framed-IP-Address

●Type=9IP网络掩码配置Framed-IP-Netmask

●Type=10路由方式配置Framed-Routing

●Type=11挑选器标识Filter-Id

●Type=12最大传输单元配置Framed-MTU

●Type=13紧缩协议配置Framed-Compression

●Type=14登录的主机IP地址Login-IP-Host

●Type=15登录的效劳Login-Service

●Type=16登录的TCP端口Login-TCP-Port

●Type=17未分派(unassigned)

●Type=18回答消息Reply-Message

●Type=19回叫号码Callback-Number

●Type=20回叫IDCallback-Id

●Type=21未分派(unassigned)

●Type=22路由配置Framed-Route

●Type=23IPX网络数字配置Framed-IPX-Network

●Type=24状态State

●Type=25类别Class

●Type=26供给商细节Vendor-Specific

●Type=27会话时限Session-Timeout

●Type=28空闲时限Idle-Timeout

●Type=29终止动作Termination-Action

●Type=30用户拨打的号码Called-Station-Id

●Type=31用户打出的号码Calling-Station-Id

●Type=32网络接入效劳器标识符NAS-Identifier

●Type=33代理状态Proxy-State

●Type=34登录的LAT效劳Login-LAT-Service

●Type=35登录的LAT节点Login-LAT-Node

●Type=36登录的LAT组Login-LAT-Group

●Type=37AppleTalk链路配置Framed-AppleTalk-Link

●Type=38AppleTalk网络配置Framed-AppleTalk-Network

●Type=39AppleTalk区域配置Framed-AppleTalk-Zone

●Type=40-59为记账保留(reservedforaccounting)

●Type=60CHAP查问CHAP-Challenge

●Type=61网络接入效劳器端口类型NAS-Port-Type

●Type=62端口数限制Port-Limit

●Type=63登录的LAT端口Login-LAT-Port

3NAS设备RADIUS部份派置举例

下面以锐捷网络START-S2126G互换机作为例,介绍NAS设备关于RADIUS部份派置:

test#showrunning-config

Systemsoftwareversion:

BuildApr252007Release

Buildingconfiguration...

Currentconfiguration:

586bytes

!

version

!

hostnametest

vlan1

!

radius-serverhosttZ[V/,|

!

interfacefastEthernet0/1

switchportaccessvlan10

dot1xport-controlauto//将此端口设置成受控端口

!

interfacefastEthernet0/24

switchportmodetrunk

!

interfacevlan1

noshutdown

ipaddress

!

dot1xclient-probeenable//打开互换机异样下线探测功能

radius-serverkeyroot//设置互换机和radius-server之间的密钥

snmp-servercommunitypublicrw//设置互换机snmp协议采纳community

ipdefault-gateway

4RADIUS系统下用户认证进程

SAM系统是锐捷网络自主研发的集平安、认证、计费和治理于为一体的网络治理平台,它是基于标准的RADIUS协议开发的,整个系统由以下三个部份组成:

●恳请者(SU,安装锐捷认证客户端软件的PC);

●认证者(NAS,接入层互换机);

●认证效劳器(RADIUSSERVER,RG-SAM软件);

下面从恳请者发起认证――认证成功――退出认证的整个进程中,通过SNIFFER软件抓取到的报文作详细分析:

报文1:

EAPOL-Start

第一由客户端发起一个带有组播目的MAC地址为“0180-C200-0003”的数据帧,其中头部TYPE类型值为1,标明是EAPOL-Start报文,开始认证接入请求;

●DLCDestination=0180-C200-0003,表示组播目的MAC地址,因为SU不知到NAS设备在哪里;

●DLCEthertype=888E,表示链路层帧内承载着报文;

●Version=1表示当前的协议版本是1;

●PacketType=1指定是EAPOL-Start报文;

报文2:

EAP-Request/Identity

NAS设备收到SU的EAPOL-Start报文后,向SU发送EAP-Request/Identity报文,要求SU将用户名送上来;

●PacketType=0,表示报文承载着EAP报文;

●EAP报文中的Code=1,表示是一个EAP-Request报文;

●EAP报文中的Identifier=1,表示那个EAP-Request报文的标识符1,那个值要和后面的EAP-ResponseIdentifier一致;

●EAPData中的Type=1,表示要求SU将用户名送上来;

报文3:

EAP-Response/Identity

SU向NAS设备回应EAP-Response/Identity报文,其中包括用户名信息;

●EAPcode=2,表示是EAP-Response报文;

●EAPIdentifier=1,表示是上一个EAP-Request请求的响应,因为和上一个EAP-Request的Identifier的值相同;

●EAPType=1,表示EAPDate中包括用户名信息;

●EAPMessage=“liufn”,表示用户名是“liufn”;

报文4:

RADIUSAccess-Request

NAS将SU送上来的“用户名”信息封装到RADIUSAccess-Request报文中,发送给认证效劳器,同时那个报文中携带着客户端IP、MAC、掩码、网关、NASIP、NAS端口等信息;

●UDPDestinationPort=1812,UDP的端口号是1812,代表是一个RADIUS的认证信息;

●RADIUSCode=1,说明这是一个Access-Request请求认证报文;

●RADIUSIdentifier=1,表示Access-Request的标识,要和后面相同标识的Access-Response成对利用;

●RADIUSUser-Name=“liufn”,表示报文中携带用户名信息;

●RADIUSNAS-IP-Address=“,表示报文中携带NASIP信息;

●………

报文5:

RADIUSAccess-Challenge

RADIUS效劳器收到上一个报文后,在数据库中查找是不是有此用户,同时依照效劳器的策略设置,是不是来匹配NASIP、NAS端口、用户IP、用户MAC等信息,假设是通过,RADIUS效劳器随机产生一个加密字,用随机产生的加密字和数据库中用户的口令进行MD5加密运算,得出一个结果。

同时将随机产生的加密字通过RADIUSAccess-Challenge报文发送给NAS设备;

●RADIUScode=11:

表示是Access-Challenge挑战报文;

●RADIUSMessage-Authenticator=“xxxx”:

表示RADIUS效劳器随机产生的加密字;

报文6:

EAP-Request/MD5-Challenge

NAS设备将收到RADIUS效劳器的“随机加密字”,然后封装到EAP-Request/MD5-Challenge报文中发送给SU,要求SU进行认证;

●EAPType=4:

表示这是一个MD5挑战;

●EAPValue=“xxxx”:

表示RADIUS随机产生的加密字;

报文7:

EAP-Response/MD5-Challenge

客户端收到EAP-Request/MD5-Challenge报文后,将用户输入的密码和随机字做MD5运算,将结果通EAP-Response/MD5-Challenge回应给NAS设备;

●EAPValue=“yyyy”:

表示加密后的口令;

报文8:

RADIUSAccess-Request

NAS设备通过Access-Challenge报文,将SU送上来的加密口令上传给RADIUS效劳器;

●RADIUSCode=1:

表示是一个Access-Request报文;

●RADIUSMessage-Authenticator=“yyyy”:

表示上传给RADIUS的加密口令;

报文9:

RADIUSAccess-Accept

RADIUS效劳器将SU产生的加密字和自己运算的结果进行比较,看是不是一致,判定用户是不是合法。

然后回应认证成功/失败报文到NAS设备;

●RADIUSCode=2:

表示是一个Access-Accept报文,通知NAS许诺那个用户接入网络;

报文10:

EAP-Success

NAS设备通过EAP-Success报文通知SU认证成功,能够接入网络;

●EAPCode=3:

NAS设备通知SU许诺接入,是EAP-Success报文;

报文11:

RADIUSAccounting-Request

客户端认证通事后,NAS开始向RADIUS效劳器发起计费请求报文,要求对那个用户进行计费处置;

●UDPDestinationPort=1813:

UDP的端口号为1813,说明那个一个RADIUS计费报文;

●RADIUSCode=4:

说明那个一个计费请求Accounting-Request报文;

●RADIUSAcct-Status-Type=1:

说明这是一个计费开始请求报文,适应上称为Accounting-Start;

报文12:

RADIUSAccounting-Response

RADIUS效劳器对该用户进行计费处置后,对NAS设备通过Accounting-Response报文响应;

●RADIUSCode=5:

说明是一个Accounting-Response报文,通知NAS设备,RADIUS效劳器已经对那个用户进行了计费处置;

报文13:

EAPOL-Logoff

客户端发出EAPOL-LOGOFF信息,请求下线;

●PacketType=2:

表示是EAPOL-Logoff报文,说明客户端主动请求下线;

报文14:

RADIUSAccounting-Request

NAS设备收到SU请求下线的EAPOL-Logoff报文后,向RADIUS发出对该用户停止计费的请求信息;

●RADIUSCode=4:

表示是一个Accounting-Request报文,

●RADIUSAcct-Status-Type=2:

表示是一个计费终止请求,一样成为Accounting-Stop报文;

报文15:

RADIUSAccounting-Response

RADIUS效劳器对终止计费发出响应,通知NAS设备已经终止了对该用户计费;

●RADIUSCode=5:

表示这是Accouning-Response报文;

报文16:

EAP-Failure

NAS向RADIUS效劳器发出Accounting-Stop报文的同时,将NAS端口从头置于非授权状态,清除NAS设备爱惜的一些相关硬件表项,同时向SU发出EAP-Failure报文,通知SU下线;

●EAPCode=4:

说明是一个EAPOL-Failure报文;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1