radius报文

Zss 发表于:

最近在测试wpa的认证的时候出现了一些认证失败的情况,抓包分析radius报文,发现拒绝接入,然而不是密码错误的问题,最后还是的查看radius服务器的log,于是总结一下基本的radius报文格式

radius主要用来一个身份的验证及其计费,使用的传输协议是UDP,采用的C/S结构,属于应用层的一个协议

还有一个名字AAA服务器,AAA是认证(Authentication)、授权(Authorization)和计费(Accounting)

客户端向服务端发起认证请求,服务端给予认证的信息的回复

 

基本的流程:

1.客户端向RADIUS服务器使用Access-Request数据包,其中包含用户信息,包括用户名、密码等相关信息,当然其中用户密码是经过MD5加密的

2.RADIUS服务器对用户名和密码的合法性进行检验,必要时可以提出一个Challenge,要求进一步对用户认证

3.如果合法,给客户端返回Access-Accept数据包,对用户开始计费,否则返回Access-Reject数据包,拒绝用户访问

使用的端口为1812认证,1813计费

 

包结构:

(1)Code:1个字节,用于区分RADIUS包的类型:常用类型有:

接入请求(Access-Request),Code=1;接入允许(Access-Accept),Code=2;接入拒绝(Access-Reject),Code=3;计费请求(Accounting-Request),Code=4等。

(2)Identifier:一个字节,用于请求和应答包的匹配。

(3)Length:两个字节,表示RADIUS数据区(包括Code, Identifier, Length, Authenticator, Attributes)的长度,单位是字节,最小为20,最大为4096。

(4)Authenticator:16个字节,用于验证服务器端的应答,另外还用于用户口令的加密。RADIUS服务器和NAS的共享密钥(Shared Secret)与请求认证码(Request Authenticator)和应答认证码(Response Authenticator),共同支持发、收报文的完整性和认证。另外,用户密码不能在NAS和RADIUS 服务器之间用明文传输,而一般使用共享密钥(Shared Secret)和认证码(Authenticator)通过MD5加密算法进行加密隐藏。

(5)Attributes:不定长度,最小可为0个字节,描述RADIUS协议的属性,如用户名、口令、IP地址等信息都是存放在本数据段。

 

Code:代表着这个radius包属性,是请求呢?还是拒绝连接?还是允许呢。。。

Code=1 Access-Request   认证请求

Code=2 Access-Accept   认证接受

Code=3 Access-Reject   认证拒绝

Code=4 Accounting-Request   计费请求

Code=5 Accounting-Response   计费回应

Code=11 Access-Challenge   计费成功,访问质询

Code=12 Status-Server (experimental)

Code=13 Status-Client (experimental)

Code=65 业务修改请求消息

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

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

Code=255 Reserved

一般常见的为1 2 3 4 5 11比较常见,分别标明报文类型为认证请求、认证接受、认证拒绝、计费请求、计费回应、计费成功和访问质询

 

分层:

数据链路层(mac)–>传输层(udp)–>网络层(ip)–>应用层(radius)

 

标准属性:(https://www.jianshu.com/p/c6db12b4171a

1  User-Name需要进行认证的用户名。可以采用带域名的”纯用户名@域名”格式,也可以采用不带域名的”纯用户名”格式。

2  User-Password需要进行认证的用户密码,仅对PAP(Password Authentication Protocol)认证有效。

3  CHAP-Password需要进行认证的用户密码,仅对CHAP(Challenge Handshake Authentication Protocol)认证有效。

4  NAS-IP-Address NAS设备发送的认证请求报文中携带的设备IP(Internet Protocol)地址。如果RADIUS服务器绑定了接口地址,则取绑定的接口地址,否则取发送报文的接口地址。

5  NAS-Port  用户接入的物理端口号,可根据实际需要转换成不同格式:

“new”模式:槽位号(8位)+子槽位号(4位)+端口号(8位)+VLAN(Virtual Local Area Network ) ID(12位)。

“old”模式,槽位号(12位)+端口号(8位)+VLAN ID(12位)。

6  Service-Type用户申请认证的业务类型:

2(Framed):PPP或802.1x普通接入用户。

5(Outbound):Web网管用户。

10(Call Check):MAC认证用户和MAC旁路认证用户。

7 Framed-Protocol  用户Frame类型业务的封装协议:

对于非管理员用户,Framed-Protocol的值固定为1。

对于管理员用户,Framed-Protocol的值固定为6。

8 Framed-IP-Address 用户的IP地址。

11  Filter-Id   用户组或者用户的ACL(Access Control List) ID。RADIUS报文中只能携带ACL ID或用户组名中的一种,不能同时携带。

说明:Filter-id属性只能携带3000~3999范围内的ACL ID。

12  Framed-MTU用户与NAS之间数据链路的MTU值。例如在802.1X的EAP(Extensible Authentication Protocol)方式认证中,NAS通过Framed-MTU值指示Server发送EAP报文的最大长度,防止EAP报文大于数据链路MTU导致的报文丢失。

14 Login-IP-Host 管理用户的IP地址,

如果该属性取值为0或0xFFFFFFFF,表示不对管理用户的IP地址进行检查。

如果该属性取值为其他值,表示需要检查管理用户的IP地址和通过这个属性下发的地址是否一致。

15 Login-Service管理用户可以使用的服务类型:

0:telnet。

5:X25-PAD。

50:SSH。

51:FTP。

52:Terminal。

说明:一个属性中可以包含多个服务类型。

18 Reply-Message认证成功或拒绝消息:

当该属性用于认证接受报文时,表示成功消息。

当该属性用于认证拒绝报文时,表示拒绝消息。

19  Callback-Number认证服务器回应的可以显示给用户的信息,例如移动电话号码等。

24 State 如果RADIUS服务器发送给设备的认证挑战报文中包含该属性值,则设备在后续的认证请求报文中必须包含相同的值。

25 Class如果RADIUS服务器发送给NAS设备的认证接受报文中包含该属性值,则NAS在后续发送的所有计费请求报文中必须包含相同的值