每个 freeradius table 在数据库中存储什么样的数据?

What kind of data each freeradius table store in database?

我有一个项目要创建类似 freeradius 的应用程序,但我不明白每个 table 在数据库中存储的数据类型。有人愿意解释吗?这是 table 的列表:

  1. NAS
  2. radacct
  3. radcheck
  4. radgroupcheck
  5. radgroup 回复
  6. radpostauth
  7. radreply
  8. radusergroup

任何帮助将不胜感激,对不起我的英语

首先您需要阅读 how the user's file works,因为 SQL 模块的逻辑基于此。

默认架构中的 table 用于以下用途:

  • nas - RADIUS 客户端的定义。这些是将与 FreeRADIUS 通信的 NAS(网络访问服务器)的 IP 地址和共享机密。这包含与 clients.conf 文件相同的基本信息。这些是在启动时从 SQL 数据库中读取的,并提供了一种在 FreeRADIUS 实例集群之间共享客户端定义的便捷方式。

  • radpostauth - 这包含身份验证尝试结果的记录。通常它将包含用户名、尝试进行身份验证的时间以及身份验证是否成功。许多人定制这个来记录额外的信息。有些甚至记录不正确的密码以帮助服务台用户(尽管不推荐这样做)。

  • radacct - 这存储 RADIUS 记帐数据。 RADIUS 计费数据描述了一个服务会话。会话通常在身份验证后立即开始,并在用户断开与网络服务的连接(与无线接入点断开连接、拔出以太网电缆等...)或通过 PoD 以管理方式终止时结束 Packet of Disconnect, or a session timer (see the Session-Timeout属性)。 table 存储会话的用户名、连接点和流量统计信息,以及许多其他字段。 并非所有列都对所有部署都有用,因此最好删除不使用的列并适当更新查询。 每个会话只创建一行,并在该会话的生命周期内更新。

  • radcheck - 这与用户文件条目的第一行具有相同的逻辑。它具有检查和控制对,由使用的操作员区分。如果检查对匹配,则向 radreply 查询回复对以添加到回复列表。默认情况下,radcheck 和 radreply 都由用户索引(可以更改)。每个索引值只允许一组 radcheck/radreply 个项目。

  • radreply - 包含在 radcheck 检查项目匹配时要添加的回复对。

  • radusergroup - 包含用户和组之间的映射。如果用户存在映射,将使用与 radcheck 和 radreply 相同的逻辑查询 radgroupcheck 和 radgroupreply tables,主要区别在于正在为组而非用户查找检查和回复项目.当在条件中使用 SQL-Group 属性时,也会使用它。 SQL-Group 是一个神奇的属性,它会导致查询 radusergroup,如果用户是某个组的成员则评估为 true,否则评估为 false。

  • radgroupcheck - 与 radcheck 相同,但按组而不是用户索引。

  • radgroupreply - 与 radreply 相同,但按组而非用户索引。

rlm_sql 的配置文件已拆分。 mods-available/sql 中有主配置文件,mods-config/sql/main/<dialect>/queries.conf

中有 SQL 方言特定文件
  • mods-available/sql 是您设置连接参数的地方(服务器的 IP 地址、端口、凭据、数据库类型)。
  • queries.conf 是您可以更改默认查询和索引值的地方。