介绍
FreeIPA是为Linux提供帐户管理和集中身份验证的开源安全解决方案,类似于微软的Active Directory。
FreeIPA 拥有 CentOS 7, Fedora 和 Ubuntu 14.04/16.04 的客户端,这些客户端使得将机器添加到您的 IPA 域中相当简单。
在本教程中,我们将配置 CentOS 7 机器以对现有 FreeIPA 服务器进行身份验证. 一旦您的客户端已配置,您将能够管理哪些用户和用户组可以登录该机器。
前提条件
要遵循本教程,您将需要:
- 1 CentOS 7 服务器,安装了 FreeIPA 服务器软件,您可以通过跟随这个 FreeIPA on CentOS 7 教程来设置. *另一个CentOS 7服务器,将用作FreeIPA客户端,通过跟随此CentOS 7设置指南而设置,包括防火墙. 然而,由于我们将使用FreeIPA来管理用户,因此不需要手动添加一个sudo非root用户. 您可以简单地遵循此教程 。
- 联合国 以下为您的IPA客户端设置的DNS记录. 您可以跟随 [此主机名教程] (https://andsky.com/tech/tutorials/how-to-set-up-a-host-name-with-digitalocean] 来了解如何添加它们的细节 。
- 一张有您服务器名称的记录(例如`ipa-client.example.com'),指向您的客户端服务器的IPv4地址。
- 一个AAAA记录,其服务器名称指向您的客户端服务器的IPv6地址,如果您希望您的服务器可以通过IPv6到达.
- 联合国 可选的是,安装了 " uno " 文本编辑器,并安装了 " yum安装纳米 " 。 CentOS默认带有 " vi " 文本编辑器,但 " nano " 可以更加方便用户。 .
在本教程中,我们将使用「ipa-client.example.com」作为您的IPA客户端的示例域,以及「ipa.example.com」用于您的IPA服务器(以匹配前提教程)。
第1步:准备IPA客户端
在我们开始安装任何东西之前,我们需要做一些事情来确保您的客户端机器已经准备好运行 FreeIPA 客户端。
首先,您的客户端的主机名称将需要匹配您的完全合格域名(FQDN),以便FreeIPA客户端正确工作。
如果这是一个新的服务器,您可以在创建服务器时设置主机名。
如果您已经有服务器,您可以使用hostname
命令,如下所示。请注意,您必须是 root 才能更改现有系统的主机名称,因为主机名称是系统参数,不能被常规用户更改。
1hostname ipa-client.example.com
如果您正在使用hostname
命令更改服务器的主机名,那么在/etc/hostname
文件中也可以手动更改它。
1nano /etc/hostname
文件中应该只有一行与您的服务器的原始主机名称:
1[label /etc/hosts]
2your_original_hostname
将其更改为您的客户端的完整FQDN。
1[label /etc/hosts]
2ipa-client.example.com
然后保存并关闭文件。
一旦您的服务器的主机名为正确设置,更新系统。
1yum update
最后,我们需要验证DNS名称是否正确解决,我们可以使用挖掘
命令来完成这一点,CentOS 7不带任何DNS实用程序,我们需要从bind-utils
包中安装它们。
1yum install bind-utils
首先,使用dig
来检查 A 记录。
1dig +short ipa-client.example.com A
然后返回your_server_ipv4
。
如果您有 IPv6 啟用,您可以以同樣的方式測試 AAAA 記錄。
1dig +short ipa-client.example.com AAAA
然后返回your_server_ipv6
。
我们还可以测试反向搜索,这测试我们是否可以从IP地址中解决主机名称。
1dig +short -x your_server_ipv4
2dig +short -x your_server_ipv6
兩者都應該返回「ipa-client.example.com」。
现在,服务器已经准备好了,我们可以安装和配置 FreeIPA 客户端包。
第2步:安装 FreeIPA 客户端
在 CentOS 7 中,FreeIPA 客户端包含在默认存储库中。
1yum install freeipa-client
接下来,运行 FreeIPA 安装命令. 这将运行一个脚本,引导您通过配置 FreeIPA 对您的 CentOS FreeIPA 服务器进行身份验证。
1ipa-client-install --mkhomedir
「--mkhomedir」旗告诉FreeIPA在首次登录机器时为IPA用户创建主目录。
安装程序首先会提示您为 IPA 域。 它在您配置服务器时设置。
1[label Installation script prompt]
2Provide the domain name of your IPA server (ex: example.com): ipa.example.com
接下来,您需要输入IPA服务器的域名,这应该与您使用访问IPA Web UI的URL相同。
1[label Installation script prompt]
2Provide your IPA server name (ex: ipa.example.com): ipa.example.com
注:具有冗余 IPA 服务器的系统很可能具有不同的 IPA 域名和 IPA 服务器名称。
在单个服务器中,故障转移不会起作用 FreeIPA 会警告您,您应该输入 yes 才能继续。
1[label Installation script prompt]
2Autodiscovery of servers for failover cannot work with this configuration.
3If 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.
4Proceed with fixed values and no DNS discovery? [no]: yes
确认所有选项都是正确的,然后继续。
1[label Installation script prompt]
2Continue to configure the system with these values? [no]: yes
接下来,输入管理员用户名. 在这里,我们只会使用在安装服务器时创建的默认IPA管理员用户。
1[label Installation script prompt]
2User authorized to enroll computers: admin
最后,输入您的 IPA 管理员用户的密码,这是在 FreeIPA 服务器配置过程中设置的。
输入密码后,FreeIPA 客户端将配置系统. 输出的最后一行将是`客户端配置完成。
现在,我们需要验证我们的系统是否出现在IPA Web 界面中。
第3步:验证身份验证
导航到您的 IPA Web UI,即 https://ipa.example.com
。 使用您之前使用的 IPA 管理员帐户登录到 Web UI。 您将看到以下屏幕:
导航到 ** 主机** 选项卡. 您应该看到您的 IPA 服务器列出以及您刚刚配置的客户端。 点击您的 IPA 客户端的输入。
从此屏幕上,您可以输入有关客户端机器的信息,以及对机器的管理组和角色。
注: 默认情况下,所有 IPA 用户都可以登录 IPA 域内的所有机器。
您还可以尝试在本地终端使用IPA用户登录机器。
1[environment local]
2ssh [email protected]
您将作为 IPA 用户登录您的机器,一旦成功,您可以退出此连接。
IPA 用户将有基本访问权限,但 sudo 已禁用,在下一步,我们将启用 sudo。
步骤 4 — 启用和验证sudo规则(可选)
没有必要修改客户端配置文件以启用 sudo 访问;但是,如果您想要,您必须在 IPA Web UI 中配置 sudo 规则以允许访问。
FreeIPA 允许您指定哪些用户和用户组可以在哪些机器上运行 sudo 命令,也可以限制用户可以使用 sudo 执行的命令,以及他们可以假装使用哪些用户。
在本教程中,我们将涵盖添加一个简单的规则,允许 admin 组完全 sudo 访问所有机器. 请注意, admin 组,以及下面的其他组,默认情况下存在于 FreeIPA。
- 联合国 从IPA网络UI点击Services ,再点击** sudo** . 下放菜单应该出现 。
- 联合国 在下放菜单中,点击sudo rules ,再点击** add** ,并在** Rule name** 字段中输入规则的名称. 在这里,我们将使用** admin** 因为我们允许Sudo为管理员组. 3个 下起,点击add并编辑 . 这将为规则提出一整套选择。
- 在谁 和** 用户组** 下,点击_______________后加上** 。 选择管理员分组并单击箭头将其从 ** Available ** 移动到 ** Prospective ** 。 然后点击** Add** 。 5 (韩语). 在 ** 进入此主机** 下,选择 ** 任何主机** 。 在** 运行命令** 下,选择** 任何命令** 。 在** As Whom** 下,选择** 任何人** 和** 任何团体** 。 您可以在此限制这些机器 sudo 被启用, 可用 sudo 运行的命令, 以及用户可以冒用的命令 。
- 国家 最后,跳到页面上方并点击Save . .
您的规则现在应该是活跃的;然而,它可能需要一些时间来宣传,并且您可能需要重新启动sshd
服务,以便对 sudo 规则产生影响。
一旦完成,让我们检查我们是否在客户端机器上有 sudo 访问权限. 从您的本地机器,尝试使用 IPA 管理员用户登录客户端。
1[environment local]
2ssh [email protected]
一旦登录,尝试启动互动的 sudo 提示。
1sudo -i
快递现在应该更改为root@ipa-client
。你可以简单地键入退出
,返回常规快递。
如果您被拒绝 sudo 访问,您可能需要重新启动机器,并确保您的 sudo 规则正确配置。
结论
随着您的机器配置为对 FreeIPA 进行身份验证,您可以从 IPA Web UI 或其命令行接口配置用户和群组访问到您的系统。
FreeIPA 是一个非常多功能的身份验证工具,接下来你需要做的很大程度上取决于你打算如何使用它。