NIS与Active Directory集成
介绍如何在Linux VDA环境下,通过SSSD方式将NIS与Windows AD (Active Directory)集成。Linux VDA被认为是Citrix虚拟应用程序和桌面的一个组件。因此,它非常适合Windows AD环境。
使用NIS而不是AD作为UID和GID提供者要求AD和NIS中的帐户信息(用户名和密码组合)相同。
注意:
认证仍由AD服务器进行。不支持NIS+。如果使用NIS作为UID和GID提供者,则不再使用来自Windows服务器的POSIX属性。
提示:
此方法表示一种已弃用的Linux VDA部署方式,仅用于特殊用例。对于RHEL/CentOS发行版,请按照安装Linux Virtual Delivery Agent for RHEL/CentOS.对于Ubuntu发行版,请遵循安装Linux Virtual Delivery Agent for Ubuntu.
什么是SSSD?
SSSD是一个系统守护进程。它的主要功能是通过一个公共框架提供对远程资源的识别和身份验证,该框架可以为系统提供缓存和脱机支持。它同时提供PAM和NSS模块,将来还可以支持基于D-BUS的接口来扩展用户信息。它还提供了更好的数据库来存储本地用户帐户和扩展用户数据。
NIS与AD集成
NIS与AD的集成操作如下:
添加Linux VDA作为NIS客户端
NIS客户端配置:
Yum -y install ypbind rpcbind oddjob-mkhomedir
设置NIS域:
ypdomainname nis。域echo "NISDOMAIN=nis.domain" >> /etc/sysconfig/network
中添加NIS服务器和客户端的IP地址设置:
{NIS服务器IP地址}server. NIS .domain NIS .domain
配置NISauthconfig
:
Sudo authconfig——enablenis——nisdomain=nis。域——nisserver = server.nis。域--enablemkhomedir --update
的nis.domain表示NIS服务器的域名。的server.nis.domain表示NIS服务器的主机名,也可以是NIS服务器的IP地址。
NIS服务配置:
Sudo systemctl start rpcbind ypbind Sudo systemctl enable rpcbind ypbind
请确保NIS配置正确:
ypwhich < !——NeedCopy >
验证帐户信息是否可从NIS服务器获得:
Getent passwd nisaccount
注意:
的nisaccount表示NIS服务器上真实的NIS帐号。请确保UID、GID、home directory、login shell配置正确。
加入域并使用Samba创建主机密钥选项卡
SSSD不提供AD客户端加入域和管理系统keytab文件的功能。实现这些功能有几种方法,包括:
adcli
realmd
Winbind
Samba
本节中的信息仅描述Samba方法。为realmd
,请参见RHEL或CentOS厂商的文档。在配置SSSD之前,必须遵循这些步骤。
使用Samba加入域并创建主机keytab:
在配置文件正确的Linux客户端:
- /etc/krb5.conf
- /etc/samba/smb.conf:
为Samba和Kerberos身份验证配置机器:
sudo authconfig——smbsecurity=ads——smbworkgroup=domain——smbrealm=REALM——krb5realm=REALM——krb5kdc=fqdn-of-domain-controller——update
在哪里领域Kerberos领域名是大写的和域为域的NetBIOS名称。
如果需要通过dns方式查找KDC服务器和域名,则在命令中增加以下两个选项:
——enablekrb5kdcdns enablekrb5realmdns
开放/etc/samba/smb.conf的下面添加以下条目(全球)节,但节后生成的authconfig工具:
Kerberos方法= secrets和keytab
Winbind离线登录= no
加入Windows域要求您的域控制器可达,并且您有AD用户帐户,具有将计算机添加到域的权限:
sudo网络广告加入REALM -U用户
领域
Kerberos领域名是大写的和用户
域用户,具有将计算机添加到域的权限。
设立SSSD
设置SSSD包括以下步骤:
- 安装sssd-ad而且sssd-proxyLinux客户端机器上的包。
- 对各种文件进行配置更改(例如,sssd.conf).
- 启动sssd服务.
/etc/sssd/sssd.conf
一个例子sssd.conf配置(可根据需要添加更多选项):
[sssd] config_file_version = 2 domains = EXAMPLE services = nss, pam [domain/EXAMPLE] #取消注释如果您需要离线登录# cache_credentials = true re_expression = ((?P[^\\]+)\\(?P.+$))|((?P[^@]+)@(?P.+$))|(^(?P[^@\\]+)$)) id_provider = proxy proxy_lib_name = nis auth_provider = ad access_provider = ad #应该指定为Active Directory域的长版本。ad_domain = EXAMPLE.COM Kerberos设置krb5_ccachedir = / tmp krb5_ccname_template =文件:% d / krb5cc_ % U #取消如果不工作服务发现# ad_server = server.ad.example.com注释掉如果用户有壳和家庭dir设置在广告方面default_shell = /bin/bash fallback_homedir = /home/ % d / % U #取消和调整如果默认主SHORTNAME @REALM美元不可用# ldap_sasl_authid =主机/ client.ad.example.com@AD.EXAMPLE.COM < !——NeedCopy >
取代ad.domain.com,server.ad.example.com对应的值。有关详细信息,请参见sssd-ad(5) - Linux手册页.
将文件的所有权和权限设置为开启sssd.conf:
Chown root:root /etc/sssd/sssd.conf
Chmod 0600 /etc/sssd/sssd.conf
restorecon /etc/sssd/sssd.conf
配置NSS /帕姆
RHEL / CentOS:
使用authconfig启用SSSD。安装oddjob-mkhomedir确保创建的主目录与SELinux兼容:
Authconfig——enablesssd——enablesssdauth——enablemhomedir——update sudo systemctl start SSSD sudo systemctl enable SSSD
提示:
在配置Linux VDA设置时,请考虑对于SSSD, Linux VDA客户端没有特殊的设置。对于额外的解ctxsetup.sh脚本,使用默认值。
验证Kerberos配置
要确保正确配置Kerberos以用于Linux VDA,请检查系统keytab文件已创建并包含有效的密钥:
Sudo klist -ke
此命令显示可用于主体名称和密码套件的各种组合的密钥列表。运行Kerberoskinit命令使用这些密钥通过域控制器验证计算机:
sudo kinit -k MACHINE\$@REALM
机器名和领域名必须用大写字母指定。美元符号($)必须用反斜杠(\)转义,以防止shell替换。在某些环境中,DNS域名与Kerberos域名不同。确保使用了领域名。如果命令执行成功,则无输出。
验证机器帐户的TGT票据已经使用以下方法缓存:
Sudo klist -ke
验证用户身份验证
使用getent命令验证登录格式是否支持,以及NSS是否正常工作:
sudo getpasswd DOMAIN\\username
的域参数表示短版本域名。如果需要另一种登录格式,请使用getent命令。
支持的登录格式为:
- 低级登录名:
域\用户名
- 隐喻:
username@domain.com
- NetBIOS后缀格式:
username@DOMAIN
为了验证SSSD PAM模块的配置是否正确,请使用域用户帐号登录Linux VDA。该域用户帐号未使用过。
sudo ssh localhost -l DOMAIN\\username id -u
方法创建了相应的Kerberos凭据缓存文件uid由命令返回:
Ls /tmp/krb5cc_{uid}
检查用户的Kerberos凭据缓存中的票据是否有效且未过期:
中< !——NeedCopy >