如何在CentOS7上配置FreeIPA客户端

来自菜鸟教程
跳转至:导航、​搜索

介绍

FreeIPA 是用于 Linux 的开源安全解决方案,它提供帐户管理和集中式身份验证,类似于 Microsoft 的 Active Directory。 FreeIPA 建立在多个开源项目之上,包括 389 Directory Server、MIT Kerberos 和 SSSD。

FreeIPA 有 CentOS 7、Fedora 和 Ubuntu 14.04/16.04 的客户端。 这些客户端使将机器添加到您的 IPA 域中变得相当简单。 其他操作系统可以使用 SSSD 或 LDAP 对 FreeIPA 进行身份验证。

在本教程中,我们将配置 CentOS 7 机器以针对现有的 FreeIPA 服务器进行身份验证。 配置客户端后,您将能够管理哪些用户和用户组可以登录机器。 此外,您还可以设置哪些用户可以使用 sudo

先决条件

要遵循本教程,您将需要:

  • 一台安装了 FreeIPA 服务器软件的 CentOS 7 服务器,您可以按照 this FreeIPA on CentOS 7 教程 进行设置。
  • 另一个 CentOS 7 服务器,将用作 FreeIPA 客户端,按照 this CentOS 7 setup guide 设置,包括防火墙。 但是,因为我们将使用 FreeIPA 来管理用户,所以没有必要手动添加 sudo 非 root 用户。 您可以简单地以 root 的身份跟随本教程。
  • 为您的 IPA 客户端设置的以下 DNS 记录。 您可以关注 this hostname tutorial 了解如何添加它们的详细信息。 带有您的服务器名称的 A 记录(例如 ipa-client.example.com) 指向您的客户端服务器的 IPv4 地址。 如果您希望通过 IPv6 访问您的服务器,则您的服务器名称指向您的客户端服务器的 IPv6 地址的 AAAA 记录。
  • 可选地,与 yum install nano 一起安装的 nano 文本编辑器。 CentOS 默认自带 vi 文本编辑器,但 nano 可以更人性化。

在本教程中,我们将使用 ipa-client.example.com 作为 IPA 客户端的示例域,并使用 ipa.example.com 作为 IPA 服务器的示例域(以匹配先决条件教程)。

第 1 步 — 准备 IPA 客户端

在我们开始安装任何东西之前,我们需要做一些事情来确保您的客户端机器准备好运行 FreeIPA 客户端。 具体来说,我们将设置服务器主机名,更新系统包,并检查先决条件中的 DNS 记录是否已传播。

首先,您的客户端的主机名需要与您的完全限定域名 (FQDN) 匹配,FreeIPA 客户端才能正常工作。 在本教程中,我们将使用 ipa-client.example.com 作为 FQDN。

如果这是一个新服务器,您可以在创建服务器时设置主机名。

如果您已经有服务器,则可以使用 hostname 命令代替,如下所示。 请注意,您必须是 root 才能更改现有系统的主机名,因为主机名是系统参数,普通用户无法更改。

hostname ipa-client.example.com

如果您使用 hostname 命令更改服务器的主机名,最好也在 /etc/hostname 文件中手动更改它。

nano /etc/hostname

文件中应该只有一行带有您服务器的原始主机名:

/etc/hosts

your_original_hostname

将其更改为客户端的完整 FQDN。

/etc/hosts

ipa-client.example.com

然后保存并关闭文件。

正确设置服务器的主机名后,更新系统。

yum update

最后,我们需要验证 DNS 名称是否正确解析。 为此,我们可以使用 dig 命令。 CentOS 7 没有附带任何开箱即用的 DNS 实用程序。 我们需要从 bind-utils 包中安装它们。

yum install bind-utils

首先,使用dig查看A记录。

dig +short ipa-client.example.com A

这应该返回 your_server_ipv4

如果您启用了 IPv6,您可以用同样的方法测试 AAAA 记录。

dig +short ipa-client.example.com AAAA

这应该返回 your_server_ipv6

我们还可以测试反向查找。 这测试我们是否可以从 IP 地址解析主机名。

dig +short -x your_server_ipv4
dig +short -x your_server_ipv6

这些都应该返回 ipa-client.example.com.

现在服务器已经准备好了,我们可以安装和配置 FreeIPA 客户端包。

第 2 步 — 安装 FreeIPA 客户端

在 CentOS 7 中,FreeIPA 客户端包含在默认存储库中。

yum install freeipa-client

接下来,运行 FreeIPA 安装命令。 这将运行一个脚本,指导您配置 FreeIPA 以针对您的 CentOS FreeIPA 服务器进行身份验证。

ipa-client-install --mkhomedir

--mkhomedir 标志告诉 FreeIPA 在 IPA 用户首次登录机器时为其创建主目录。 如果你不想要这种行为,你可以省略这个标志。

安装程序将首先提示您输入 IPA 域。 它是在您配置服务器时设置的。

安装脚本提示

Provide the domain name of your IPA server (ex: example.com): ipa.example.com

接下来,您需要输入 IPA 服务器的域名。 这应该与您用于访问 IPA Web UI 的 URL 相同。 如果您遵循先决条件中的服务器教程,它将与 IPA 域相同。

安装脚本提示

Provide your IPA server name (ex: ipa.example.com): ipa.example.com

注意:具有冗余 IPA 服务器的系统很可能具有不同的 IPA 域和 IPA 服务器名称。


对于单个服务器,故障转移将不起作用。 FreeIPA 会警告你,你应该输入 yes 继续。

安装脚本提示

Autodiscovery of servers for failover cannot work with this configuration.
If you proceed with the installation, services will be configured to always access the discovered server for all operations and will not fail over to other servers in case of failure.
Proceed with fixed values and no DNS discovery? [no]: yes

确认所有选项都正确,然后继续。

安装脚本提示

Continue to configure the system with these values? [no]: yes

接下来,输入管理员用户名。 在这里,我们将只使用安装服务器时创建的默认 IPA 管理员用户。

安装脚本提示

User authorized to enroll computers: admin

最后,输入 IPA 管理员用户的密码。 这是在 FreeIPA 服务器配置期间设置的。

输入密码后,FreeIPA 客户端将配置系统。 最后一行输出将是 Client configuration complete. 这表示安装成功。

现在,我们需要验证我们的系统是否显示在 IPA Web 界面中。

第 3 步 — 验证身份验证

导航到您的 IPA Web UI,即 https://ipa.example.com。 使用您之前使用的 IPA 管理员帐户登录到 Web UI。 您将看到以下屏幕:

导航到 主机 选项卡。 您应该会看到列出的 IPA 服务器以及刚刚配置的客户端。 单击您的 IPA 客户端的条目。 这将带您了解主机的概述。

在此屏幕中,您可以输入有关客户端机器的信息以及管理机器的组和角色。

注意:默认情况下,所有IPA用户都可以登录IPA域内的所有机器。


您也可以尝试从本地终端使用 IPA 用户登录机器。

ssh admin@ipa-client.example.com

您将以 IPA 用户身份登录您的计算机。 成功后,您可以退出此连接。

IPA 用户将拥有基本访问权限,但 sudo 被禁用。 在下一步中,我们将启用 sudo。

第 4 步 - 启用和验证 sudo 规则(可选)

无需修改客户端配置文件即可启用 sudo 访问; 但是,如果您愿意,您必须在 IPA Web UI 中配置 sudo 规则以允许访问。

FreeIPA 允许您指定哪些用户和用户组可以在哪些机器上运行 sudo 命令。 还可以限制用户可以使用 sudo 运行的命令,以及他们可以模拟的用户。

在本教程中,我们将介绍添加一个简单的规则,允许管理员组对所有机器进行完全 sudo 访问。 请注意,管理员组以及下面显示的其他组默认情况下存在于 FreeIPA 中。

  1. 在 IPA Web UI 中,单击 Services,然后单击 sudo。 应出现一个下拉菜单。
  2. 在下拉菜单中,单击 sudo rules,然后单击 add 并在 Rule name 字段中输入规则的名称。 在这里,我们将使用 admin 因为我们允许 sudo 用于 admin 组。
  3. 接下来,单击添加并编辑。 这将显示规则的完整选项集。
  4. Who用户组 下单击 + 添加。 选择管理员组并单击箭头将其从 Available 移动到 Prospective。 然后点击添加
  5. 访问此主机下,选择任何主机。 在 运行命令 下,选择 任何命令 。 在 As Whom 下,选择 AnyoneAny Group。 您可以在此处限制启用 sudo 的这些机器、可以使用 sudo 运行的命令以及可以模拟哪些用户。
  6. 最后,滑动到页面顶部并单击保存

您的规则现在应该处于活动状态; 但是,传播可能需要一些时间,您可能需要重新启动 sshd 服务才能使 sudo 规则生效。 为此,您可以在 IPA 客户端上运行 systemctl restart sshd.service

完成后,让我们验证我们在客户端计算机上是否具有 sudo 访问权限。 从您的本地计算机上,尝试使用 IPA 管理员用户登录到客户端。 默认情况下,此用户位于 admins 组中。

ssh admin@ipa-client.example.com

登录后,尝试启动交互式 sudo 提示符。

sudo -i

提示现在应更改为 root@ipa-client。 您只需键入 exit 即可返回常规提示。

如果您被拒绝 sudo 访问,您可能需要重新启动计算机并确保您的 sudo 规则配置正确。

结论

将您的计算机配置为针对 FreeIPA 进行身份验证后,您可以从 IPA Web UI 或其命令行界面配置用户和组对系统的访问权限。 FreeIPA 具有可用的高级功能,但对于更简单的配置,您可以简单地添加用户和主机,从而提供一个简单的集中式身份验证系统。

FreeIPA 是一个非常通用的身份验证工具,您接下来需要做什么很大程度上取决于您打算如何使用它。 如需更多信息,FreeIPA 网站上有一个 文档资源列表