1 简介 RADIUS 是一种广泛应用的协议,允许商业机构对访问中央网络服务器上系列服务的远程用户进行认证、授权、计费。协议中提供了完整而详细的基础指导条目。 1.1 AAA AAA模型主要解决这三个问题: xxx? 你可以享受什么服务? 你在享受服务的同时需要做点什么?
Authentication 验证一个人或一台机器的身份的过程; Authorization 使用一系列的规则来限制用户在系统中的行为; Accounting 度量并记录用户在访问期间使用过的资源,可能包括时间、流量等,数据可以用于计费、趋势预测、资源利用率分析等活动。 AAA模型依赖于C/S交互,客户端向服务器请求服务或资源,一般来说角色都比较固定,客户端不作当作服务器,反之亦然。C/S结构能够在要求高可用性和快速响应的环境下提供良好的负载平衡能力。服务器也可以当作一个代理,把请求转发到另外一台服务器上去,对于大型企业的分布式网络来说这是个非常实用的功能。
The agent sequence AAA服务器在终端用户和服务设备之间承担中间人。
终端用户直接连到服务设备,由服务设备向AAA服务器发送请求。
终端用户先从AAA服务器获取一个票据,再向服务设备请求服务。
1.2 RADIUS特征 使用hop-by-hop的安全模型 无状态 支持PAP、CHAP认证 使用MD5作密码隐藏 支持AAA模型 局限性: 某些实现下的安全性,代理模式时数据在每个hop上都是可见的 不支持授权发布后资源的回调处理或重新分配 无状态,不能保持配置参数、事务信息等 大规模系统中性能问题,没有拥塞控制 2 标准 RADIUS要求重发失败的请求; 用户没有耐心来等待几分钟的响应; 无状态 2.2 包的格式 包的格式:
Identifier:一个字节长,标识符,用于自动关联请求与响应。 Length:两个字节长,说明数据包的长度,是code、identifier、length、authenticator、attribute fields的长度总和,有效范围是20~4096。 Authenticator:16字节长,用于验证消息的负载。 包括请求和响应两种类型: 请求中用于Authentication-Request、Accounting-Request中,随机产生。 响应中用于Access-Accept、Access-Reject、Access-Challenge中,算法如下:MD5(Code+ID+Length+RequestAuth+Attributes+Secret) 2.3 包的类型 2 Access-Accept 3 Access-Reject 4 Accounting-Request 5 Accounting-Response 11 Access-Challenge 12 Status-Server (under continued development) 13 Status-Client (under continued development) 255 Reserved 2.4 共享密钥 2.5 属性和值 Attribute Number:属性编号,只传输数字 Attribute Length:属性长度,一定要大于等于3 Value:属性的值,必须包含,即使为空,可以为下列类型: Integer (INT) 整形 Enumerated (ENUM) 枚举 IP Address (IPADDR) IP地址 Character String (STRING) 字符串 Date (DATE) 日期 Binary (BINARY) 二进制
在属性值中包含几个字段: Vendor ID Vendor type Length Value 2.6 认证方式 PAP 使用用户名和密码 CHAP 使用挑战/响应机制 EAP 可扩展的认证框架 其他 目录服务(LDAP、Windows AD、Novell eD)Unix PAM 3 认证、授权 相关包类型 Access-Request Access-Accept Access-Reject Access-Challenge 挑战响应机制过程:
C/S架构 设备间通信安全 可扩展 计费过程 主要是发送Accounting-Request数据包,开始包含Accounting Start信息,还有用户名、服务等,当客户端结束服务后发送一个Accounting Stop的Accounting-Request数据包。
Accounting-Request Accounting-Response 相关属性: Acct-Status-Type Acct-Delay-Time Acct-Input-Octets Acct-Output-Octets Acct-Session-ID Acct-Authentic Acct-Session-Time Acct-Input-Packets Acct-Output-Packets Acct-Terminate-Cause
Value Termination cause 1User Request 2Lost Carrier 3Lost Service 4Idle Timeout 5Session Timeout 6Admin Reset 7Admin Reboot 8Port Error 9NAS Error 10NAS Request 11NAS Reboot 12Port Unneeded 13Port Preempted 14Port Suspended 15Service Unavailable 16Callback 17User Error 18Host Request
本文来自CSDN博客,转载请标明出处: |