我应该将我的 Active Directory 公开给远程用户的公共 Internet 吗?

eww*_*ite 48 remote-access active-directory best-practices

我有一个客户,其员工完全由使用 Apple 和 Windows 7 PC/笔记本电脑的远程员工组成。

用户目前不针对域进行身份验证,但出于多种原因,组织希望朝这个方向发展。这些是公司所有的机器,公司寻求对帐户停用、组策略和一些轻微的数据丢失预防(禁用远程媒体、USB 等)进行一些控制。他们担心需要 VPN 身份验证才能访问 AD会很麻烦,尤其是在被解雇的员工和远程机器上缓存的凭据的交叉点上。

组织中的大多数服务都是基于 Google 的(邮件、文件、聊天等),因此唯一的域服务是 DNS 及其 Cisco ASA VPN 的身份验证。

客户想了解为什么向公众公开他们的域控制器是不可接受的。此外,什么一个分布式远程员工一个更容易接受的域结构?

编辑:

Centrify用于少数 Mac 客户端。

The*_*ner 32

我将此作为答案发布,主要是因为每个人都有自己的“受过教育的观点”,这些观点基于 IT 中的经验、第 3 方信息、传闻和部落知识,但这更多的是“直接”来自 Microsoft 的引用和阅读列表。我使用引号是因为我确定他们没有正确过滤员工提出的所有意见,但是如果您authoritative直接从 Microsoft获得参考,这应该会有所帮助。


顺便说一句,我也认为说 DOMAIN CONTROLLER == ACTIVE DIRECTORY 很容易,但事实并非如此。AD FS 代理和其他方式(OWA、EAS 等基于表单的身份验证)提供了一种将 AD 本身“公开”到 Web 的方法,以允许客户端至少尝试通过 AD 进行身份验证,而无需公开 DC 本身。访问某人的 OWA 站点并尝试登录,AD收到后端 DC 上的身份验证请求,因此 AD 在技术上是“公开的”……但通过 SSL 进行保护并通过 Exchange 服务器进行代理。


引用 #1

在 Windows Azure 虚拟机上部署 Windows Server Active Directory 的指南

在开始“Azure 不是 AD”之前……您可以在 Azure VM 上部署 ADDS。

但引用相关位:

切勿将 STS 直接暴露给 Internet。

作为安全最佳实践,将 STS 实例置于防火墙之后并将它们连接到您的公司网络,以防止暴露在 Internet 上。这很重要,因为 STS 角色发布安全令牌。因此,它们应该受到与域控制器相同级别的保护。如果 STS 遭到破坏,恶意用户能够向信任组织中的依赖方应用程序和其他 STS 发出可能包含他们选择的声明的访问令牌。

因此...不要将域控制器直接暴露给 Internet。

引文#2

Active Directory - AD LDS 的 UnicodePwd 之谜

将域控制器暴露给 Internet 通常是一种不好的做法,无论这种暴露是直接来自生产环境还是通过外围网络。自然的替代方法是将 Windows Server 2008 服务器与在外围网络中运行的 Active Directory 轻型目录服务 (AD LDS) 角色一起放置。

引用 #3 - 不是来自 MS ......但在展望未来时仍然有用

活动目录即服务?Azure 和 Intune 预示着云托管 AD 的未来

最后,没有很好的“简短”答案可以满足摆脱 AD 服务器办公室以换取 Azure 替代方案的目标。尽管 Microsoft 对允许客户在 Azure 中的 Server 2012 和 2008 R2 机器上托管 Active Directory 域服务感到自满,但它们的实用性仅与您可以为员工收集的 VPN 连接一样好。DirectAccess 虽然是一项非常有前途的技术,但由于其自身的不幸限制而束手无策。

引文#4

使用单点登录和 Windows Azure 虚拟机部署 AD DS 或 AD FS 和 Office 365

域控制器和 AD FS 服务器不应直接暴露在 Internet 上,只能通过 VPN 访问


Eva*_*son 19

Active Directory (AD) 不是为这种部署而设计的。

产品设计中使用的威胁模型假设是“防火墙后”部署,在网络边界过滤了一定数量的敌对行为者。虽然您当然可以强化 Windows Server 以使其暴露于公共网络,但 Active Directory 的正确运行需要一种安全态势,这绝对比针对面向公众的网络而强化的主机更为宽松。一个很多服务都必须从一个域控制器(DC)正确曝光的AD工作。

Zoredache 在评论中的建议,特别是引用像 OpenVPN 这样作为带有证书身份验证的机器范围服务运行的东西,可能非常适合。正如其他人所提到的,DirectAccess 正是您所需要的,只是它没有您想要的跨平台支持。

顺便说一句:我曾想过使用基于证书的传输模式 IPSEC 将 AD 直接公开到 Internet,但实际上从未有时间这样做。微软在 Windows Server 2008/Vista 时间框架中进行了更改,据说这使得这可行,但我从未真正实践过。

  • +1 对于作为服务运行的 OpenVPN,我过去曾成功地将这种方法用于公路战士。不过,Sr sys 管理员的感受很复杂,特别是因为如果一台机器受到威胁,那么这就是一个*自动* 进入网络的后门。当然,对于每个环境的有效担忧必须问自己是否收益大于风险......? (2认同)
  • Microsoft 使用 IPSec 在公共 Internet 上运行自己的公司网络。所以这是可行的。 (2认同)
  • @MDMoore313 - 证书吊销 FTW,尽管用户需要快速报告那台被盗机器。 (2认同)

Kat*_*ard 15

别人说的。我对 Christopher Karel 提到的蛮力尝试特别紧张。 上一次 Def Con上的演讲是关于这个主题的:

所以你认为你的域控制器是安全的?

贾斯汀亨德里克斯安全工程师,微软

域控制器是组织的皇冠上的明珠。一旦他们倒下,领域内的一切都会倒下。组织不遗余力地保护他们的域控制器,但是他们经常无法正确保护用于管理这些服务器的软件。

本演示文稿将介绍通过滥用组织部署和使用的常用管理软件来获得域管理员的非常规方法。

Justin Hendricks 在 Office 365 安全团队工作,参与红队、渗透测试、安全研究、代码审查和工具开发。

我相信你可以找到很多其他的例子。我一直在寻找关于域控制器和黑客的文章,希望能得到关于 DC 被发现的速度等的描述,但我认为现在就可以了。


MDM*_*313 14

如果你想说服管理层,一个好的开始是:

It goes against Microsoft's Best Practices for Active Directory Deployment.

更新:请参阅这篇关于保护域控制器免受攻击的技术网文章,以及标题为的部分Perimeter Firewall Restrictions

Perimeter firewalls should be configured to block outbound connections
from domain controllers to the Internet. 
Run Code Online (Sandbox Code Playgroud)

以及标题为的部分Blocking Internet Access for Domain Controllers

Launching web browsers on domain controllers should be prohibited not only
by policy, but by technical controls, and domain controllers should not be
permitted to access the Internet
Run Code Online (Sandbox Code Playgroud)

我敢肯定,您可以为此编写一些 Microsoft 文档,仅此而已。除此之外,您可以说明这种举动的危害,大致如下:

A gaping hole would be created, possibly resulting in severe data loss and/or loss of company secrets.

缓存凭据就是这样——缓存。当本地机器无法连接到域时,它们为本地机器工作,但如果该帐户被禁用,它们将无法用于任何网络资源(svn、vpn、smb、fbi、cia 等),因此他们不必担心. 还请记住,无论如何,用户已经对本地计算机上的配置文件文件夹中的任何文件(以及可能的可移动媒体)拥有完全权限,因此禁用凭据与否他们可以对这些数据做任何他们想做的事情。一旦它重新连接到网络,它们也不适用于本地机器。

您指的是 Active Directory 或域控制器提供的服务,例如 LDAP?如果是这样,为了身份验证和目录查询的目的,LDAP 通常会被安全地中断,但只是关闭 Windows 防火墙(或向公众开放所有必需的端口 - 在本例中也是如此)可能会导致严重的问题。

AD 并不真正管理Mac,因此需要一个单独的解决方案(想想 OS X Server)。您可以将 Mac 加入域,但这只不过是让他们使用网络凭据进行身份验证,将域管理员设置为 mac 上的本地管理员等。没有组策略。MS 正试图通过声称能够将应用程序部署到 macs 和 *nix box 的较新版本的 SCCM 突破这一领域,但我还没有在生产环境中看到它。我还相信您可以将 mac 配置为连接到 OS X Server,这将验证您的基于 AD 的目录,但我可能是错的。

话虽如此,可以设计一些创造性的解决方案,例如 Evan 建议使用 OpenVPN 作为服务,并在该员工离开时禁用机器证书。

听起来一切都基于谷歌,所以谷歌充当你的 ldap 服务器?如果可能的话,我会建议我的客户保持这种状态。我不知道您的业务性质,但对于基于 Web 的应用程序(例如 git 或 redmine 服务器),即使内部设置也可以利用 Google 帐户通过 OAuth 进行身份验证。

最后,像这样的公路战士设置几乎需要VPN 才能成功。一旦将机器带入办公室并进行配置(或通过脚本远程配置),它们就需要一种接收配置更改的方法。

除了 VPN 之外,mac 还需要一个单独的管理方法,太糟糕了,他们不再制作真正的 mac 服务器,但是我上次检查时(几年前),他们在 OS X Server 中确实有一些不错的策略实现)。

  • 大声笑,别担心......下次我们遇到胜利可能是你的。(用可怕的口型同步声音) (2认同)

mfi*_*nni 7

遗憾的是 DirectAccess 仅在 Win7+ 企业版上可用,因为它是为您的要求量身定制的。但是不知道您的版本,并且看到您拥有 MacOS,这将行不通。

/编辑 - 看起来一些 3rd 方声称他们有 Unices 的 DA 客户端:http : //www.centrify.com/blogs/tomkemp/what_is_microsoft_directaccess_and_unix_linux_interoperability.asp

有可用的 MDM 解决方案可以满足您的需求;我们正在将其中一个 (MAAS360) 推出给处于类似位置的客户。


Chr*_*rel 5

这显然是一个重大的安全风险。此外,它可能不会像您希望的那样工作。如果 Internet 上的随机人员能够尝试登录您的 AD 环境,那么您的所有用户很有可能会被锁定。永远。取消锁定要求意味着可以很容易地对简单密码进行暴力检查。

更重要的是,在不直接访问 AD 服务器的情况下,实现目标(最终用户使用域凭据登录笔记本电脑)应该没有问题。也就是说,Windows 机器可以缓存最后 X 次成功登录,以便这些相同的凭据在断开连接时工作。这意味着最终用户可以登录并进行有用的工作,而无需接触您的 AD 服务器。他们显然需要利用 VPN 连接到其他主要的公司资源,并且可以同时刷新 AD/GPO 设置。

  • 据我所知,只要是 AD,AD 就不会使用(或至少依赖于)广播。某些技术可能需要 WINS,如果没有可用的 WINS 服务器,它可以回退到广播请求,但这通常与 AD 无关。如果它依赖于广播,那么没有本地 DC 就不可能有远程用户。 (2认同)
  • 编辑了该行。感谢您的投入。显然,像我这样的 Linux 人不应该在 Windows 上猜测。 (2认同)