配置Linux使用LDAP用户认证的方法

  • Post category:Linux

下面是配置Linux使用LDAP用户认证的方法的完整攻略。

1. 安装LDAP客户端软件

首先需要安装LDAP客户端软件,推荐使用ldap-utilslibnss-ldap两个软件包。

sudo apt-get install ldap-utils libnss-ldap

2. 配置LDAP认证信息

编辑/etc/ldap/ldap.conf文件,填入LDAP服务器信息。

sudo vi /etc/ldap/ldap.conf

设置以下内容:

# 指定LDAP服务器的URI,可以填写多个
uri ldap://ldap.example.com

# 指定用于连接LDAP服务器的dn和密码
# 这里用了一个DN和密码,也可以使用匿名绑定方式
# 注意换成实际的DN和密码
base dc=example,dc=com
binddn cn=admin,dc=example,dc=com
bindpw ldap_password

# 指定要使用的LDAP协议版本
ldap_version 3

# 指定搜索时使用的范围,可以是sub、one或base
# sub指搜索整个子树,one指只搜索当前节点及其直接子节点,base指只搜索当前节点
scope sub

3. 配置NSS

编辑/etc/nsswitch.conf文件,将ldap添加到passwdshadowgroup行中。

sudo vi /etc/nsswitch.conf

将以下行:

passwd:         compat
group:          compat
shadow:         compat

改为:

passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap

4. 测试LDAP认证配置

使用getent命令测试是否能获取到LDAP用户信息。例如,可以使用以下命令查看LDAP用户列表:

getent passwd

如果成功获取LDAP用户列表,则配置成功。

示例1:使用LDAP账户登录

现在我们来测试使用LDAP账户登录。需要先创建一个LDAP用户,例如ldapuser,并设置密码。

sudo ldapadduser ldapuser
sudo ldappasswd -x -w [LDAP管理员密码] -D "cn=admin,dc=example,dc=com" -S uid=ldapuser,ou=people,dc=example,dc=com

然后使用该账户登录,如果登录成功,则验证通过。

示例2:使用LDAP账户管理Samba共享

接下来我们来给LDAP用户发布Samba共享。需要先创建Samba共享目录,并设置访问权限。

然后在Samba配置文件中添加以下行:

[global]
# ... 其他配置

## 指定Samba用户需要使用的用户数据库类型
passdb backend = ldapsam:ldap://localhost

## LDAP管理员DN和密码
ldap admin dn = cn=admin,dc=example,dc=com
ldap admin password = ldap_password

## 指定要使用的LDAP版本
ldap ssl = no
ldap password sync = yes
ldap delete dn = no

## 将Samba用户与LDAP用户关联
ldap suffix = dc=example,dc=com
ldap user suffix = ou=people
ldap group suffix = ou=groups

## 允许Samba用户使用LDAP账户进行认证
# 注意smbpasswd一定要是可执行文件,而不是软链接等
passdb backend = ldapsam:ldap://127.0.0.1
smb passwd file = /usr/local/samba/private/smbpasswd

保存配置文件后,重启Samba服务,测试使用LDAP用户进行Samba共享访问。

至此,配置Linux使用LDAP用户认证的方法就讲解完毕了。