本页内容
- 准备工作
- 设置 FQDN 与时区
- 配置 Firewalld
- 安装并配置 FreeIPA 服务器
- Kerberos 管理员认证与 FreeIPA Web UI 仪表盘
- 创建首个 FreeIPA 用户与组
- 将主机添加到 FreeIPA 服务器:Rocky Linux 添加 DNS 记录 设置 FQDN、/etc/hosts 与解析器 安装并配置客户端
- 通过 FreeIPA 用户登录客户端
- 结论
- 添加 DNS 记录
- 设置 FQDN、/etc/hosts 与解析器
- 安装并配置客户端
FreeIPA 是一套面向 Linux/Unix 操作系统的开源身份管理解决方案。它是红帽身份管理系统(RedHat Identity Management System)的上游项目,为 Linux/Unix 系统提供认证与授权解决方案。
FreeIPA 构建在多个组件之上,包括 Directory Server、DNS、Kerberos、PKI、Certmonger、NTP Server、Web 管理界面等。它提供集中的用户凭证与访问控制来源。FreeIPA 让管理员能够在集中式环境中轻松管理身份,并提供用户监控、认证与访问控制。
在本教程中,你将在 Rocky Linux 9 服务器上安装并配置 FreeIPA。你将安装 FreeIPA 服务器软件包并完成 FreeIPA 部署。随后你还将创建一个 FreeIPA 用户。最后,你还将学习如何在 Rocky Linux 主机上安装并配置 FreeIPA 客户端,并将其加入到 FreeIPA 服务器。
准备工作
要完成本教程,你必须满足以下要求:
在开始之前,你必须确保已满足以下要求:
- 两台或更多 Rocky Linux 9 服务器——本教程中使用两台 Rocky Linux 主机分别作为 FreeIPA 服务器和 FreeIPA 客户端。
- 一个具有 sudo/root 管理员权限的非 root 用户。
- SELinux 运行在 permissive(宽松)模式。
在本演示中,我们将使用两台 Rocky Linux 9 服务器,详细信息如下:
Hostname IP Address Used as -------------------------------------------- ipa 192.168.5.25 FreeIPA Server client 192.168.5.80 FreeIPA Client
当这些要求就绪后,你就可以开始安装 FreeIPA 了。
设置 FQDN 与时区
在本教程中,你首先需要为 FreeIPA 服务器设置 FQDN(完全限定域名)与默认时区。
执行以下 hostnamectl 命令来设置系统的 fqdn。在本示例中,FreeIPA 服务器的 fqdn 应为 'ipa.hwdomain.lan'。
sudo hostnamectl set-hostname ipa.hwdomain.lan
现在使用以下 nano 编辑器命令打开 '/etc/hosts' 文件。
sudo nano /etc/hosts
将以下一行添加到文件中,并务必将主机名、fqdn 和 IP 地址替换为你自己的 FreeIPA 服务器信息。
# ip - fqdn - hostname 192.168.5.25 ipa.hwdomain.lan ipa
完成后保存并关闭文件。
接着,执行以下命令来验证系统的 fqdn,并确保 fqdn 解析到你的内网 IP 地址。
sudo hostname -f
sudo ping -c3 ipa.hwdomain.lan
成功后,你应该能看到 fqdn 指向服务器的内网 IP 地址。在本示例中,fqdn 'ipa.hwdomain.lan' 指向 IP 地址 '192.168.5.25'。

现在执行以下 timedatectl 命令来为服务器设置默认时区。在本示例中,FreeIPA 服务器将使用 'Europe/Stockholm' 时区。
sudo timedatectl set-timezone Europe/Stockholm
现在执行以下命令,将服务器的 '/etc/localtime' 文件设置为正确的时区。时区文件列表存放在 '/usr/share/timezone/' 目录中,你需要为对应的时区文件创建指向 '/etc/localtime' 的符号链接。
sudo unlink /etc/localtime
sudo ln -s /usr/share/timezone/Europe/Stockholm /etc/localtime

配置好 fqdn 与时区后,接下来你将配置 firewalld 并开放 FreeIPA 服务器要使用的一些端口。
配置 Firewalld
在基于 RHEL 的发行版中,默认安装的防火墙软件是 firewalld,它会自动启动并运行。在本节中,你将把 FreeIPA 服务以及 NTP、DNS 等一些附加服务添加到 firewalld 中。
执行以下 firewall-cmd 命令,将 FreeIPA、DNS 和 NTP 添加到 firewalld。然后重新加载 firewalld 以应用更改。出现 'success' 输出即表示操作成功。
sudo firewall-cmd --add-service={freeipa-ldap,freeipa-ldaps,dns,ntp,http,https,kerberos} --permanent
sudo firewall-cmd --reload
接下来,运行以下命令来验证 firewalld 的状态以及已启用的服务和端口列表。
sudo firewall-cmd --list-all
你应该会看到类似如下的输出——FreeIPA 服务、NTP 和 DNS 已添加到 firewalld。

至此你已经配置好了 fqdn、时区和 firewalld,现在可以通过 DNF 包管理器开始安装 FreeIPA 服务器了。
安装并配置 FreeIPA 服务器
在最新的 Rocky Linux 9 上,FreeIPA 服务器默认已在 'appstream' 仓库中可用。因此你无需添加第三方仓库即可安装 FreeIPA 服务器软件包。
在本节中,你将安装 FreeIPA 服务器,然后通过 FreeIPA 软件包提供的命令行工具 ipa-server-install 完成交互式 FreeIPA 部署。
执行以下 dnf install 命令来安装 FreeIPA 服务器、FreeIPA DNS 和 FreeIPA 客户端软件包。出现提示时,输入 y 确认并按 ENTER 继续。
sudo dnf install freeipa-server freeipa-server-dns freeipa-client

FreeIPA 安装完成后,执行以下 ipa-server-install 命令来启动 FreeIPA 服务器的交互式部署。在本示例中,你将使用 '--setup-dns' 参数,该参数还会在 FreeIPA 服务器上安装 DNS 服务器。
sudo ipa-server-install --setup-dns
在接下来的输出中,你应该会看到为设置并配置 FreeIPA 服务器而要执行的任务列表。

首先,ipa-server-install 会验证系统的 fqdn,并确保服务器 fqdn 指向正确的 IP 地址(通过 DNS 或 /etc/hosts)。在本示例中,fqdn 'ipa.hwdomain.lan' 是通过 /etc/hosts 文件配置的,因此可以直接进行。
关于默认域名和 realm 名称,二者都会跟随主机的 fqdn。因此,fqdn 'ipa.hwdomain.lan' 对应的默认域名为 'hwdomain.lan',realm 名称为 'HWDOMAIN.LAN'。
按 ENTER 使用主机名(fqdn)、域名和 realm 名称的默认值。

现在为 Directory Manager 和 IPA admin 用户设置一个新密码。请确保使用超过 8 个字符的强密码。

接下来,系统会要求你设置 FreeIPA 服务器的默认 DNS 转发器,以及 FreeIPA 服务器 IP 地址的反向 DNS(rDNS)。按 ENTER 确认这两项设置的默认配置。
NetBIOS 域名配置保持默认并按 ENTER。对于 NTP 设置,输入 no。

现在查看 FreeIPA 服务器的基本设置,然后输入 'yes' 确认并按 ENTER 开始安装。

FreeIPA 服务器安装成功后,你应该会看到类似 'Setup complete - The ipa-server-install command was successful' 的输出。你还会看到后续步骤的提示,包括设置防火墙开放某些端口,以及如何为管理员获取 Kerberos 票据。

至此,你已经通过 ipa-server-install 完成了 FreeIPA 服务器的基本配置。下一步,你将针对 Kerberos 进行认证并获取 admin 票据,以便从终端配置 FreeIPA。
Kerberos 管理员认证与 FreeIPA Web UI 仪表盘
通过 ipa-server-install 配置好 FreeIPA 服务器后,你现在将通过从 Kerberos 获取 admin 票据并登录 FreeIPA Web 管理仪表盘来验证 FreeIPA 安装。
执行以下 kinit 命令,通过 admin 用户向 Kerberos 服务器进行认证。系统要求输入密码时,请输入你的 IPA admin 密码。
kinit admin
现在执行以下 klist 命令来验证认证状态并列出已获取的 Kerberos 票据。
klist
如果 Kerberos 认证成功,你应该会看到默认主体 '[email protected]' 的缓存票据输出,如下图所示。

接下来,你将通过本地机器访问管理仪表盘来验证 FreeIPA 服务器。开始之前,请通过以下 nano 编辑器命令打开本地计算机上的 '/etc/hosts' 文件。
sudo nano /etc/hosts
将以下一行添加到文件中,并务必将域名 IP 地址替换为你自己的 FreeIPA 服务器信息。
# ip - domain 192.168.5.25 ipa.hwdomain.lan ipa
完成后保存并关闭文件。
接下来,打开你的 Web 浏览器并访问 FreeIPA 服务器域名(例如:https://ipa.hwdomain.lan/)。你应该会看到 FreeIPA 登录页面。
输入默认用户 admin 和你的 FreeIPA 密码,然后点击 'Log in'。

如果成功,你应该会进入类似下图的 FreeIPA Web 管理仪表盘。

至此,你已经在 Rocky Linux 9 上成功安装并配置了 FreeIPA 服务器。下一步,你将学习如何通过终端添加新用户和组来管理 FreeIPA 服务器,然后使用 FreeIPA 客户端软件包添加一台新的 Linux 主机。
创建首个 FreeIPA 用户与组
在本节中,你将学习如何使用 ipa 命令管理用户和组。你将使用带有不同参数的 ipa 命令来创建用户、查看用户列表、创建组、查看组列表,以及将 FreeIPA 用户添加到特定组。最后,你将通过 FreeIPA 管理仪表盘验证用户和组列表。
执行以下 ipa config-mod 命令,将 FreeIPA 用户的默认 shell 修改为 '/bin/bash'。执行该命令时,还会打印出 FreeIPA 的其他默认用户设置。
ipa config-mod --defaultshell=/bin/bash
以下是终端将打印出的类似输出。

接下来,执行以下 ipa user-add 命令来添加一个新 FreeIPA 用户。在本示例中,你将创建一个新用户 'rocky'。系统提示输入密码时,请输入并确认该用户的新密码。
ipa user-add rocky --first=Rocky --last=Linux --password

现在执行下面的 ipa user-find 命令来验证用户 'rocky' 的详情。当你看到用户 'rocky' 的详细信息时,表明你已成功创建了 FreeIPA 用户。
ipa user-find rocky

你也可以使用 ipa user-show 命令来显示 FreeIPA 用户的详细信息。
ipa user-show --raw rocky
输出:

接下来,执行以下 ipa group-add 命令来创建一个名为 'development' 的新组。然后,通过 ipa group-find 命令验证该组,以确保组已创建。
ipa group-add --desc='Development Team' development
ipa group-find development
出现 '1 group matched' 的输出,确认组 'development' 已添加并在 FreeIPA 服务器上可用。

现在执行以下 ipa group-add-member 命令,将 FreeIPA 用户 'rocky' 添加到组 'development' 中。
ipa group-add-member --user=rocky development
出现 'Number of members added 1' 的输出,确认用户 'rocky' 已添加到组 'development'。

现在回到 FreeIPA 管理仪表盘,点击 'Identity' 菜单,再点击 'Users' 选项卡。你现在应该能看到新创建的 FreeIPA 用户 'rocky' 已存在于 FreeIPA 服务器上。

最后,点击 'Groups' 选项卡来验证 FreeIPA 上的组列表。新组 'development' 已存在于 FreeIPA 服务器上。点击组 'development' 查看详细信息,你应该能看到用户 'rocky' 已添加并属于 'development' 组。

至此,你已经通过 ipa 命令管理工具从终端创建了一个 FreeIPA 用户和组,并且通过 FreeIPA Web 管理仪表盘验证了用户和组已添加。下一步,你将学习如何向 FreeIPA 服务器添加一台 Linux 主机。
将主机添加到 FreeIPA 服务器:Rocky Linux
FreeIPA 提供了向 FreeIPA 服务器添加新主机的最简便方式,可通过 FreeIPA 客户端软件包提供的 ipa-client-install 工具来完成。在本节中,你将把一台 Rocky Linux 9 机器添加到 FreeIPA 服务器 'ipa.hwdomain.lan'。
以下是将新主机添加到 FreeIPA 服务器所需执行的步骤:
- 在 FreeIPA 服务器上添加主机 DNS 记录
- 配置 /etc/hosts 文件与 /etc/resolv.conf 文件
- 安装 FreeIPA 客户端并通过 ipa-client-install 添加主机
现在让我们开始将 Rocky Linux 主机添加到 FreeIPA 服务器。
添加 DNS 记录
首先,你必须将客户端机器的 DNS 记录添加到 FreeIPA 服务器。这可以通过在 FreeIPA 服务器上执行 ipa dnsrecord-add 命令来完成。
执行以下 ipa dnsrecord-add 命令,为主机 'client' 添加一个 IP 地址为 '192.168.5.80' 的新 DNS 记录。这样一来,客户端机器将拥有域名 'client.hwdomain.lan'。
在本示例中,你将为名为 'client'、IP 地址为 '192.168.5.80' 的主机定义 A 记录。域名 'hwdomain.lan' 跟随你 FreeIPA 服务器的默认域名。
ipa dnsrecord-add hwdomain.lan client --a-rec 192.168.5.80
现在执行下面的 ipa dnsrecord-find 命令来验证 DNS 记录 'client'。你应该能看到 'client' 机器的 A 记录解析到 IP 地址 '192.168.5.80'。
ipa dnsrecord-find hwdomain.lan client

最后,执行以下 dig 命令来验证客户端机器 'client.hwdomain.lan' 的 DNS 域名。
dig client.hwdomain.lan
如果成功,你应该会看到类似如下的输出——客户端机器域名 'client.hwdomain.lan' 指向服务器 IP 地址 '192.168.5.80'。

至此,你已准备好配置 'client' 机器并将其添加到 FreeIPA 服务器。
设置 FQDN、/etc/hosts 与解析器
现在连接到 'client' 机器,在安装 FreeIPA 客户端软件包之前先完成基本系统设置。
在本节中,你将配置 '/etc/hosts' 文件并定义 FreeIPA 服务器的域名和 IP 地址。然后,你将修改 '/etc/resolv.conf' 文件,使用 FreeIPA 服务器的 DNS 解析器来设置 'client' 机器的默认 DNS 解析器。这将确保客户端机器能够通过域名访问 FreeIPA 服务器。
执行以下 nano 编辑器命令打开 '/etc/hosts' 文件。
sudo nano /etc/hosts
将以下行添加到文件中,并务必将 IP 地址和域名替换为你自己的 FreeIPA 服务器信息。
# ip - fqdn/domain - hostname 192.168.5.25 ipa.hwdomain.lan ipa
完成后保存并退出文件。
接下来,使用以下 nano 编辑器命令打开 '/etc/resolv.conf' 文件。
sudo nano /etc/resolv.conf
将以下一行添加到文件顶部,并务必将 IP 地址替换为你自己的 FreeIPA 服务器 IP 地址。
# list resolver nameserver 192.168.5.25
完成后保存并关闭文件。
最后,执行以下 ping 命令来验证 FreeIPA 服务器域名和客户端机器域名。
ping -c3 ipa.hwdomain.lan
ping -c3 client.hwdomain.lan
你应该会看到类似如下的输出——FreeIPA 服务器域名 'ipa.hwdomain.lan' 指向 IP 地址 '192.168.5.25',正如 '/etc/hosts' 文件中所定义。
而客户端机器域名 'client.hwdomain.lan' 指向正确的 IP 地址 '192.168.5.80',该地址由 FreeIPA DNS 服务器配置,这确认了你的 DNS 解析器设置正确无误。

至此,你已准备好安装 FreeIPA 客户端软件包并将客户端机器添加到 FreeIPA 服务器。
安装并配置客户端
首先,执行以下 dnf install 命令来安装 FreeIPA 客户端软件包以及附加软件包 'oddjob-mkhomedir'。出现提示时,输入 y 确认并按 ENTER 继续。
sudo dnf install freeipa-client oddjob-mkhomedir

安装完成后,执行以下 ipa-client-install 命令将客户端机器添加到 FreeIPA 服务器。务必将参数 '--server=ipa.hwdomain.lan' 替换为你自己的 FreeIPA 服务器,同时替换 '--domain hwdomain.lan' 和 '--realm HWDOMAIN.LAN' 参数。
ipa-client-install --hostname=`hostname -f` \
--mkhomedir \
--server=ipa.hwdomain.lan \
--domain hwdomain.lan \
--realm HWDOMAIN.LAN
输入 'yes' 以采用 FreeIPA 服务器详情的固定值。对于 NTP 服务器设置,输入 'no'。

现在查看客户端配置,然后输入 'yes' 确认。

现在系统会提示你向 Kerberos 服务器进行用户认证。这是必需的,因为在向 FreeIPA 服务器添加新主机时必须缓存 Kerberos 票据。
输入默认用户 'admin' 并输入你的密码。成功后,你应该会看到类似如下的输出——流程现在开始。

流程完成后,你应该会看到类似 'Client configuration complete - The ipa-client-install command was successful' 的输出。

至此,你已经通过 FreeIPA 客户端软件包提供的 ipa-client-install 工具将一台 Rocky Linux 客户端机器添加到了 FreeIPA 服务器。现在你也可以使用已添加的 FreeIPA 用户登录客户端机器。
通过 FreeIPA 用户登录客户端
在本节中,你将通过 FreeIPA 用户连接客户端机器来验证 FreeIPA 服务器和客户端的安装。你将使用 FreeIPA 用户 'rocky' 通过 SSH 连接到主机 'client.hwdomain.lan'。
回到你的 FreeIPA 服务器,运行下面的 ssh 命令,使用 FreeIPA 用户 'rocky' 连接到 'client.hwdomain.lan'。输入 'yes' 以接受主机的 SSH 指纹。
ssh
[email protected]
系统要求输入密码时,请输入 FreeIPA 用户 'rocky' 的密码。输入正确密码后,系统会要求你将当前密码修改为新密码。
输入当前密码,然后输入用户 'rocky' 的新密码并重复确认。成功后,你应该已经以 'rocky' 这个 FreeIPA 用户登录到 'client.hwdomain.lan' 机器。此外,FreeIPA 用户的 home 目录会在登录过程中自动创建。
执行以下命令来验证当前连接的状态。你应该看到所使用的用户为 'rocky',且该用户属于 'development' 组。同时,你可以看到客户端机器的 fqdn 为 'client.hwdomain.lan'。
id
whoami
hostname -f

最后,通过 Web 管理仪表盘,你将验证 FreeIPA 服务器上可用的主机/机器列表。
回到 FreeIPA 管理仪表盘,点击 'Identity' 菜单,然后选择 'Hosts' 选项卡。你应该能看到 'client.hwdomain.lan' 已添加并在 FreeIPA 服务器上可用。

现在点击链接 'client.hwdomain.lan' 以获取该主机的详细信息。你应该能在下图中看到该主机的详细信息。

至此,你已经在 Rocky Linux 9 上成功安装了 FreeIPA 服务器,并通过 FreeIPA 客户端添加了 Rocky Linux 客户端主机。
结论
在本教程中,你学习了如何在 Rocky Linux 9 服务器上安装并部署 FreeIPA 服务器。你已在 Rocky Linux 上配置了 FreeIPA 服务器,启用了通过 Bind 提供的 DNS,并配置了 firewalld。
此外,你还学习了用于创建和管理 FreeIPA 用户与组的 ipa 命令的基本用法,并学习了如何通过 kinit 命令获取 Kerberos 票据,以及如何使用 admin 用户和密码登录 FreeIPA Web 管理界面。
最后,你已通过 FreeIPA 客户端软件包将客户端机器添加到 FreeIPA 服务器。你已经逐步学习了操作方法,并通过使用 FreeIPA 用户登录客户端机器验证了设置。至此,你可以向 FreeIPA 服务器添加更多主机、用户和组。你也可以将 FreeIPA 集成到生产环境中。要获取详细信息,请访问 FreeIPA 官方文档。