我最近在 Debian 10“Buster”系统上将我们的小型 NT4 Samba 域“经典转换”为 AD 域。据我所知,一切都正常,但我不明白我遇到的一个问题:除非 resolv.conf 指向 127.0.0.1 而不是外部 DNS 服务器,否则 Kerberos 无法工作。
按照说明这里我在我的 DNS 中为 LDAP 和 Kerberos 设置了 SRV 记录。对它们的测试显示了我认为正确的响应:
root@sambabox:~# host -t SRV _kerberos._udp.mydomain.duckdns.org
_kerberos._udp.mydomain.duckdns.org has SRV record 0 0 88 sambabox.mydomain.duckdns.org.
root@sambabox:~# host -t SRV _kerberos._udp.mydomain.duckdns.org 192.168.1.1
Using domain server:
Name: 192.168.1.1
Address: 192.168.1.1#53
Aliases:
_kerberos._udp.mydomain.duckdns.org has SRV record 0 0 88 sambabox.mydomain.duckdns.org.
root@sambabox:~#
返回的主机名是 AD DC 主机。它可以通过名称 ping 自身:
# ping sambabox.mydomain.duckdns.org
PING sambabox.mydomain.duckdns.org (192.168.1.5) 56(84) bytes of data.
64 bytes from sambabox.mydomain.duckdns.org (192.168.1.5): icmp_seq=1 ttl=64 time=0.060 ms
64 bytes from sambabox.mydomain.duckdns.org (192.168.1.5): icmp_seq=2 ttl=64 time=0.044 ms
但是,当 resolve.conf 指向 192.168.1.1(默认网关和 DNS 服务器/转发器)而不是 127.0.0.1 时,“kinit”会失败和GW 防火墙记录了丢弃到端口 88 的数据包:
# kinit
[email protected]'s Password:
kinit: krb5_get_init_creds: unable to reach any KDC in realm MYDOMAIN.DUCKDNS.ORG
我的 Kerberos 配置是 Samba 转换向导的默认配置:
# cat /etc/krb5.conf
[libdefaults]
default_realm = MYDOMAIN.DUCKDNS.ORG
dns_lookup_realm = false
dns_lookup_kdc = true
现在我意识到 Samba 还在此处提供了域 DNS 功能,可以解析 Kerberos SRV:
# host -t SRV _kerberos._udp.mydomain.duckdns.org localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases:
_kerberos._udp.mydomain.duckdns.org has SRV record 0 100 88 sambabox.mydomain.duckdns.org.
但是由于网络 DNS SRV 记录指向同一个 AD DC 主机,并且 Samba 正在监听本地和外部接口,因此在不是使用 Samba 内部 DNS?
# netstat -etulpn | grep :88
tcp 0 0 192.168.1.5:88 0.0.0.0:* LISTEN 0 1557276 13233/samba: conn[k
tcp 0 0 127.0.0.1:88 0.0.0.0:* LISTEN 0 1557272 13233/samba: conn[k
udp 0 0 192.168.1.5:88 0.0.0.0:* 0 1557277 13233/samba: conn[k
udp 0 0 127.0.0.1:88 0.0.0.0:* 0 1557273 13233/samba: conn[k
为什么外部 DNS SRV 似乎不起作用?是什么导致端口 88 流量被发送到 GW?kerberos SRV 返回的主机名是否以某种方式被破坏了?
除了 AD DC 之外的其他主机尝试使用 Kerberos 而不通过 Samba DNS 时会出现问题吗?
附言:在这些测试期间,AD DC 上没有启用防火墙。此测试中没有数据包受到损害(除了错误发送到 GW 端口 88 的数据包)。