配置Linux使用LDAP用户认证 (2)

image.png

我们这里先导入一个用户用于后面的测试使用

image.png


image.png


NSS 、PAM 和 SSSD 配置

NSS服务配置

如果想使 nss 可以查询ldap,那么首先就需要启用一个叫 nslcd 的服务, 以下是该服务的配置文件。

# file: /etc/nslcd.conf uid nslcd gid ldap uri ldap://127.0.0.1/ base dc=black,dc=com binddn cn=Manager,dc=black,dc=com bindpw 123456 ssl no tls_cacertdir /etc/openldap/cacerts

启动服务

chmod 600 /etc/nslcd.conf systemctl start nslcd systemctl enable nslcd

配置nss

# file: /etc/nsswitch.conf passwd: files ldap # 主要就是 passwd、shadow 和 group 这3行需要后面添加ldap shadow: files ldap group: files ldap hosts: files dns myhostname bootparams: nisplus [NOTFOUND=return] files ethers: files netmasks: files networks: files protocols: files rpc: files services: files sss netgroup: nisplus sss publickey: nisplus automount: files nisplus sss aliases: files nisplus

测试是否可用:

getent passwd | grep black

black❌1001:1001:black:/home/black:/bin/bash

PAM服务配置

这里PAM的配置文件我是从另一台使用authconfig-tui 配置内容拷过来的。

# file: /etc/pam.d/system-auth auth required pam_env.so auth required pam_faildelay.so delay=2000000 auth [default=1 ignore=ignore success=ok] pam_succeed_if.so uid >= 1000 quiet auth [default=1 ignore=ignore success=ok] pam_localuser.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth sufficient pam_sss.so forward_pass auth required pam_deny.so account required pam_unix.so broken_shadow account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account [default=bad success=ok user_unknown=ignore] pam_sss.so account required pam_permit.so password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password sufficient pam_sss.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so -session optional pam_systemd.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_sss.so

PAM不用进行服务重启,直接可以使用

sssd服务配置

针对LDAP用户登入,PAM配置会将其转发给SSSD,由SSSD来认证用户。

# file: /etc/sssd/sssd.conf [domain/black.com] autofs_provider = ldap cache_credentials = True ldap_search_base = dc=black,dc=com id_provider = ldap auth_provider = ldap chpass_provider = ldap ldap_uri = ldap://127.0.0.1/ ldap_id_use_start_tls = True ldap_tls_reqcert = never ldap_tls_cacertdir = /etc/openldap/cacerts [sssd] services = nss, pam, autofs domains = black.com [nss] homedir_substring = /home [pam] [sudo] [autofs] [ssh] [pac] [ifp] [secrets] [session_recording]

配置启动服务,并且设置开机自启动。

chmod 600 /etc/sssd/sssd.conf # 注意权限的配置,否则无法启动。 systemctl start sssd systmctl enable sssd

测试

那么这样用户认证的部分就制作好了,那么现在来测试一下:
因为配置的 system-auth 文件,并没有配置 ssh 文件,所以ssh是连接不进去的。所以这里使用login来测试可行性。

image.png


脚本

我为这个LDAP用户认证写了一个脚本,方便添加用户。
脚本放在gitee上了。https://gitee.com/somata/script/blob/master/ldap_adduser.sh
使用方法很简单

image.png


然后再测试一下这个添加的用户是否可以登入:

image.png

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzxjjp.html