我想为 Linux 和 Windows 机器设置双因素身份验证,并希望通过 LDAP 服务器管理密码。
为此,我使用 LDAP(提供 TOTP 功能)来验证 Linux 机器,并使用 Samba 来验证 Windows 机器。
我的 LDAP 服务器已配置,我能够使用 2FA 身份验证(用户密码 + TOTP)访问 Linux 服务器
Samba 也运行良好,我能够使用 samba 用户密码访问 Windows 服务器(因为 samba 不提供 TOTP 功能)。
现在,我不知道如何设置 LDAP 和 samba 之间的集成。这样,在 LDAP 中创建的任何用户都可以使用密码(用户密码字符串 + totp)作为 samba 用户登录 Windows 机器。基本上,samba 用户可以使用 TOTP 密码向 LDAP 服务器进行身份验证。
这是我的 slapd.conf 和 samba 文件
猫等/openldap/slapd.conf
包括 /usr/local/etc/openldap/schema/core.schema
包括 /usr/local/etc/openldap/schema/cosine.schema
包括 /usr/local/etc/openldap/schema/nis.schema 包括/usr/local/etc/openldap/schema/inetorgperson.schema
包括/usr/local/etc/openldap/schema/samba.schema pidfile /usr/local/var/run/slapd.pid argsfile /usr/local/var/run/slapd.args modulepath /usr/local/libexec/openldap moduleload pw-totp.so password-hash {TOTP1ANDPW} 数据库 mdb maxsize 1073741824 后缀“dc=antares,dc=net” rootdn“cn=Manager,dc=antares,dc=net” rootpw 秘密 目录 /usr/local/var/openldap-data 索引 objectClass eq 覆盖 totp 数据库监视器 TLSCACertificateFile /etc/pki/tls/openldap/server_cert.pem TLSCertificateFile /etc/pki/tls/openldap/server_cert.pem TLSCertificateKeyFile /etc/pki/tls/openldap/server_key.pem ----------------------------------------------------------
猫/usr/local/samba/etc/smb.conf
[global]
netbios 名称 = LDAPSRV
领域 = ANTARES.NET
服务器角色 = active directory 域控制器
工作组 = ANTARES
idmap_ldb:use rfc2307 = yes
安全性 = 用户
passdb 后端 = ldapsam:ldap://192.168.1.86:3389/
ldap 后缀 = dc=antares,dc=net
ldap 管理员 dn = cn=Manager,dc=antares,dc=net
ldap 密码同步 = yes
ldap ssl = no
[sysvol]
路径 = /usr/local/samba/var/locks/sysvol
只读 = 否
[netlogon]
路径 = /usr/local/samba/var/locks/sysvol/antares.net/scripts
只读 = 否'''
答案1
现在,我不知道如何设置 LDAP 和 samba 之间的集成。这样,在 LDAP 中创建的任何用户都可以使用密码(用户密码字符串 + totp)作为 samba 用户登录 Windows 机器。基本上,samba 用户可以使用 TOTP 密码向 LDAP 服务器进行身份验证。
您无法设置此类集成。SMB 服务器永远不会从客户端接收纯文本密码,因此它们无法将其转发到 LDAP 服务器 - 它们只接收 NTLM 质询响应,该响应无法再分为“密码 + TOTP”,只能根据 sambaNTPassword 中存储的静态哈希进行验证。