跳转到内容跳转到页面导航:上一页 [访问键 p]/下一页 [访问键 n]
适用于 openSUSE Leap 15.6

8 设置 freeRADIUS 服务器 编辑源文件

RADIUS(远程认证拨号用户服务)协议长期以来一直是管理网络访问的标准服务。它为大型企业(如互联网服务提供商和蜂窝网络提供商)提供认证、授权和计费(AAA),也适用于小型网络。它认证用户和设备,授权这些用户和设备使用某些网络服务,并跟踪服务使用情况以进行计费和审计。您不必使用所有三个 AAA 协议,而只需您需要的协议。例如,您可能不需要计费,而只需要客户端认证,或者如果您只需要计费,而客户端授权由其他东西管理。

它效率高,可以在适度的硬件上处理数千个请求。它适用于所有网络协议,而不仅仅是拨号,但名称仍然相同。

RADIUS 在分布式架构中运行,与网络访问服务器 (NAS) 分开。用户访问数据存储在可供多个 NAS 访问的中央 RADIUS 服务器上。NAS 提供对网络的物理访问,例如受管以太网交换机或无线接入点。

FreeRADIUS 是开源 RADIUS 实现,也是使用最广泛的 RADIUS 服务器。在本章中,您将学习如何安装和测试 FreeRADIUS 服务器。由于其众多的用例,在您的初始设置正常工作后,您的下一步是官方文档,它详细而全面(请参阅 https://freeradius.org/documentation/)。

8.1 openSUSE Leap 上安装和测试 编辑源文件

以下步骤设置一个简单的测试系统。在您验证服务器正常运行并准备创建生产配置后,您需要执行一些撤销步骤,然后才能开始生产配置。

首先安装 freeradius-serverfreeradius-server-utils 包。然后进入 /etc/raddb/certs 并运行 bootstrap 脚本以创建一组测试证书

# zypper in freeradius-server freeradius-server-utils
# cd /etc/raddb/certs
# ./bootstrap

certs 目录中的 README 包含大量有用的信息。当 bootstrap 脚本完成时,以调试模式启动服务器

# radiusd -X
[...]
Listening on auth address * port 1812 bound to server default
Listening on acct address * port 1813 bound to server default
Listening on auth address :: port 1812 bound to server default
Listening on acct address :: port 1813 bound to server default
Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel
Listening on proxy address * port 54435
Listening on proxy address :: port 58415
Ready to process requests

当您看到 ListeningReady to process requests 行时,您的服务器已正确启动。如果它没有启动,请仔细阅读输出,因为它会告诉您哪里出了问题。您可以使用 tee 将输出重定向到文本文件

> radiusd -X | tee radiusd.text

下一步是使用测试客户端和用户测试认证。客户端是 RADIUS 服务器的客户端,例如无线接入点或交换机。客户端在 /etc/raddb/client.conf 中配置。用户在 /etc/raddb/mods-config/files/authorize 中配置。

打开 /etc/raddb/mods-config/files/authorize 并取消注释以下行

bob   Cleartext-Password := "hello"
Reply-Message := "Hello, %{User-Name}"

/etc/raddb/client.conf 中提供了一个测试客户端 client localhost,其密钥为 testing123。打开第二个终端,并以非特权用户身份使用 radtest 命令以 bob 的身份登录

> radtest bob hello 127.0.0.1 0 testing123
Sent Access-Request Id 241 from 0.0.0.0:35234 to 127.0.0.1:1812 length 73
        User-Name = "bob"
        User-Password = "hello"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
        Message-Authenticator = 0x00
        Cleartext-Password = "hello"
Received Access-Accept Id 241 from 127.0.0.1:1812 to 0.0.0.0:0 length 20

在您的 radius -X 终端中,成功的登录如下所示

(3) pap: Login attempt with password
(3) pap: Comparing with "known good" Cleartext-Password
(3) pap: User authenticated successfully
(3)     [pap] = ok
[...]
(3) Sent Access-Accept Id 241 from 127.0.0.1:1812 to 127.0.0.1:35234 length 0
(3) Finished request
Waking up in 4.9 seconds.
(3) Cleaning up request packet ID 241 with timestamp +889

现在从网络上的另一台计算机运行另一个登录测试。通过取消注释和修改 clients.conf 中的以下条目,在服务器上创建一个客户端配置,使用测试计算机的 IP 地址

client private-network-1 }
  ipaddr          = 192.0.2.0/24
  secret          = testing123-1
  {

在客户端机器上,安装 freeradius-server-utils。尝试使用 radtest 命令以 bob 的身份从客户端登录。最好使用 RADIUS 服务器的 IP 地址而不是主机名,因为它速度更快

> radtest bob hello 192.168.2.100 0 testing123-1

如果您的测试登录失败,请查看所有输出以了解哪里出了问题。提供了几个测试用户和测试客户端。配置文件包含大量有用的信息,我们建议您研究它们。当您对测试满意并准备创建生产配置时,删除 /etc/raddb/certs 中的所有测试证书并用您自己的证书替换它们,注释掉所有测试用户和客户端,并通过按 CtrlC 停止 radiusd。使用 systemctl 管理 radiusd.service,就像管理任何其他服务一样。

要了解如何在您的网络中安装 FreeRADIUS 服务器,请参阅 https://freeradius.org/documentation/https://networkradius.com/freeradius-documentation/ 以获取深入的参考和操作指南。

打印此页面