在CentOS 6/7上配置OpenLDAP SSSD客户端

您是否有旧的CentOS系统,CentOS 7或CentOS 6,并想启用OpenLDAP身份验证?好吧,请按照本指南进行操作,以了解如何配置OpenLDAP 固态硬盘 CentOS 6/7上的客户端。嗯,您可能已经知道,SSSD提供了很多好处,包括:

  • 通过缓存身份验证信息,减少了身份和身份验证服务器上的负载。
  • 通过使用缓存的用户身份和凭据提供脱机身份验证,因此即使远程服务器或SSSD客户端处于脱机状态,最终用户也可以向系统进行身份验证。
  • 通过单个用户中央用户帐户提高身份验证过程的一致性

在CentOS 6/7上配置OpenLDAP SSSD客户端

设置具有TLS / SSL支持的OpenLDAP服务器

好吧,如果没有运行的OpenLDAP服务器,就无法为SSLDAP客户端设置OpenLDAP身份验证。是否想在CentOS 8系统上运行OpenLDAP服务器?请点击以下链接进行设置;

在CentOS 8上安装和设置OpenLDAP

要注意的另一件事是, SSSD不支持通过未加密的通道进行身份验证

要将OpenLDAP服务器配置为具有SSL / TLS支持,可以按以下方式更新OpenLDAP服务器TLS证书属性:

vi enable-tls.ldif
dn: cn=config
changetype: modify
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/pki/tls/cacert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/pki/tls/ldapserver.key
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/pki/tls/ldapserver.crt

相应地替换CA,服务器证书和密钥的路径。

您可以按照以下步骤更新OpenLDAP数据库;

ldapadd -Y EXTERNAL -H ldapi:/// -f add-tls.ldif

您可以通过运行来确认。

slapcat -b "cn=config" | grep olcTLS
olcTLSCACertificateFile: /etc/pki/tls/cacert.pem
olcTLSCertificateKeyFile: /etc/pki/tls/ldapserver.key
olcTLSCertificateFile: /etc/pki/tls/ldapserver.crt

更改CA证书的位置 /etc/openldap/ldap.conf

vim /etc/openldap/ldap.conf
...
#TLS_CACERT     /etc/pki/tls/cert.pem
TLS_CACERT     /etc/pki/tls/cacert.pem

您还应该在所有客户端计算机上安装相同的CA证书。

在CentOS 6 / CentOS 7上安装SSSD

安装用于操作用户,组和嵌套组的SSSD和其他SSSD用户空间工具,请运行以下命令;

yum install sssd sssd-tools

配置SSSD进行OpenLDAP身份验证

安装完成后,下一步是为CentOS 6 / CentOS 7上的OpenLDAP认证配置SSSD。

默认情况下,SSSD不会创建配置文件。因此,您需要创建它并定义身份验证参数选项。

vim /etc/sssd/sssd.conf

设置SSSD LDAP身份验证参数,使其如下所示;

[sssd]
services = nss, pam
config_file_version = 2
domains = default

[nss]

[pam]
offline_credentials_expiration = 60

[domain/default]
ldap_id_use_start_tls = True
cache_credentials = True
ldap_search_base = dc=ldapmaster,dc=kifarunix-demo,dc=com
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
access_provider = ldap
ldap_uri = ldap://ldapmaster.kifarunix-demo.com
ldap_default_bind_dn = cn=readonly,ou=system,dc=ldapmaster,dc=kifarunix-demo,dc=com
ldap_default_authtok = [email protected]
ldap_tls_reqcert = demand
ldap_tls_cacert = /etc/openldap/certs/cacert.pem
ldap_search_timeout = 50
ldap_network_timeout = 60
ldap_access_order = filter
ldap_access_filter = (objectClass=posixAccount)

至少为以下参数设置适当的值;

  • ldap_search_base
  • ldap_uri
  • ldap_default_bind_dn
  • ldap_default_authtok
  • ldap_tls_cacert
  • ldap_access_filter

通过运行以下命令下载OpenLDAP服务器的CA证书。

true | openssl s_client -connect ldapmaster.kifarunix-demo.com:636 2>/dev/null | openssl x509

复制证书并将其存储在指定文件中,其值取决于 ldap_tls_cacert 参数, /etc/openldap/certs/cacert.pem

vim /etc/openldap/certs/cacert.pem
-----BEGIN CERTIFICATE-----
MIIDPDCCAiSgAwIBAgIULKGcNBKQU9LqklS27aLVr5NFgoQwDQYJKoZIhvcNAQEL
BQAwHzEdMBsGA1UEAwwUKi5raWZhcnVuaXgtZGVtby5jb20wHhcNMjAwNDEzMTAx
...
sLwoxITLon23PB1Twc6heMFh1hkug3JXbtr5AJglU8JdGNtXM6e3ct+cAf2F/hRR
HGs85jrn634RNXMPWZ8lqChr1QLKlDsOz89tTQ4zvDBqQPweo8de2B/ybTIUJu0o
OUyCrLx8BK44vjEz0jvpOA==
-----END CERTIFICATE-----

另外,在 /etc/openldap/ldap.conf 配置中,指定CA证书的路径(由的值定义) ldap_tls_cacertdir 参数。

vim /etc/openldap/ldap.conf
...
TLS_CACERT /etc/openldap/certs/cacert.pem

验证CA证书;

openssl s_client -connect ldapmaster.kifarunix-demo.com:636 -CAfile /etc/openldap/certs/cacert.pem

如果您得到了, 验证返回码:0(确定) 状态,那么证书就可以了。

在SSSD配置文件上设置适当的所有权和权限。

chown -R root:root /etc/sssd/
chmod -R 600 /etc/sssd/

在CentOS 7 / CentOS 6上将NSS和PAM与SSSD集成

更新NSS和PAM以使用SSSD管理身份验证资源。这可以通过使用 authconfig 效用

配置自动主目录创建

安装 oddjob-mkhomedir,它提供了 pam_oddjob_mkhomedir 模块在登录时为用户创建主目录。

yum install oddjob-mkhomedir

加载 pam_oddjob_mkhomedir PAM身份验证文件中的模块 /etc/pam.d/system-auth 启用自动主目录创建。

echo "session optional pam_oddjob_mkhomedir.so skel=/etc/skel/ umask=0022" >> /etc/pam.d/system-auth

启动并启用oddjobd在系统引导上运行。

在CentOS 7上;

systemctl enable --now oddjobd

在CentOS 6上;

service messagebus start
service oddjobd start
chkconfig messagebus on
chkconfig oddjobd on

接下来,更新NSS和PAM配置。

authconfig --enablesssd --enablesssdauth --enablemkhomedir --update

这些命令更新 /etc/nsswitch.conf/etc/pam.d/system-auth/etc/pam.d/password-auth SSSD相关PAM模块的文件。

在CentOS 6 / CentOS 7上运行SSSD

现在完成配置。启动并启用SSSD在系统启动时运行。

在CentOS 7上

systemctl enable --now sssd

在CentOS 6上;

service sssd start
chkconfig sssd on

检查状态。

systemctl status sssd
● sssd.service - System Security Services Daemon
   Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-04-13 16:31:30 EAT; 3s ago
 Main PID: 10472 (sssd)
   CGroup: /system.slice/sssd.service
           ├─10472 /usr/sbin/sssd -i --logger=files
           ├─10473 /usr/libexec/sssd/sssd_be --domain default --uid 0 --gid 0 --logger=files
           ├─10474 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files
           └─10475 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --logger=files

Apr 13 16:31:30 centos7.kifarunix-demo.com systemd[1]: Stopped System Security Services Daemon.
Apr 13 16:31:30 centos7.kifarunix-demo.com systemd[1]: Starting System Security Services Daemon...
Apr 13 16:31:30 centos7.kifarunix-demo.com sssd[10472]: Starting up
Apr 13 16:31:30 centos7.kifarunix-demo.com sssd[be[default]][10473]: Starting up
Apr 13 16:31:30 centos7.kifarunix-demo.com sssd[nss][10474]: Starting up
Apr 13 16:31:30 centos7.kifarunix-demo.com sssd[pam][10475]: Starting up
Apr 13 16:31:30 centos7.kifarunix-demo.com systemd[1]: Started System Security Services Daemon.
service sssd status
sssd (pid 2913) is running…

通过SSSD验证OpenLDAP身份验证

在我们的OpenLDAP服务器中,我们创建了一些用户条目。

ldapsearch -H ldapi:/// -Y EXTERNAL -b "ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com" uid -LLL -Q
dn: ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com

dn: uid=janedoe,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com
uid: janedoe

dn: uid=johndoe,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com
uid: johndoe

现在,在CentOS 7或CentOS 6上,取决于所使用的LDAP过滤器,您应该在系统上拥有用户。使用id命令进行验证。

[[email protected] ~]# id janedoe
uid=10010(janedoe) gid=10010(janedoe) groups=10010(janedoe)
[[email protected] ~]# id johndoe
uid=10000(johndoe) gid=10000(johndoe) groups=10000(johndoe)
[[email protected] ~]#

验证自动主目录创建。

[[email protected] ~]# ssh -l janedoe localhost
[email protected]'s password:
Creating home directory for janedoe.
Last login: Mon Apr 13 16:24:36 2020
[[email protected] ~]$ pwd
/home/janedoe
[[email protected] ~]# ssh -l johndoe localhost
[email protected]'s password:
Creating home directory for johndoe.
[[email protected] ~]$ pwd
/home/johndoe

您已在CentOS 7和CentOS 6上通过SSSD成功验证了OpenLDAP用户。

这使我们结束了有关如何在CentOS 6/7上安装和配置OpenLDAP SSSD客户端的指南的结尾。

Sidebar