1、OpenLDAP 客户端 SSSD 配置
1.1、客户端软件安装
yum -y install openldap-clients sssd authconfig nss-pam-ldapd
1.2、拷贝 OpenLDAP 服务器的/etc/openldap/certs 目录下的私钥和公钥至OpenLDAP 客户端节点/etc/openldap/cacerts 目录下
cd /etc/openldap/certs/
scp ldap.key ldap.crt root@cdh2.macro.com:/etc/openldap/cacerts/
scp ldap.key ldap.crt root@cdh3.macro.com:/etc/openldap/cacerts/
提示如下错误,先在客户端创建该目录
mkdir /etc/openldap/cacerts/
1.3、在客户端节点上执行如下命令
cacertdir_rehash /etc/openldap/cacerts/
ll /etc/openldap/cacerts/
1.4、执行如下命令启用 sssd 服务
在如下参数中—enableldaptls 如果 OpenLDAP 服务未启用 TLS 则将此参数修改为—disableldaptls
authconfig --enableldaptls --disableforcelegacy --disablekrb5 --ldapserver ldap://cdh1.macro.com --ldapbasedn "dc=macro,dc=com" --enablemkhomedir --update
1.5、修改/etc/sssd/sssd.conf 文件
- 在执行 authconfig 命令时会默认生成,如果文件不存在则新建,文件内容如下
```shell [domain/default]vi /etc/sssd/sssd.conf
autofs_provider = ldap ldap_schema = rfc2307bis ldap_search_base = dc=macro,dc=com id_provider = ldap auth_provider = ldap chpass_provider = ldap ldap_uri = ldap://cdh1.macro.com ldap_id_use_start_tls = True ldap_tls_cacertdir = allow cache_credentials = True ldap_tls_cacertdir = /etc/openldap/cacerts [sssd] services = nss, pam, autofs
domains = default [nss] homedir_substring = /home
[pam]
![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606200373066-75ebcc7b-aa75-4546-9349-0e4faa3528f8.png#align=left&display=inline&height=712&margin=%5Bobject%20Object%5D&name=image.png&originHeight=712&originWidth=764&size=46810&status=done&style=none&width=764)
<a name="pQYoF"></a>
## 1.6、修改 sssd.conf 文件权限
```shell
chmod 600 /etc/sssd/sssd.conf
ll /etc/sssd/sssd.conf
1.7、启动 sssd 服务并加入系统自启动
systemctl start sssd
systemctl enable sssd
systemctl status sssd
1.8、通过 id 查看用户 OpenLDAP 的用户
more /etc/passwd | grep ldapuser1
id ldapuser1
2、OpenLdap 与 SSH 集成
2.1、修改配置文件
- PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。
修改配置文件/etc/ssh/sshd_config,使 ssh 通过 pam 认证账户
vi /etc/ssh/sshd_config
修改配置文件/etc/pam.d/sshd,以确认调用 pam 认证文件
vi /etc/pam.d/sshd
加入这一行确保登录成功后创建用户的 home 目录修改配置文件
vim /etc/pam.d/password-auth
在如下配置文件的四个地方添加如下内容
auth sufficient pam_ldap.so forward_pass
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
password sufficient pam_ldap.so use_authtok
session optional pam_ldap.so
修改/etc/pam.d/system-auth 配置文件
vi /etc/pam.d/system-auth
添加如下配置到/etc/pam.d/system-auth
auth sufficient pam_ldap.so forward_pass
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
password sufficient pam_ldap.so use_authtok
session optional pam_ldap.so
重启 sshd 服务
systemctl restart sshd
systemctl status sshd
3、验证SSH登录
3.1、确认root 用户只存在于 OpenLDAP
more /etc/passwd |grep ldapuser1
id ldapuser1
3.2、su 切换到 ldapuser1 用户
su ldapuser1
3.3、ssh 登录本机
重启 sssd 和 nslcd 服务。 systemctl restart sssd systemctl restart nslcd
systemctl restart sssd
systemctl restart nslcd
ssh ldapuser1@localhost
pwd
4、安装过程中的问题解决
4.1、ssh登录本机失败,密码错误,截图如下:
原因:添加ldapuser1用户时user.ldif文件没有设置密码。
解决方案:使用管理员用户修改密码
ldappasswd -H ldap://cdh1 -x -D "cn=Manager,dc=macro,dc=com" -W -S "uid=ldapuser1,ou=People,dc=macro,dc=com"
4.2、启动sssd失败,找不到配置文件截图如下。
检查配置文件,发现缺少配置块的指定,截图如下。