如何在CentOS 7上配置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服务器。
  • 另一台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

文件中只应有一行包含服务器的原始主机名:

/ etc / hosts

your_original_hostname

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

/ etc / hostsipa-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客户端软件包。

第二步,安装FreeIPA客户端

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

# yum install freeipa-client

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

# ipa-client-install --mkhomedir

--mkhomedir标志告诉FreeIPA在IPA用户第一次登录时为其创建主目录。如果您不想要此对话,则可以省略此标志。

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

Installation script prompt

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

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

Installation script prompt

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

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

使用单个服务器时故障转移将不起作用。FreeIPA会给您警告,此时您应该输入yes以继续。

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

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

Installation script prompt

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

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

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 Web UI

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

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

ipa-client

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

您也可以尝试使用本地终端的IPA用户登录计算机。

$ ssh admin@ipa-client.example.com

您将以IPA用户身份登录计算机。一旦成功,您便可以退出此连接。IPA用户将具有基本访问权限,但sudo已被禁用。在下一步中,我们将启用sudo

第四步,启用和验证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. 最后,将scoll拖到页面顶部,然后单击“ 保存”

你的规则现在应该是活跃的;但是,它可能需要一些时间才能传播,您可能必须重新启动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的教程,如利用利用Freeipa实现Liunx用户身份、权限的统一管理,欢迎访问和查看。


参考文献:《How To Configure a FreeIPA Client on CentOS 7》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏学习力

《Java从入门到放弃》框架入门篇:Struts2的基本访问方式

21060
来自专栏bboysoul

dvwa安装教程

DVWA (Damn Vulnerable Web Application) 是用 PHP+MySQL 编写的一套用于漏洞检测和教学的程序,支持多种数据库,包括...

42630
来自专栏区块链

具有ID欺骗功能的NFS客户端–NfSpy

NfSpy简介 NfSpy是一个开源的Python库,当我们加载一个NFS文件共享服务时,它可以自动伪造出NFS凭证。该工具包含下面两个子程序: 1. n...

267100
来自专栏蓝天

ZooKeeper-3.4.6分布式安装指南

介绍ZooKeeper-3.4.6版本的分布式安装,力求细致,提供精确的安装指导。本文的安装环境是64位的SuSE 10.1 Linux,也适用于ZooKe...

17510
来自专栏编程坑太多

『高级篇』docker之kubernetes基础集群附在功能kube-proxy和kube-dns(36)

每台工作节点上都应该运行一个kube-proxy服务,它监听API server中service和endpoint的变化情况,并通过iptables等来为服务配...

14620
来自专栏康怀帅的专栏

CoreOS 系统升级

CoreOS 会自动检测升级,由于国内网络环境,下载升级包可能会失败。 官方文档:https://coreos.com/os/docs/latest/updat...

48960
来自专栏云计算教程系列

如何在Ubuntu 18.04上使用Gunicorn和Nginx为Flask应用程序提供服务

在本指南中,您将使用Ubuntu 18.04上的Flask微框架构建Python应用程序。本文的大部分内容将涉及如何设置Gunicorn应用程序服务器以及如何启...

30610
来自专栏张首富-小白的成长历程

用户相关的文件及命令

Linux system每个文件和进程,都需要对应一个用户和组, Linux system是通过UID和GID来识别用户和组的。用户名相当于人名,UID相当于×...

14740
来自专栏Ken的杂谈

FTP-服务器搭建by FileZilla Server

1.打开安装程序后,看到如下界面,点击 I Agree,然后一直Next,直到步骤2

4.3K50
来自专栏pangguoming

kafka 主要内容介绍

根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能:

14950

扫码关注云+社区

领取腾讯云代金券