RADIUS协议原理及应用Word格式.docx
- 文档编号:19357363
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:19
- 大小:4.52MB
RADIUS协议原理及应用Word格式.docx
《RADIUS协议原理及应用Word格式.docx》由会员分享,可在线阅读,更多相关《RADIUS协议原理及应用Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
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;
长度域长度为一个字节,指明了一个属性的类型、长度和值域的总长度。
如果在认证请求报文中携带有属性长度非法的属性,则必须回应访问拒绝报文;
如果在访问回应报文中存在非法的属性长度,这个报文必须被直接丢弃或被认为是访问拒绝报文。
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:
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:
NAS设备收到SU请求下线的EAPOL-Logoff报文后,向RADIUS发出对该用户停止计费的请求信息;
表示是一个Accounting-Request报文,
●RADIUSAcct-Status-Type=2:
表示是一个计费结束请求,一般成为Accounting-Stop报文;
报文15:
RADIUS服务器对结束计费发出响应,通知NAS设备已经结束了对该用户计费;
表示这是Accouning-Response报文;
报文16:
EAP-Failure
NAS向RADIUS服务器发出Accounting-Stop报文的同时,将NAS端口重新置于非授权状态,清除NAS设备维护的一些相关硬件表项,同时向SU发出EAP-Failure报文,通知SU下线;
●EAPCode=4:
说明是一个EAPOL-Failure报文;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RADIUS 协议 原理 应用