我关注了将 Samba 设置为 Active Directory 域控制器 - wiki一切似乎都很好(,,,kinit
工作)。klist
net ads user
net ads group
添加没有密码的用户也有效,但如果我设置任何密码,它就会失败:
net ads user add tester test1234
错误:
无法添加用户测试员。设置密码错误无法联系请求领域的任何 KDC
我已经阅读并尝试了几个类似问题的答案,例如:
Kerberos 登录失败:无法解析请求领域中的 KDC 的网络地址 - Kerio 和 Open Directory
Samba4 和 Active Directory Kerberos [获取初始凭据时无法联系领域‘INTERNAL.CORP.COM’的任何 KDC
winbindd:kinit 成功但 ads_sasl_spnego_krb5_bind 失败:无法联系请求领域的任何 KDC
... 和更多
我也重装了几次操作系统。在全新安装中,唯一安装的附加软件包是:samba
,,,,,,,,,,krb5-user
libpam-krb5
winbind
libpam-winbind
ldb-tools
ntp
smbclient
smbldap-tools
版本:
- Ubuntu Server 18.04 x64(内核 4.15.0-30-generic)
- samba 2:4.7.6+dfsg~ubuntu-0ubuntu2.2
我的配置文件:
/etc/samba/smb.conf
# Global parameters
[global]
dns forwarder = 192.168.10.30
netbios name = ADS3
realm = AAA-AAA.NET
server role = active directory domain controller
workgroup = AAA-AAA
idmap_ldb:use rfc2307 = yes
[netlogon]
path = /var/lib/samba/sysvol/aaa-aaa.net/scripts
read only = No
[sysvol]
path = /var/lib/samba/sysvol
read only = No
/etc/krb5.conf
[libdefaults]
default_realm = AAA-AAA.NET
dns_lookup_realm = false
dns_lookup_kdc = true
[realms]
AAA-AAA.NET = {
kdc = ads3.aaa-aaa.net:88
admin_server = ads3.aaa-aaa.net
}
[domain_realm]
.aaa-aaa.net = AAA-AAA.NET
aaa-aaa.net = AAA-AAA.NET
/etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.10.33 ads3.aaa-aaa.net ads3
/etc/resolv.conf
domain aaa-aaa.net
search aaa-aaa.net
nameserver 192.168.10.30
注意:systemd-resolved
已被禁用以防止 resolv.conf 被更新。
输出:
nmap 本地主机
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5
636/tcp open ldapssl
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
净广告信息
LDAP server: 192.168.10.33
LDAP server name: ads3.aaa-aaa.net
Realm: AAA-AAA.NET
Bind Path: dc=AAA-AAA,dc=NET
LDAP port: 389
Server time: Wed, 15 Aug 2018 14:35:33 JST
KDC server: 192.168.10.33
Server time offset: 0
dig -t srv _kerberos._udp.aaa-aaa.net
; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> -t srv _kerberos._udp.aaa-aaa.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 34079
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;_kerberos._udp.aaa-aaa.net. IN SRV
;; Query time: 0 msec
;; SERVER: 192.168.10.30#53(192.168.10.30)
;; WHEN: Wed Aug 15 14:37:09 JST 2018
;; MSG SIZE rcvd: 44
注意:DNS 服务器(位于 192.168.10.30)正在运行 dnsmasqd 并且运行正常。ads3.aaa-aaa.net
解析为192.168.10.33
。
管理员
Authenticating as principal administrator/[email protected] with password.
kadmin: Client 'administrator/[email protected]' not found in Kerberos database while initializing kadmin interface
我也查看了kadmin
错误,但没有成功。我尝试安装krb5-kdc
和krb5-admin-server
,但它们干扰了设置(无法使用kinit
)。
任何帮助均感激不尽。
更新 1
根据Michael
这个问题的唯一答案(到目前为止)专用服务器上的 Samba4 和 Kerberos 配置,不需要单独安装krb5-kdc/krb5-admin-server,所以就不是了。
我们发现我们设置中的DNS响应是错误的,samba_dnsupdate --verbose --all-names
报告:
dns.resolver.NXDOMAIN:DNS 查询名称不存在
dnsmasq.conf
因此我们在 DNS 服务器(192.168.10.30)中添加了以下规则:
server=/aaa-aaa.net/192.168.10.33
srv-host=_ldap._tcp.aaa-aaa.net,ads3.aaa-aaa.net,389
srv-host=_kerberos._udp.aaa-aaa.net,ads3.aaa-aaa.net,88
我们在另一台计算机上对它们进行了测试,使用如下方法:
host -t SRV _ldap._tcp.aaa-aaa.net.
host -t SRV _kerberos._udp.aaa-aaa.net.
现在响应已经正常了。例如:
_kerberos._udp.aaa-aaa.net 有 SRV 记录 0 0 88 ads3.aaa-aaa.net。
输出似乎也samba_dnsupdate --verbose --all-names
正确。
目前的状况:
kadmin
(和之前一样)
kadmin:客户端‘管理员/[电子邮件保护]'初始化 kadmin 接口时未在 Kerberos 数据库中找到
net ads user add tester test1234
无法添加用户测试员。设置密码错误 操作不允许
更新 2
我们可以使用其他命令设置用户密码:
pdbedit -a -u tester
(将提示输入密码)
samba-tool user setpassword --newpassword=test1234 tester
我们能够从 Windows 连接,所以暂时解决了这个问题。如果有人知道为什么kadmin
会失败以及为什么net
命令无法设置密码,我会接受这个答案。