Samba ADS:无法联系请求领域的任何 KDC

Samba ADS:无法联系请求领域的任何 KDC

我关注了将 Samba 设置为 Active Directory 域控制器 - wiki一切似乎都很好(,,,kinit工作)。klistnet ads usernet 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-userlibpam-krb5winbindlibpam-winbindldb-toolsntpsmbclientsmbldap-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-kdckrb5-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命令无法设置密码,我会接受这个答案。

相关内容