如何在 Ubuntu 24.04 上安装 FreeRADIUS 与 PostgreSQL 教程
简介
FreeRADIUS 是一个流行的开源 RADIUS(Remote Authentication Dial-In User Service)应用程序,用于通过用户认证、授权和计费服务(AAA)管理网络访问。当你安装 FreeRADIUS 时,它会与数据库引擎(如 PostgreSQL)集成,以实现集中式用户管理。
本文将指导你如何在 Linux 服务器上安装并配置 FreeRADIUS 与 PostgreSQL,以创建一个可靠的 RADIUS 解决方案。
准备工作
服务器准备
必要前提:
- 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。
我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。
注册链接: https://www.rainyun.com/NTE2NDM3_
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
- 点击 云产品 → 云服务器 → 立即购买。
- 选择距离你较近的区域,以保证低延迟。
- 按照自己需求选择配置,选择 Ubuntu 24.04 版本,按照自己需求是否预装 Docker。
- 最后按照提示进行购买。
- 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
- 我们使用
PowerShell
进行SSH
远程连接到服务器,Win+R
打开运行窗口,输入powershell
后点击确定。
- 到此为止,我们的云服务器就远程连接上了。
安装和配置步骤
第一步:安装 FreeRADIUS
FreeRADIUS 在 Ubuntu 的默认软件包仓库中可用。按照以下步骤在你的服务器上安装 FreeRADIUS 和 PostgreSQL 插件。
$ sudo apt-get install freeradius freeradius-postgresql
第二步:检查 FreeRADIUS 版本
输出:
radiusd: FreeRADIUS Version 3.2.3, for host x86_64-pc-linux-gnu, built on Mar 31 2024 at 05:22:45
FreeRADIUS Version 3.2.3
Copyright (C) 1999-2022 The FreeRADIUS server project and contributors
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE
You may redistribute copies of FreeRADIUS under the terms of the
GNU General Public License
For more information about these matters, see the file named COPYRIGHT
第三步:为 FreeRADIUS 配置 PostgreSQL 数据库模式
FreeRADIUS 需要一个特定的模式来与数据库服务器(如 PostgreSQL)一起工作。按照以下步骤创建一个新的模式文件,其中包含与 PostgreSQL 一起使用的默认表和字段。
- 在系统范围内的位置(如
/opt
)创建一个新的freeradius_schema.sql
模式文件。
$ sudo touch /etc/freeradius_schema.sql
- 使用文本编辑器(如
nano
)编辑文件。
$ sudo nano /etc/freeradius_schema.sql
- 将以下数据库模式添加到文件中。
/*
*
* PostgreSQL schema for FreeRADIUS
*
*/
(此处省略了原文中的 SQL 模式内容,以保持简洁)
- 保存并关闭文件。
以上模式为 FreeRADIUS 创建了以下数据库表:
radcheck
:存储用户特定的认证属性,如用户名和密码。radreply
:存储认证成功后的回复属性,如会话限制和 IP 分配。radgroupcheck
:存储组特定的认证属性。radgroupreply
:存储组特定的认证成功后的回复属性。radusergroup
:将用户与组关联。例如,将用户 A
映射到VIP Wi-Fi
组。radacct
:存储用户与网络交互的会计记录。例如,会话开始时间、数据使用量、停止时间和其他使用指标。radpostauth
:记录成功和失败的认证尝试,包括用户名、时间戳和认证响应。nas
:存储向 FreeRADIUS 服务器发送认证、授权和计费请求的网络访问服务器(NAS)的信息。nasreload
:使 NAS 配置能够动态重新加载到 FreeRADIUS 内存中。
第四步:配置 FreeRADIUS 以使用 PostgreSQL
按照以下步骤配置 FreeRADIUS 以与 PostgreSQL 数据库服务器一起工作。
- 通过在
mods-enabled
配置目录中创建符号链接来启用 FreeRADIUS SQL 模块。
$ sudo ln -s /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-enabled/
- 打开默认的 FreeRADIUS 配置文件。
$ sudo nano /etc/freeradius/3.0/sites-available/default
- 找到以下
-sql
指令并移除-
符号以启用 SQL 指令。
# See "Authorization Queries" in mods-available/sql
-sql
- 打开
/sites-available/inner-tunnel
文件。
$ sudo nano /etc/freeradius/3.0/sites-available/inner-tunnel
- 找到以下 SQL 指令并移除
-
或#
符号以启用每个指令。
# See "Simultaneous Use Checking Queries" in `mods-config/sql/main/$driver/queries.>
# sql
# See "Authentication Logging Queries" in `mods-config/sql/main/$driver/queries.con>
-sql
(此处省略了原文中的其他配置步骤,以保持简洁)
第五步:测试 FreeRADIUS 与 PostgreSQL 的集成
按照以下步骤测试 FreeRADIUS 与 PostgreSQL 的集成。你将使用之前在 radcheck
表中创建的测试用户 kiki
来认证本地服务器,以验证 FreeRADIUS 是否成功从数据库读取数据。
- 停止 FreeRADIUS 系统服务。
$ sudo service freeradius stop
- 以调试模式启动 FreeRADIUS 作为后台进程,以查看详细的处理信息。
$ sudo /usr/sbin/freeradius -X &
(此处省略了原文中的其他测试步骤,以保持简洁)
结尾
你已经安装并配置了 FreeRADIUS 与 PostgreSQL,以在服务器上启用实时认证。你可以使用 FreeRADIUS 执行用户认证和授权任务。此外,你还可以使用基于组的访问控制,通过在 PostgreSQL 中使用 RadGroupCheck 和 RadGroupReply 表来存储特定用户组的属性检查。安装 FreeRADIUS 后,你将拥有更多的配置选项;请访问 FreeRADIUS 文档。
雨云 - 新一代云服务提供商: https://www.rainyun.com/NTE2NDM3_