LDAP系列(2):快速配置 LDAP 客户端

本章将使用 CentOS 7.x 配置 LDAP 的客户端,支持使用LDAP用户和本地用户同时登陆系统。

安装

首先安装依赖包:

1
yum install openldap-clients nscd nss-pam-ldapd

配置

系统环境配置

在 CentOS 和 Redhat 系列发行版中,可以选择使用系统工具自动配置,也可以使用手动方式手动配置 LDAP 客户端。

系统工具

该系列发行版中已经提供了authconfig/authconfig-tui一个命令行工具一个CUI 工具。

authconfig

使用如下命令配置 LDAP 服务器:

1
authconfig --enableldap --enableldapauth --ldapserver=<服务器> --ldapbasedn=<dn> [--enableldaptls] [--ldaploadcacert=<URL>]

其中,服务器填写 LDAP 的 IP 地址或者域名;dn填写 LADP 服务器的 basedn;方括号里关于 tls 可选填,都是关于安全的配置。

authconfig-tui

使用 CUI,首先选择使用LDAP使用 LDAP 认证

image-20180729131515216

然后,填写配置信息:

image-20180729131707934

如选择了使用 TLS,根据提示将证书拷贝到指定位置。

手动配置

使用系统配置的好处的方便,但是有时候我们需要更多灵活配置则需要自己手动设置。

首先,编辑/etc/sysconfig/authconfig,修改操作系统的认证配置内容。修改以下内容:

1
2
USELDAP=yes
USELDAPAUTH=yes

其次,修改/etc/nsswitch.conf,修改命名空间转换配置。修改以下内容:

1
2
3
passwd:     files ldap
shadow: files
group: files ldap

然后,修改/etc/pam.d/password-auth/etc/pam.d/system-auth 配置如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# auth section
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so

# account section
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account pam_succeed_if.so uid < 1000 quit
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
# password section
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_ldap.so use_authtok
password required pam_deny.so

# session section
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_ldap.so

LDAP客户端配置

编辑 OpenLDAP 客户端配置文件/etc/openldap/ldap.conf,修改以下内容

1
2
URL ldap://<ip:port>
BASE <dn>

nslcd 配置

编辑nslcd配置文件/etc/nscld.conf,修改以下内容

1
2
url ldap://<ip:port>
base <dn>

重启 nslcd 服务(namespace ldap client daemon):

1
systecmctl restart nslcd

TLS

如果使用了 TLS 加密,需要再次修改 OpenLDAP client 和 nslcd 配置。

  • 编辑 OpenLDAP 客户端配置文件/etc/openldap/ldap.conf
1
2
TLS_CACERTDIR <cart file path>
TLS_REQCERT allow
  • 编辑nslcd配置文件/etc/nscld.conf:
1
2
tls_cacertdir <cart file path>
tls_reqcert allow

重启 nslcd 服务systecmctl restart nslcd

验证

验证 LDAP 客户端是否配置成功,可以简单使用以下命令:

1
2
3
4
# method 1
ldapsearch -x
# method 2
id <ldap username>