具有公共 unix dns 的 Active Directory(无 MS DNS)

具有公共 unix dns 的 Active Directory(无 MS DNS)

我正在为大学里的部门设置一个新的 Active Directory 实例。我在以前的工作中有一些管理域的经验(NT4/2k/2003),但我们这里的环境有两个独特之处:网络100% 公共 IP 地址空间(实际上没有防火墙,所有 DNS 都是公共 DNS)和DNS 集中管理(UNIX 上的 BIND 不会委派我一个子域名,也不会允许动态 DNS 更新他们的服务器。)

由于无法使用私有或拆分 DNS,因此我的域 (ad.dept.univ.edu) 的 SRV 记录将通过公共 DNS 访问。尽管 DNS 是公共的,但我将设置防火墙,只允许校园内的机器连接到我的域控制器。我将有两个运行 Windows Server 2008r2 的 AD 控制器。这基本上是一个仅进行身份验证的域,我们不运行 Windows 文件服务器,大多数客户端计算机永远不会加入域或直接针对域控制器进行身份验证。该域主要仅为设备和应用程序提供集中式 AD 集成身份验证。

  • 在不启用 MS DNS 的情况下设置 AD 控制器的流程是什么?
  • 我应该添加哪些 DNS 记录(SRV 或其他)?它们应该在将服务器设为域控制器之前就存在,还是在之后添加?
  • 在这样的环境中,有什么无法正常运行吗?我知道添加/删除 DC 需要手动编辑 DNS,但仅此而已吗?

如果您认为 Samba4+OpenLDAP 可以胜任这项任务,我绝对感兴趣,但请提出并自行回答一个新的 wiki 问题,而不仅仅是在这里回复。

答案1

听起来很像我的环境,只有我可以拥有 DNS 委派。

这是可能的虽然设置不需要动态 DNS 的 AD DNS 环境非常棘手。您必须手动填充所有 SRV 记录以及域所需的 NS 和 A 记录。PTR 记录并不那么重要。由于您不会在域中添加或删除太多机器,因此从长远来看,这甚至是可以支持的。

不要为公共 IP 地址空间而烦恼。这就是防火墙的用途。邪恶的恶棍可以看见你,并不意味着他们可以触碰你。

答案2

我已经完成了这项工作,并通过 DNS 服务器上的 webmin 对其进行了管理。 *通过 webmin 添加 DNS 记录非常容易。 比通过配置文件手动添加要好得多。


所需服务记录:

名称 TTL 优先级 权重 端口 服务器
gc.tcp.domain 600 0 100 3268 server-name.domain.
kerberos.tcp.dc._msdcs.domain. 600 0 100 88 server-name.domain.
kerberos.tcp.domain. 600 0 100 88 server-name.domain.
kerberos.udp.domain. 600 0 100 88 server-name.domain.
kpasswd.tcp.domain. 600 0 100 464 server-name.domain. kpasswd.udp.domain. 600
0 100 464 server-name.domain.
ldap.tcp.dc._msdcs.domain. 600 0 100 389 server-name.domain.
ldap.tcp.gc.msdcs.domain. 600 0 100 3268 服务器名称.域.
ldap.tcp.pdc
.msdcs.domain. 600 0 100 389 server-name.domain.
ldap.tcp.domain. 600 0 100 389 server-name.domain.
ldap.tcp.domain. 600 0 100 3268 server-name.domain.
msdcs.tcp.domain. 600 0 100 389 server-name.domain.
全选。| 反向选择。

除了您的服务记录之外,您还需要适当的 A 记录:

gc._msdcs.domain.600 IP 地址

另外,请不要忘记通过 cmd 行在 AD 服务器上注册 DNS:ipconfig/registerdns

如果仍然不起作用,那么在您的 AD 服务器上的事件查看器中将会有清晰的消息表明它正在尝试访问哪些 DNS 记录。

答案3

User56886 拥有大部分信息,这使我走上了正确的道路,但这是适用于我的域 (dept.univ.edu) 和我的活动目录控制器 (ad.dept.univ.edu) 的 DNS 记录的完整列表(请注意前导下划线)。TTL/权重/优先级由您决定,我在下面使用了 600、0、100。

_service._proto.name TTL 类 SRV 优先级 权重 端口 目标

_gc._tcp.dept.univ.edu.600 IN SRV 0 100 3268 ad.dept.univ.edu.
_gc._tcp.默认第一个站点名称._sites.dept.univ.edu.600 IN SRV 0 100 3268 ad.dept.univ.edu。
_kerberos._tcp.默认第一个站点名称._sites.dc._msdcs.dept.univ.edu.600 IN SRV 0 100 88 ad.dept.univ.edu。
_kerberos._tcp.默认第一个站点名称._sites.dc._msdcs.dept.univ.edu.600 IN SRV 0 100 88 ad.dept.univ.edu。
_kerberos._tcp.dc._msdcs.dept.univ.edu.600 IN SRV 0 100 88 ad.dept.univ.edu。
_kerberos._tcp.dept.univ.edu. 600 IN SRV 0 100 88 ad.dept.univ.edu。
_kerberos._udp.dept.univ.edu. 600 IN SRV 0 100 88 ad.dept.univ.edu。
_kpasswd._tcp.dept.univ.edu.600 IN SRV 0 100 464 ad.dept.univ.edu.
_kpasswd._udp.dept.univ.edu.600 IN SRV 0 100 464 ad.dept.univ.edu.
_ldap._tcp.默认第一个站点名称._sites.dc._msdcs.dept.univ.edu.600 IN SRV 0 100 389 ad.dept.univ.edu。
_ldap._tcp.默认第一个站点名称._sites.dc.dept.univ.edu.600 IN SRV 0 100 389 ad.dept.univ.edu。
_ldap._tcp.默认第一个站点名称._sites.gc._msdcs.dept.univ.edu.600 IN SRV 0 100 3268 ad.dept.univ.edu。
_ldap._tcp.dc._msdcs.dept.univ.edu.600 IN SRV 0 100 389 ad.dept.univ.edu.
_ldap._tcp.dept.univ.edu.600 IN SRV 0 100 389 ad.dept.univ.edu.
_ldap._tcp.gc._msdcs.dept.univ.edu.600 IN SRV 0 100 389 ad.dept.univ.edu.
_ldap._tcp.pdc._msdcs.dept.univ.edu.600 IN SRV 0 100 389 ad.dept.univ.edu.

此外,还有两个记录(SRV 记录和 CNAME)依赖于为您的域生成的 SECID:

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx._msdcs.dept.univ.edu CNAME ad.dept.univ.edu。
_ldap._tcp.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx._msdcs.dept.univ.edu.600 IN SRV 0 100 389 ad.dept.univ.edu.

此外,您(显然)需要为您的域控制器提供 A 记录。

参考文献:第 154 页Oreilly 的 Active Directory 第 5 版(也可以通过Safari 联机图书)。

答案4

这是可能的,尽管你的整个基础设施暴露在公共互联网上这一事实有点令人恐惧。

如果我处于这种情况,我会将我的 ADI 所需区域复制到本地管理的(即我的)BIND 框,然后配置视图以仅允许从“已知”IP 空间访问从属 ADI 区域。如果企业不愿意为几个额外的 BIND 服务器投入非常适中的投资,我会记录我试图说服管理层将您的 AD 基础设施暴露给互联网有多么糟糕的尝试,并准备好我的简历。因为这将在一场巨大的、猛烈的爆炸中发生……

相关内容