介绍
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服务器。
- 另一台CentOS服务器作为FreeIPA客户端。因为我们将使用FreeIPA来管理用户,所以不必手动添加可以使用sudo命令的非root用户。您只需以root身份学习本教程即可。
- 为您的IPA客户端设置以下DNS记录。
- 一条带有服务器名称的A记录(例如ipa-client.example.com)指向客户端服务器的IPv4地址。
- 如果您希望通过IPv6访问服务器,则AAAA记录的服务器名称指向客户端服务器的IPv6地址。
- 使用
yum install nano
安装的nano文本编辑器则是另一个可选项。CentOS 默认带有vi的文本编辑器,但nano有更好的用户体验。
在本教程中,我们将使用ipa-client.example.com
作为您的IPA客户端的实例并用ipa.example.com
作为IPA服务器的实例(与准备教程相匹配)。
第一步,准备IPA客户端
在我们开始安装任何东西之前,我们需要先确保您的客户端机器已准备好运行FreeIPA客户端。具体来说,我们将设置服务器主机名,更新系统包,并检查准备教程中的DNS记录是否已传播。
首先,客户端的主机名需要与您的完全限定域名(FQDN)匹配才能使FreeIPA客户端正常工作。我们将在本教程中将ipa-client.example.com
用作FQDN。
如果这是新服务器,则可以在创建服务器时设置主机名。
如果您已有服务器,则可以使用hostname
命令,如下所示。请注意,您必须是root才能更改现有系统的主机名,因为主机名是系统参数,常规用户无法更改。
# hostname ipa-client.example.com
如果要使用hostname命令更改服务器的主机名,最好也在/etc/hostname
文件中手动更改它。
$ nano /etc/hostname
文件中只应有一行包含服务器的原始主机名:
代码语言:txt复制/ etc / hosts
your_original_hostname
将其更改为客户端的完整FQDN。
代码语言:txt复制/ etc / hostsipa-client.example.com然后保存并关闭该文件,一旦正确设置服务器的主机名后,请更新系统。
# yum update
最后,我们需要验证DNS名称是否正确解析。我们可以使用dig
命令。CentOS 7没有立即可用的任何DNS实用程序。我们需要从bind-utils
包中安装它们。
# yum install bind-utils
首先,dig用来检查A记录。
代码语言:txt复制# dig short ipa-client.example.com A
此命令应返回到your_server_ipv4
。
如果启用了IPv6,则可以采用相同的方式测试AAAA记录。
代码语言:txt复制# dig short ipa-client.example.com AAAA
此命令应返回到your_server_ipv6
。
我们还可以测试反向查找以测试我们是否可以从IP地址解析主机名。
代码语言:txt复制# dig short -x your_server_ipv4
# dig short -x your_server_ipv6
以上命令应都返回到ipa-client.example.com.
现在服务器已准备就绪,我们可以安装和配置FreeIPA客户端软件包。
第二步,安装FreeIPA客户端
在CentOS 7中,FreeIPA客户端包含在默认存储库中。
代码语言:txt复制# yum install freeipa-client
接下来,运行FreeIPA安装命令。这将运行一个脚本,指导您配置FreeIPA以对您的CentOS FreeIPA服务器进行身份验证。
代码语言:txt复制# ipa-client-install --mkhomedir
该--mkhomedir
标志告诉FreeIPA在IPA用户第一次登录时为其创建主目录。如果您不想要此对话,则可以省略此标志。
安装程序将首先提示您输入IPA域。它在配置服务器时设置。
代码语言:txt复制Installation script prompt
Provide the domain name of your IPA server (ex: example.com): ipa.example.com
接下来,您需要输入IPA服务器的域名。这应该与用于访问IPA Web UI的URL相同。如果您遵循准备教程中的服务器教程,它将与IPA域相同。
代码语言:txt复制Installation script prompt
Provide your IPA server name (ex: ipa.example.com): ipa.example.com
注意:具有冗余IPA服务器的系统很可能具有不同的IPA域和IPA服务器名称。
使用单个服务器时故障转移将不起作用。FreeIPA会给您警告,此时您应该输入yes以继续。
代码语言:txt复制Installation script prompt
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
确认所有选项都正确,然后继续。
代码语言:txt复制Installation script prompt
Continue to configure the system with these values? [no]: yes
接下来,输入管理员用户名。在这里,我们将只使用安装服务器时创建的默认IPA管理员用户。
代码语言:txt复制Installation script prompt
User authorized to enroll computers: admin
最后,输入您的IPA管理员用户的密码。这是在FreeIPA服务器配置期间设置的。
输入密码后,FreeIPA客户端将配置系统。输出的最后一行将是Client configuration complete.
这表示安装成功。
现在,我们需要验证我们的系统是否出现在IPA Web界面中。
第三步,验证身份验证
导航到您的IPA Web UI,即https://ipa.example.com
。使用您之前使用的IPA管理员帐户登录Web UI。您将看到以下屏幕:
导航到“ 主机”选项卡。您应该看到列出的IPA服务器以及刚刚配置的客户端。单击IPA客户端的条目,将带您了解主机。
在此屏幕中,您可以输入有关客户端计算机的信息以及管理计算机的组和角色。
注意:默认情况下,所有IPA用户都可以登录IPA域内的所有计算机。
您也可以尝试使用本地终端的IPA用户登录计算机。
代码语言:txt复制$ ssh admin@ipa-client.example.com
您将以IPA用户身份登录计算机。一旦成功,您便可以退出此连接。IPA用户将具有基本访问权限,但sudo
已被禁用。在下一步中,我们将启用sudo
。
第四步,启用和验证sudo规则(可选)
修改客户端配置文件以获得启用sudo访问权限并不是必要的;但是,如果您愿意,您必须在IPA Web UI中配置sudo
规则以允许访问。
FreeIPA允许您指定哪些用户和用户组可以在哪些计算机上运行sudo命令。也可以限制用户可以使用sudo
运行的命令,以及他们可以模拟的用户。
在本教程中,我们将介绍添加一个简单的规则,该规则允许管理员组对所有计算机进行完全sudo
访问。请注意,管理组以及下面显示的其他组默认存在于FreeIPA中。
- 在IPA Web UI中,单击“ 服务”,然后单击“ sudo”。应出现下拉菜单。
- 在下拉菜单中,单击sudo规则,然后单击“ 添加”并在“规则名称”字段中输入规则的名称。在这里,我们将使用admin,因为我们允许管理员组使用sudo。
- 接下来,单击“ 添加并编辑”。这将为规则提供全套选项。
- 在谁和用户组下单击 添加。选择管理员组,然后单击箭头将其从“可用”移至“ 预览”。然后单击添加。
- 在访问该主机,选择任何主机。在“运行命令”下,选择“任何命令”。在作为谁下,选择任何人与任何组。这是您可以限制启用sudo的这些机器,可以使用sudo运行的命令以及可以模拟哪些用户的位置。
- 最后,将scoll拖到页面顶部,然后单击“ 保存”。
你的规则现在应该是活跃的;但是,它可能需要一些时间才能传播,您可能必须重新启动sshd
服务才能使sudo
规则生效。为此,您可以在IPA客户端上运行systemctl restart sshd.service
。
完成后,让我们验证我们是否在客户端计算机上有sudo
访问权限。在本地计算机上,尝试使用IPA管理员用户登录客户端。默认情况下,此用户位于admins
组中。
$ ssh admin@ipa-client.example.com
登录后,尝试启动交互式sudo提示。
代码语言:txt复制$ sudo -i
提示现在应该更改为root@ipa-client
。您只需输入exit
即可返回常规提示。
如果您被拒绝sudo
访问,则可能需要重新启动计算机并确保正确配置了sudo
规则。
结论
将您的计算机配置为对FreeIPA进行身份验证,您可以从IPA Web UI或其命令行界面配置对系统的用户和组访问。FreeIPA具有高级功能,但对于更简单的配置,您只需添加用户和主机即可提供简单的集中式身份验证系统。FreeIPA是一种功能极为丰富的身份验证工具,您之后需要做的事情在很大程度上取决于您打算如何使用它。
同时腾讯云社区提供了关于Freeipa的教程,如利用利用Freeipa实现Liunx用户身份、权限的统一管理,欢迎访问和查看。
参考文献:《How To Configure a FreeIPA Client on CentOS 7》