Chapter8 - 连接到网络定义的用户和组
使用身份管理服务
用户信息和身份验证服务
集中式身份管理系统至少需要提供两项服务:
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、填写相关信息,如图

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

可以将所有必需信息作为命令行参数指定,从而使无人值守设置作为系统初始配置的一部分完成:例如通过 kickstart
指定这些信息。
使系统加入 Active Directory
RHEL 7 提供多种方法可使系统加入 Active Directory 。管理员可以选择安装 samba-winbind
软件包,然后通过 authconfig
系统工具配置winbind;,也可以安装 sssd
和 realmd
软件包,然后使用 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 的库
::