LDAP 系列(3):Samba over LDAP

本次将介绍如何将 Samba 和 LDAP 结合使用,使用 LDAP 对 Samba 账户进行统一管理。

前提

在结合 LDAP 和 Samba 时请确保已有 LDAP 服务器和 Samba 服务器。

LDAP 服务器配置参见LDAP 系列(1):快速搭建 LDAP 服务器。假设LDAP 服务器参数如下:

参数
DN dc=hikscale,dc=com
IP地址 192.168.0.1
管理员CN cn=Manager,dc=hikscale,dc=com
用户OU ou=People,dc=hikscale,dc=com
用户组OU ou=Group,dc=hikscale,dc=com
Samaba域名 HIKSCALE

Samba 服务器配置请安装 samba 服务yum install samba samba-client samba-common cifs-utils

配置 LDAP 服务器

我们只配置了三个基础模块。要将 Samba 和 LDAP 结合使用,需要向 LDAP 服务器增加 Samba 用户模板信息:

  1. 将模板信息samba.ldidf拷贝到 LDAP 的schemas下。其中,samba.ldif位于 Samba 服务器的/usr/share/doc/samba-x.x.x/LDAP/路径下(x.x.x是 Samba 的版本号),LDAP 的schemas在/etc/openldap/schemas
  2. 在 LDAP 服务器执行命令ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/samba.ldif,将 Samba 模板加入 LDAP 服务器。

配置 Samba 服务器

修改 Samba 配置

添加修改/etc/samba/smb.conf中 global 字段中的以下参数:

参数 格式
workgroup workgroup = (大写)
passdb backend passdb backend = ldapsam:ldap://:(端口默认389)
ldap suffix ldap suffix =
ldap user suffix ldap user suffix = <用户ou>
ldap group suffix ldap group suffix = <用户组ou>
ldap admin dn ldap admin dn = <管理员cn>
ldap ssl ldap ssl = start_tls/no
netbios name netbios name =
ldap passwd sync ldap passwd sync = yes/no/only

以本文为例,则新增配置如下:

1
2
3
4
5
6
7
8
9
workgroup = HIKSCALE
passdb backend = ldapsam:ldap://192.168.0.1:389
ldap suffix = dc=hikscale,dc=com
ldap user suffix = ou=People,dc=hikscale,dc=com
ldap group suffix = ou=Group,dc=hikscale,dc=com
ldap admin dn = cn=Manager,dc=hikscale,dc=com
ldap ssl = no
netbios name = hikscale
ldap passwd sync = yes

将 Samba 服务器配置成 LDAP 客户端

参见LDAP系列(2):快速配置 LDAP 客户端,采用手动配置,修改 PAM 配置时只需要修改/etc/pam.d/password-auth文件。

配置 LDAP 管理员密码

在 Samba 服务器执行命令smbpasswd -w <管理员cn的密码>

重启 Samba 服务systemctl restart smb

验证

在 Samba 服务器使用命令pdbedit -L可以看到 Samba 用户。