Bri*_*man 6 openldap ldap samba samba4
我希望设置一个使用 LDAP 进行后端身份验证的新 Samba 文件共享。LDAP 服务器已经设置,并且 Samba 服务器所在的机器已经设置为允许使用 LDAP 身份验证的 SSH 访问。
Samba/LDAP 集成的最常见用例似乎涉及在 LDAP 服务器上存储 Samba 模式、同步密码、允许通过 Samba 将密码更新到 LDAP,等等。我不是在寻找任何这些 - 我想要做的就是让 Samba 服务器通过 LDAP 匿名身份验证,并检索用户的组数据,以便可以在 Samba 配置中处理授权。
如果重要:
这是我到目前为止所拥有的:
[global]
server string = Samba Server (%v)
workgroup = WORKGROUP
interfaces = eno1
server role = standalone server
log file = /var/log/samba/smb.log
max log size = 10000
log level = 3 passdb:5 auth:5
passdb backend = ldapsam:ldaps://hostname
ldap suffix = dc=hostname,dc=TLD
ldap user suffix = cn=users,cn=accounts
ldap group suffix = cn=groups,cn=accounts
[Share1]
path = /srv/share1
valid users = @group1, @group3
force group = @group1
read only = no
browsable = yes
[Share2]
path = /srv/share2
valid users = @group2, @group3
force group = @group2
read only = no
browsable = yes
Run Code Online (Sandbox Code Playgroud)
但是,Samba 不会启动。Systemctl status 显示以下内容:
../source3/passdb/secrets.c:362(fetch_ldap_pw)
fetch_ldap_pw: neither ldap secret retrieved!
../source3/passdb/pdb_ldap.c:6542(pdb_init_ldapsam_common)
pdb_init_ldapsam_common: Failed to retrieve LDAP password from secrets.tdb
../source3/passdb/pdb_interface.c:180(make_pdb_method_name)
pdb backend ldapsam:ldaps://hostname did not correctly init (error was NT_STATUS_NO_MEMORY)
Run Code Online (Sandbox Code Playgroud)
我想不会有做到以下几点:
我只希望 Samba 能够:
我还需要做什么?
小智 5
我假设您希望在简单的 WinNT 兼容域控制器模式下运行 Samba,而不是完整的 Active Directory 模式。
首先,您必须了解 SMB 身份验证基于 NTLM 密码哈希。基本上,这是用于质询响应身份验证的明文凭证,可以存储在 LDAP 用户条目中,但存储在单独的属性sambaNTPassword中。根本不使用userPassword属性,并且 Samba 不会向 LDAP 服务器发送绑定请求来检查用户的密码。
=> 您必须安装 Samba 模式并将辅助对象类sambaSamAccount添加到用户条目中。
在正确的设置中,您必须授权 Samba DC 的服务用户读取此属性sambaNTPassword。您的 ACL 必须防止其他人读取该属性。
=> 您必须在 LDAP 目录中为 Samba DC 创建服务条目并授予对用户条目的读取访问权限。
还有一个名为slapo-smbk5pwd的 OpenLDAP 服务器覆盖层,它会在通过密码修改扩展操作设置属性userPassword时更新sambaNTPassword (请参阅RFC 3062)。通过使用此功能,您不必授予 Samba 对用户条目的写访问权限。
归档时间: |
|
查看次数: |
18470 次 |
最近记录: |