如何在CentOS 7上配置FreeIPA Client

FreeIPA是一种用于Linux的开源安全解决方案,提供帐户管理和集中式身份验证,类似于Microsoft的Active Directory。在本教程中,我们将配置一个CentOS 7计算机,以对现有的FreeIPA服务器进行身份验证。

介绍

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

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

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

先决条件

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

  • 安装了一个具有FreeIPA服务器软件的CentOS 7服务器,您可以通过遵循CentOS 7教程中的FreeIPA进行设置。
  • 另一台CentOS 7服务器,将用作FreeIPA客户端,通过遵循CentOS 7安装指南 (包括防火墙)进行设置。 但是,由于我们将使用FreeIPA来管理用户,因此无需手动添加sudo非root用户。 您可以简单地按照本教程作为root用户
  • 为您的IPA客户端设置以下DNS记录。 有关如何添加它们的详细信息,请参阅此主机名教程
    • 您的服务器名称(例如ipa-client.example.com )指向您的客户端服务器的IPv4地址的记录。
    • 您的服务器名称指向客户端服务器的IPv6地址的AAA​​A记录,如果您希望通过IPv6可访问您的服务器。
  • 或者, yum install nanoyum install nanonano文本编辑器yum install nano 默认情况下,CentOS配有vi文本编辑器,但nano可以更加用户友好。

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

第1步 - 准备IPA客户端

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

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

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

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

hostname ipa-client.example.com

如果要使用hostname命令更改服务器的主机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网络用户界面,这是https:// ipa.example.com 使用您之前使用的IPA管理员帐户登录到Web UI。 您将看到以下屏幕:

ipa登录

导航到主机选项卡。 您应该看到您的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中,单击服务 ,然后单击sudo 应该会出现一个下拉菜单。
  2. 在下拉菜单中,单击sudo规则 ,然后单击添加并在规则名称字段中输入规则的名称 在这里,我们将使用admin ,因为我们允许管理员组的sudo。
  3. 接下来,点击添加和编辑 这将提出规则的全套选项。
  4. 在“ 用户”组下,点击+添加 选择管理员组,然后单击箭头将其从“ 可用”移动到“ 预期” 然后单击添加
  5. 访问此主机下 ,选择任何主机 运行命令下 ,选择任何命令 “谁”下 ,选择任何人和任何组 这可以限制这些机器启用sudo,可以使用sudo运行的命令以及哪些用户可以被模拟。
  6. 最后,到页面顶部,点击保存

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

一旦完成,我们来验证我们在客户端机器上是否有sudo访问权。 从本地机器,尝试使用IPA管理员用户登录客户端。 默认情况下,该用户在管理员组中。

ssh admin@ipa-client.example.com

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

sudo -i

现在提示符root@ipa-client改为root@ipa-client 你可以简单的输入exit来返回正常的提示。

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

结论

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

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