跳至主要內容

Chapter8 - 连接到网络定义的用户和组

Change Lee...大约 8 分钟LinuxRHEL134

使用身份管理服务

用户信息和身份验证服务

集中式身份管理系统至少需要提供两项服务:

1、账户信息:包括用户名、主目录位置、UID 和 GID 、组成员身份等信息。常用的解决方案包括 LDAP (轻量级目录访问协议,用于 Active Directory 和 IPA 服务器等多个产品中)以及网络信息服务(NIS)。

2、身份验证信息:系统验证用户身份的一种方法。这可以通过两种方式完成:向客户端系统提供加密密码哈希,或向服务器发送(加密)密码并接收响应。 LDAP 服务器不仅提供账号信息,也提供身份验证信息。 Kerberos 仅提供 sso 身份验证服务,通常与 LDAP 用户信息一起使用。 Kerberos 可用于 IPA 服务器和 Active Directory。

在 RHEL7 系统上,本地用户信息由/etc/passwd提供,而身份验证信息(采用哈希密码的形式)由 /etc/shadow 提供。

将系统连接到集中式 LDAP 服务器和 Kerberos 服务器

Authconfig

将 RHEL 7 系统配置为使用集中式身份管理服务器需要编辑各种文件,以及配置某些守护进程。为连接到中央 LDAP 服务器和 Kerberos 服务器,至少需要更新以下文件:

  • /etc/ldap.conf:关于中央 LDAP 服务器及其设置的信息
  • /etc/krb5.conf:关于中央 Kerberos 基础架构的信息
  • /etc/sssd/sssd.conf:用于配置系统安全服务守护进程(sssd),即负责检索和缓存用户信息和身份验证信息的守护进程
  • /etc/nsswitch.conf:为系统指明应使用哪些用户信息和身份验证服务
  • /etc/pam.d/*:配置应如何处理各种服务的身份验证
  • /etc/openldap/cacerts:用于存储根证书颁发机构(CA),这些证书颁发机构可以验证用来识别 LDAP 服务器的 SSL 证书。

sssd 守护进程需要先启用并启动,然后才能供系统使用

配置如此多的文件和服务很容易出错 , RHEL 7 随附了一套工具,可以自动完成这些配置: authconfig . authconfig 包含三个全部可以执行相同操作的相关工具:

authconfig:命令行工具。此工具可用于在多个系统间自动进程配置。与 authconfig 配置使用的命令往往都较长,其中会传递多个选项。此工具使用 authconfig 软件包安装。

authconfig-tui: authconfig 的交互式版本。使用菜单驱动的文本界面。可通过 ssh 使用。此工具使用 authconfig 软件包安装

authconfig-gtk:此版本将启动图形界面,它也可以作为 system-config-authentication 启动。此工具使用 authconfig-gtk 软件安装。

必需的LDAP 参数

要连接到中央LDAP服务以获取用户信息,authconfig 需要一些设置:

LDAP 服务器的主机名称

  • 系统应在其中查找用户的LDAP树部分的base DN(区分名称)。这通常类似于 dc=example,dc=com 或 ou=People,o=PonyCorp. 此信息将由 LDAP 服务器管理员提供。
  • 如果使用SSL/TLS 为与 LDAP 服务器的通信加密,那么 LDAP 服务器将提供可验证证书的根CA证书。

重要信息:系统还需要安装一些额外的软件包来提供LDAP 客户端功能。安装 sssd 将提供所有必需的依赖关系。

必需的 Kerberos 参数

要将系统配置为使用集中工 Kerberos 系统进程用户身份验证, authconfig 需要以下设置:

  • 要使用 Kerberos 域的名称, Kerberos 域是全部使用一组共同的 Kerberos 服务器和用户进行身份验证的计算机组成的域。
  • 一个或多个关键分发中心(KDC)。这是Kerberos 服务器的主机名称。
  • 一个或多个管理服务器主机名称。这是客户端在希望更改密码或执行其他修改时将联系的计算机。它通常与主KDC 相同,但也可以是不同的计算机。

此外,管理员可以指定是否应使用 DNS 来查找要为特定主机名称使用的域,以及自动查找 KDC 服务器和管理服务器。可以安装一个额外的软件包 krb5-workstation ,以便帮助对 Kerberos 问题进行调试,以及从命令行处理 Kerberos 票据。

使用authconfig-gtk

要使用authconfig-gtk 配置系统以采用 LDAP + Kerberos 请执行以下步骤:

1、安装必需的软件包

yum -y install authconfig-gtk sssd krb5-workstation pam_krb5(必须)

2、启动 authconfig-gtk

3、填写相关信息,如图

image.png
1530842356574303.png

4、如果支持 TLS ,请选中使用 TLS 加密连接,然后下载 CA 证书

5、从身份验证方法下载菜单选择 Kerberos 密码,然后填写域,KDC 和管理服务器字段。如果选中使用 DNS 查找域的 KDC 选项,则最后两个字段不可用。

6、如果中央目录不可用,用户可以通过选项高级选项上的在首次登录时创建的主目录框,在首次登录时创建目录

7、单击应用按钮以保存并激活更改。这将写入所有相关配置文件,并(重新)启动 sssd 服务。

测试配置

要测试 LDAP + Kerberos 配置,管理员只需要尝试使用某个网络用户的凭据登录系统(通过ssh ),此外,getent 命令可用于检索有关某个网络用户的信息,格式为 getent passwd <USERNAME>

TIPS

在默认配置中,当没有为 getent 命令指定用户名时, sssd 不会列举网络用户,这是为保持图形登录 屏幕的整洁以及节省宝贵的网络资源和时间。

将系统连接到 IPA 服务器

红帽提供了一种配置 LDAP 和 Kerberos 的集成解决方案:IPA (身份、策略和审核)服务器。 IPA 服务器提供 LDAP 和 Kerberos ,还有一套基于命令行和基于Web 的管理工具。除用户和身份验证信息以外, IPA 服务器还可以将 sudo 规则、ssh 公钥、SSH 主机密钥、TLS 证书、自动挂载器映射以及更多功能集中化。

使用 ipa-client

可以通过 authconfig 这套工具将 RHEL7 系统配置为使用 IPA 服务器,但还有一种专用的工具: ipa-client-install 。此命令可从ipa-client 包安装,该软件包将引入所有依赖关系(如 sssd)

使用 ipa-client-install 的优势之一是,它可以从DNS 检索到几乎所有的必要信息(当由IPA服务器配置或由管理员手动配置时),并能够在 IPA服务器上创建主机条目和更多信息。这就使 IPA 服务器管理员可以为该主机设置访问策略、创建服务主体(例如,对于 NFSv4 导出)等等

当不带任何参数运行 ipa-client-install 时,它将首次尝试从 DNS 检索有关为其DNS 域配置的 IPA 服务器信息,如果失败,它将提示管理员输入必要信息,例如IPA 服务器的域名和要使用的域。需要提供的其他信息是允许在 IPA 服务器上创建新计算机条目的账户的用户名和密码。除非已为此目的创建了另一个账户,否则默认 IPA 服务器管理员账户(admin) 可以用于此目的。

DNS 驱动配置参考:

ipa-client-install --domain=server0.example.com --no-ntp --mkhomedir
image.png
1530861460111883.png

可以将所有必需信息作为命令行参数指定,从而使无人值守设置作为系统初始配置的一部分完成:例如通过 kickstart 指定这些信息。

使系统加入 Active Directory

RHEL 7 提供多种方法可使系统加入 Active Directory 。管理员可以选择安装 samba-winbind 软件包,然后通过 authconfig 系统工具配置winbind;,也可以安装 sssdrealmd 软件包,然后使用 sssd realm 命令。

注意: rcalm 命令也可以用于加入 Kerberos 域或 IPA 服务器域,但最终配置略有不同。例如,用户的用户名将加上@domain .ipa-client-install 是加入 IPA 域的首选方法。

例:假定 Active Directory 域名为 domain.example.com

1、yum -y install realmd        #安装必要的软件包 realmd 
2、sudo realm discover domain.example.com        #发现domain域的设置
3、sudo realm join domain.example.com             #加入域并配置 sssd、pam、 /etc/nsswitch.conf .此命令尝试使用 Administrator 账户使本地系统加入 Active directory ,系统提示时输入此账户密码。要使用其它账户,请使用 --user 参数。
4#Active Directory 账户现在本地可用,但使用 Active Directory 登录仍处理禁用状态。要启用登录,请使用以下命令:
sudo realm permit --realm domain.example.com --all
#要仅允许特定用户登录,请将 --all 替换为这些用户的列表。例如:
sudo realm permit --realm domain.example.com DOMAIN\\Itchy DOMAIN\\Scratchy.

注意

默认情况下,域用户必须使用其完全限定名称登录;例如

ipauser@ipa.example.com (IPA 用户) 或 DOMAIN\Picard (Active Directory)。要禁用此功能,请将 /etc/sssd/sssd.conf 中相应域块中的 use_fully_qualified_names 设置更改为False ,或将其完全删除,然后重新启动 sssd 服务。

authconfig{ , -{ ,-gtk , -tui}} 可用于将系统配置为使用集中式身份管理服务

sssd 配置为后台检索、验证缓存身份验证和用户信息。

错误解决办法

getent passwd ldapuser0 无法获取的时候看一下有没有安装pam_krb5 的库
::

上次编辑于:
贡献者: change,lichangyangccm@163.com
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3