欢迎来到《FreeRADIUS初学者的指南》
请访问相关 GitHub Page
目录
储备知识
Radius
RADIUS是Remote Access Dial In User Service(远程访问拨入用户服务)的缩写. RADIUS是一个AAA解决方案的一部分
Radius数据包
了解一个RADIUS数据包的格式将会大大帮助理解RADIUS协议. 让我们更细致的查看RADIUS数据包. 我们将会看一个简单的authentication请求. 一个客户端发送一个Access-Request包到服务器. 服务器返回一个Access-Accept包来表示成功.
AVP格式
- Type
- Length
- Value
- Vendor-Specific Attributes(VSAs)(扩展协议)
- Proxying(代理) 和 Realms(领域)
- RADIUS服务器端
- RADIUS客户端
RADIUS其它
安装FreeRADIUS
在Linux服务器上安装FreeRADIUS有两种方法。您可以简单地安装预构建的二进制包,或者从源代码构建和安装FreeRADIUS。本章将向您展示如何同时完成这两项工作。
Authentication
这一章对认证进行了放大。授权和核算将在后面的书中进行。身份验证是一个过程,我们确定某人是否属于他或她声称的那个人。最常用的方法是使用唯一的用户名和密码。
(用户名和密码的来源)Sources of Usernames and Passwords
在已有的章节中,用户的详细信息被保存在用户文件中。然后,FreeRADIUS使用该文件的内容来验证身份验证过程中的凭证。FreeRADIUS很可能是企业设置的一部分,现有用户已经在其他地方创建了。本章将讨论如何利用现有的用户存储。
- 用户存储
- MySQL作为用户存储
- 在FreeRADIUS中合并MySQL数据库
- FreeRADIUS的MySQL安装包
- 准备数据库
- 配置FreeRADIUS
- 连接信息
- 包含SQL配置
- 虚拟服务器
- 测试MySQL用户存储
- 与平面文件相比,SQL的优势
- SQL数据库的其他用途
- 重复用户
- 数据库模式
- 组
- 探索群组使用
- 使用SQL组
- 控制组的使用
- Profiles
Accounting(核算)
这一章是关于会计的。
从NAS模拟核算
NAS:重要的AVPs
FreeRADIUS: pre-accounting section
FreeRADIUS: accounting section
Authorization(授权)
授权是评估请求中信息的过程。此信息可用于对照从文件、数据库或LDAP目录获得的关于用户的信息进行验证。授权发生在身份验证之前,不涉及密码检查。我们可以使用各种逻辑和比较来确定用户是否被授权连接到网络。我们还可以确定他们使用网络的时间或服务质量。这些都是授权的组成部分,本章将对此进行讨论。
使用条件语句
使用条件语句的其他测试
属性和变量(Attributes and variables)
引用属性
变量
实用unlang
在前一章第6章“会计”中,我们介绍了sql_counter模块。此模块用于限制用户每天、每周或每月在网络上花费的时间,但是sql_counter在限制用户的数据使用方面存在问题。
- 限制数据使用
- 使用unlang来创建数据计数器
- 定义自定义属性
- 32位限制
- 使用 perl module
- reset_time.pl
- check_usage.pl
- 在CentOS上安装perl模块
- 更新dictionary文件
- 推荐的dictionary更新方式
- 准备users文件
- 准备数据库
- 向虚拟服务器添加unlang代码
- 测试数据计数器
- 清理