好记性不如铅笔头

网络通讯

RADIUS协议简单笔记

参考
无线局域网中RADIUS协议原理与实现 】 
远端用户拨入验证服务 】 
RADIUS协议基础原理

远程认证拨号用户服务协议(Remote Authentication Dial In User Service, RADIUS)最初是由Livingston公司提出的一个为拨号用户提供认证和计费的协议。后经多次改进,逐渐成为一项通用的网络认证、计费协议,并定义于IETF提交的RFC2865和RFC2866文件中。RADIUS协议以Client/Server方式工作,客户端为网络接入服务器(NAS),它向RADIUS服务器提交认证、计费等信息,RADIUS服务器处理信息并将结果返回给NAS。

RADIUS协议的应用范围很广,在移动、数据、智能网等业务的认证、计费系统中都有所应用。无线局域网的802.1X认证框架中,在认证端也建议使用RADIUS协议。

 WLAN网络模型
无线局域网的认证端由RADIUS服务器、网络接入服务器(NAS)和数据库组成。其中:
NAS:作为RADIUS服务器的客户端,向RADIUS服务器转交用户的认证信息。并在用户通过认证之后,向RADIUS服务器发送计费信息。
RADIUS服务器:作为认证系统的中心服务器,它与NAS、数据库相连,它接受来自NAS提交的信息,对数据库进行相应的操作,并把处理结果返回给NAS。
数据库:用于保存所有的用户信息、计费信息和其他信息。用户信息由网络管理员添加至数据库中;计费信息来自于RADIUS服务器;其他信息包括日志信息等。

RADIUS的数据包结构
RADIUS是应用层的协议,在传输层它的报文被封装在UDP的报文中,进而封装进IP包。RADIUS认证使用1812端口,计费使用1813端口。

RADIUS的认证、计费过程
(1)申请者登录网络时,NAS会有一个客户定义的Login提示符要求申请者输入用户信息(用户名和口令),申请者输入相关的认证信息后,等待认证结果。
(2)NAS在得到用户信息后,将根据RADIUS的数据包格式,向RADIUS服务器发出“接入请求”(Access-Request)包。包中一般包括以下RADIUS属性值:用户名、用户口令、访问服务器的ID、访问端口的ID。
(3)当RADIUS服务器收到“接入请求”包后,首先验证NAS的共享密码与RADIUS服务器中预先设定的是否一致,以确认是所属的RADIUS客户端。在查验了包的正确性之后,RADIUS服务器会依据包中的用户名在用户数据库中查询是否有此用户记录。如果用户信息不符合,就向NAS发出“接入拒绝”(Access-Reject)包。NAS在收到拒绝包后,会立即停止用户连接端口的服务要求,用户被强制退出。
(4)如果用户信息全部符合,服务器向NAS发出“接入质询”包(Access-Challenge),对用户的登录请求作进一步的验证。其中包括:用户口令、用户登录访问服务器的IP、用户登录的物理端口号等。NAS收到“接入质询”包后,将消息显示给用户,要求用户进一步确认登录请求。用户再次确认后,RADIUS服务器将比较两次的请求信息,决定如何响应用户(发送Access-Accept、Access-Reject或再一次的Access-Challenge)。
(5)当所有的验证条件和握手会话均通过后,RADIUS服务器会将数据库中的用户配置信息放在“接入接受”(Access-Accept)包中返回给NAS,后者会根据包中的配置信息限定用户的具体网络访问能力。包括服务类型:SLIP、PPP、Login User、Rlogin、Framed、Callback等等。还包括与服务类型相关的配置信息:IP地址、时间限制等等。
(6)在所有的验证、授权完成后,局域网交换机的控制端口被打开。用户可以通过交换机进入网络。同时,NAS向RADIUS服务器发送 “计费请求开始”包(Accounting-Request Start),通知RADIUS服务器开始计费。当用户下网时,NAS向RADIUS服务器发送“计费请求结束”包(Accounting-Request Stop),RADIUS服务器根据计费包的信息计算用户使用网络的费用。

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

Leave a Reply

7 + 2 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据