[THM]Active Directory 基础知识
何 Windows 域的核心都是 Active Directory 域服务 (AD DS)。此服务充当目录,其中包含网络上存在的所有“对象”的信息。在 AD 支持的众多对象中,我们有用户、组、计算机、打印机、共享和许多其他对象。让我们来看看其中的一些:
用户
用户是 Active Directory 中最常见的对象类型之一。用户是称为安全主体的对象之一,这意味着他们可以由域进行身份验证,并且可以分配对文件或打印机等资源的权限。可以说,安全主体是可以对网络中的资源执行操作的对象。
用户可用于表示两种类型的实体:
- 人员:用户通常代表组织中需要访问网络的人员,例如员工。
- 服务:您还可以定义要由IIS或MSSQL等服务使用的用户。每个服务都需要一个用户才能运行,但服务用户与普通用户不同,因为他们只有运行其特定服务所需的权限。
机器
计算机是 Active Directory 中的另一种类型的对象;对于加入 Active Directory 域的每台计算机,都将创建一个计算机对象。计算机也被视为“安全主体”,并像任何普通用户一样分配一个帐户。此帐户在域本身中具有一定的有限权限。
计算机帐户本身是已分配计算机上的本地管理员,除了计算机本身之外,通常任何人都不应访问它们,但与任何其他帐户一样,如果您有密码,则可以使用它登录。
注意:计算机帐户密码会自动轮换,通常由 120 个随机字符组成。
识别计算机帐户相对容易。它们遵循特定的命名方案。计算机帐户名称是计算机的名称,后跟美元符号。例如,名为 的计算机将具有名为 的计算机帐户。DC01
DC01$
安全组
如果您熟悉 Windows,您可能知道可以定义用户组,以便将文件或其他资源的访问权限分配给整个组,而不是单个用户。这样可以提高可管理性,因为您可以将用户添加到现有组,并且他们将自动继承该组的所有权限。安全组也被视为安全主体,因此可以对网络上的资源具有权限。
组可以同时将用户和计算机作为成员。如果需要,组也可以包括其他组。
默认情况下,会在域中创建多个组,这些组可用于向用户授予特定权限。例如,以下是域中一些最重要的组:
安全组 | 描述 |
域管理员 | 此组的用户对整个域具有管理权限。默认情况下,他们可以管理域上的任何计算机,包括 DC。 |
服务器操作员 | 此组中的用户可以管理域控制器。他们不能更改任何管理组成员身份。 |
备份操作员 | 此组中的用户可以访问任何文件,而忽略其权限。它们用于在计算机上执行数据备份。 |
账户运营商 | 此组中的用户可以创建或修改域中的其他帐户。 |
域用户 | 包括域中的所有现有用户帐户。 |
域计算机 | 包括域中的所有现有计算机。 |
域控制器 | 包括域上的所有现有 DC。 |
您可以从 Microsoft 文档中获取默认安全组的完整列表。
Active Directory 用户和计算机
要在 Active Directory 中配置用户、组或计算机,我们需要登录到域控制器并从开始菜单运行“Active Directory 用户和计算机”:
这将打开一个窗口,您可以在其中查看域中存在的用户、计算机和组的层次结构。这些对象在组织单位 (OU) 中进行组织,这些组织单位是允许您对用户和计算机进行分类的容器对象。OU 主要用于定义具有相似策略要求的用户集。例如,组织销售部门的人员可能应用了一组与 IT 部门人员不同的策略。请记住,用户一次只能是单个 OU 的一部分。
检查我们的机器,我们可以看到已经调用了一个 OU,其中包含 IT、管理、营销和销售部门的四个子 OU。看到 OU 模仿业务结构是非常典型的,因为它允许有效地部署适用于整个部门的基线策略。请记住,虽然这在大多数情况下都是预期的模型,但您可以任意定义 OU。随意右键单击 OU 并在其下创建一个新的 OU,只是为了好玩而调用它。THM
THM
Students
如果打开任何 OU,您可以查看它们包含的用户,并根据需要执行简单的任务,例如创建、删除或修改它们。如果需要,您还可以重置密码(对帮助台非常有用):
您可能已经注意到,除了 THM OU 之外,还有其他默认容器。这些容器由 Windows 自动创建,包含以下内容:
- 内置:包含可用于任何 Windows 主机的默认组。
- 计算机:默认情况下,任何加入网络的机器都将放在这里。如果需要,您可以移动它们。
- 域控制器:包含网络中 DC 的默认 OU。
- 用户:应用于域范围上下文的默认用户和组。
- 托管服务帐户:保留 Windows 域中服务使用的帐户。
安全组与 OU
您可能想知道为什么我们同时拥有组和 OU。虽然两者都用于对用户和计算机进行分类,但它们的目的完全不同:
- OU 可以方便地将策略应用于用户和计算机,其中包括与用户集相关的特定配置,具体取决于用户在企业中的特定角色。请记住,用户一次只能是单个 OU 的成员,因为尝试将两组不同的策略应用于单个用户是没有意义的。
- 另一方面,安全组用于授予对资源的权限。例如,如果要允许某些用户访问共享文件夹或网络打印机,则可以使用组。用户可以是多个组的一部分,这是授予对多个资源的访问权限所必需的。
在 AD 中管理用户
作为新的域管理员,您的第一项任务是检查现有的 AD OU 和用户,因为业务最近发生了一些更改。您已获得以下组织结构图,并应对 AD 进行更改以匹配它:
删除额外的 OU 和用户
您应该注意的第一件事是,当前 AD 配置中还有一个额外的部门 OU,该 OU 未显示在图表中。我们被告知,由于预算削减,它已关闭,应该从域中删除。如果尝试右键单击并删除 OU,将收到以下错误:
默认情况下,OU 受到保护,不会被意外删除。要删除 OU,我们需要在“视图”菜单中启用“高级功能”:
这将向您显示一些其他容器,并使您能够禁用意外删除保护。为此,请右键单击 OU,然后转到“属性”。您将在“对象”选项卡中找到一个复选框来禁用保护:
请务必取消选中该框,然后再次尝试删除 OU。系统将提示您确认是否要删除 OU,因此,其下的任何用户、组或 OU 也将被删除。
删除额外的 OU 后,您应该注意到,对于某些部门,AD 中的用户与我们组织结构图中的用户不匹配。根据需要创建和删除用户以匹配用户。
代表团
在 AD 中可以做的一件好事是让特定用户对某些 OU 进行一些控制。此过程称为委派,允许您授予用户特定权限以在 OU 上执行高级任务,而无需域管理员介入。
最常见的用例之一是授予重置其他低权限用户密码的权限。根据我们的组织结构图,Phillip 负责 IT 支持,因此我们可能希望将重置销售、营销和管理 OU 密码的控制权委托给他。IT support
在此示例中,我们将对 Sales OU 的控制权委托给 Phillip。若要委派对 OU 的控制权,可以右键单击它,然后选择“委派控制”:
这应该会打开一个新窗口,首先会要求您输入要委派控制权的用户:
注意:为避免错误输入用户名,请输入“phillip”,然后单击“检查姓名”按钮。Windows 将为你自动完成用户。
单击“确定”,然后在下一步中选择以下选项:
单击“下一步”几次,现在 Phillip 应该能够为销售部门的任何用户重置密码。虽然你可能希望重复这些步骤来委派营销和管理部门的密码重置,但我们会将其保留在此处执行此任务。如果需要,您可以继续配置其余的 OU。
实践由于我们委派了philli有改他控制的ou用户密码权限
远程登录philli
虽然您可能很想去 Active Directory 用户和计算机尝试测试 Phillip 的新能力,但他实际上没有打开它的权限,因此您必须使用其他方法来重置密码。在本例中,我们将使用 Powershell 来执行此操作:
PS C:\Users\phillip> Set-ADAccountPassword sophie -Reset -NewPassword (Read-Host -AsSecureString -Prompt 'New Password') -Verbose New Password: ********* VERBOSE: Performing the operation "Set-ADAccountPassword" on target "CN=Sophie,OU=Sales,OU=THM,DC=thm,DC=local".
由于我们不希望 Sophie 继续使用我们知道的密码,因此我们还可以在下次登录时使用以下命令强制重置密码:
PS C:\Users\phillip> Set-ADUser -ChangePasswordAtLogon $true -Identity sophie -Verbose VERBOSE: Performing the operation "Set" on target "CN=Sophie,OU=Sales,OU=THM,DC=thm,DC=local".
后面发现密码必须要有大小和特殊符号所以密码是Test1234!
远程登录sophie,查看flag。
在 AD 中管理计算机
默认情况下,所有加入域的计算机(DC 除外)都将放在名为“计算机”的容器中。如果我们检查我们的 DC,我们会看到一些设备已经存在:
我们可以看到一些服务器,一些笔记本电脑和一些与我们网络中的用户相对应的PC。将我们所有的设备都放在那儿并不是最好的主意,因为您很可能希望对普通用户每天使用的服务器和机器采取不同的策略。
虽然关于如何组织机器没有黄金法则,但一个很好的起点是根据设备的用途来隔离设备。一般情况下,你希望看到设备至少分为以下三个类别:
1. 工作站
工作站是 Active Directory 域中最常见的设备之一。域中的每个用户都可能登录到工作站。这是他们将用于完成工作或正常浏览活动的设备。这些设备绝不应有特权用户登录。
2. 服务器
服务器是 Active Directory 域中第二常见的设备。服务器一般用于向用户或其他服务器提供服务。
3. 域控制器
域控制器是 Active Directory 域中第三常见的设备。域控制器允许您管理 Active Directory 域。这些设备通常被认为是网络中最敏感的设备,因为它们包含环境中所有用户帐户的哈希密码。
由于我们正在整理 AD,因此让我们为 和 创建两个单独的 OU(域控制器已在 Windows 创建的 OU 中)。我们将直接在域容器下创建它们。最后,您应该具有以下 OU 结构:Workstations
Servers
thm.local
组策略
到目前为止,我们只是为了在 OU 中组织用户和计算机,但其背后的主要思想是能够为每个 OU 单独部署不同的策略。这样,我们可以根据用户的部门向用户推送不同的配置和安全基线。
Windows 通过组策略对象 (GPO) 管理此类策略。GPO 只是可应用于 OU 的设置集合。GPO 可以包含针对用户或计算机的策略,从而允许你在特定计算机和标识上设置基线。
若要配置 GPO,可以使用“开始”菜单中提供的组策略管理工具:
打开它时,您将首先看到完整的 OU 层次结构,如前所述。若要配置组策略,请先在“组策略对象”下创建一个 GPO,然后将其链接到要应用策略的 OU。例如,您可以看到计算机中已经存在一些 GPO:
让我们检查一下 GPO 内部的内容。选择 GPO 时,你将看到的第一个选项卡显示其范围,这是 GPO 在 AD 中链接的位置。对于当前的策略,我们可以看到它只链接到了域:
如您所见,您还可以将安全筛选应用于 GPO,以便它们仅应用于 OU 下的特定用户/计算机。默认情况下,它们将应用于“经过身份验证的用户”组,其中包括所有用户/电脑。
“设置”选项卡包括 GPO 的实际内容,并让我们知道它应用了哪些特定配置。如前所述,每个 GPO 都具有仅适用于计算机的配置和仅适用于用户的配置。在本例中,仅包含计算机配置:
随意浏览 GPO 并使用每个配置右侧的“显示”链接扩展可用项目。在这种情况下,指示应适用于大多数域的真正基本配置,包括密码和帐户锁定策略
由于此 GPO 适用于整个域,因此对它的任何更改都会影响所有计算机。让我们更改最小密码长度策略,要求用户的密码中至少有 10 个字符。为此,请右键单击 GPO 并选择“编辑”:
这将打开一个新窗口,我们可以在其中导航和编辑所有可用配置。若要更改最小密码长度,请转到并更改所需的策略值:
Computer Configurations -> Policies -> Windows Setting -> Security Settings -> Account Policies -> Password Policy
如您所见,可以在 GPO 中建立大量策略。虽然在一个房间里解释它们中的每一个是不可能的,但请随意探索一下,因为有些政策很简单。如果需要有关任何策略的详细信息,可以双击它们并阅读每个策略上的“说明”选项卡:
GPO 分布
GPO 通过存储在 DC 中的称为 的网络共享分发到网络。域中的所有用户通常都应有权通过网络访问此共享,以便定期同步其 GPO。默认情况下,SYSVOL 共享指向网络中每个 DC 上的目录
C:\Windows\SYSVOL\sysvol\
对任何 GPO 进行更改后,计算机可能需要长达 2 小时才能跟上进度。如果要强制任何特定计算机立即同步其 GPO,则始终可以在所需的计算机上运行以下命令:
PS C:\> gpupdate /force
为 THM Inc. 创建一些 GPO。
作为我们新工作的一部分,我们的任务是实施一些 GPO,以便我们能够:
- 阻止非 IT 用户访问控制面板。
- 让工作站和服务器在用户闲置 5 分钟后自动锁定屏幕,以避免用户在会话中断时暴露在外。
让我们重点关注其中的每一个,并定义我们应该在每个 GPO 中启用哪些策略以及它们应该在何处链接。
限制对控制面板的访问
我们希望将所有计算机上的控制面板访问权限限制为仅属于 IT 部门的用户。其他部门的用户不应能够更改系统的首选项。
让我们创建一个名为 GPO 的新 GPO 并打开它进行编辑。由于我们希望此 GPO 应用于特定用户,因此我们将在以下策略下查找:
请注意,我们已启用“禁止访问控制面板和电脑设置”策略。
配置 GPO 后,我们需要将其链接到与不应访问其 PC 控制面板的用户对应的所有 OU。在本例中,我们将通过将 GPO 拖动到每个 OU 来链接它们:
自动锁屏 GPO
对于第一个 GPO,关于工作站和服务器的屏幕锁定,我们可以直接将其应用于我们之前创建的 和 OU。Workstations
Servers
Domain Controllers
虽然此解决方案应该有效,但另一种方法是简单地将 GPO 应用于根域,因为我们希望 GPO 影响我们所有的计算机。由于 和 OU 都是根域的子 OU,因此它们将继承其策略。Workstations
Servers
Domain Controllers
注意:您可能会注意到,如果我们的 GPO 应用于根域,它也将被其他 OU(如 或 )继承。由于这些 OU 仅包含用户,因此它们将忽略 GPO 中的任何计算机配置。Sales
Marketing
让我们创建一个新的 GPO,调用它,然后编辑它。实现我们想要的策略位于以下路线中:Auto Lock Screen
我们会将非活动限制设置为 5 分钟,以便在任何用户保持会话打开状态时自动锁定计算机。关闭 GPO 编辑器后,我们将通过将 GPO 拖到根域中来将 GPO 链接到根域:
身份验证方法
使用 Windows 域时,所有凭据都存储在域控制器中。每当用户尝试使用域凭据对服务进行身份验证时,该服务都需要要求域控制器验证它们是否正确。在 Windows 域中,可以使用两种协议进行网络身份验证:
- Kerberos:由任何最新版本的 Windows 使用。这是任何最新域中的默认协议。
- NetNTLM:出于兼容性目的而保留的旧式身份验证协议。
虽然 NetNTLM 应被视为过时,但大多数网络都将启用这两种协议。让我们更深入地了解这些协议中的每一个是如何工作的。
Kerberos 身份验证是任何最新版本的 Windows 的默认身份验证协议。使用 Kerberos 登录服务的用户将获得票证。将票证视为先前身份验证的证明。持有票证的用户可以将其提供给服务,以证明他们之前已经对网络进行了身份验证,因此可以使用它。
当 Kerberos 用于身份验证时,将发生以下过程:
想象一下,你是一位勇敢的冒险者甘雨,准备进入一个神秘的宝藏洞穴。在洞穴的入口处,有一只聪明的守门狗Kerberos,它负责验证你的身份以确保你有资格进入洞穴。
首先,你要向Kerberos展示你的勇气和诚意。你递给Kerberos一份信封,里面装着你的名字和密码(用户名和密码)。Kerberos接过信封后,打开看了一眼。
Kerberos知道自己不能直接相信任何人,所以它需要核实你的身份。它拿出一本密钥表,用里面的秘密钥匙对你的名字和密码进行验证。如果你的名字和密码是正确的,Kerberos就会给你一个特殊的加密票据(Ticket Granting Ticket,TGT)作为奖励。这个TGT就像是你获得进入洞穴的通行证。
现在,你拿着TGT继续前进,找到洞穴内部的另一个守卫——门票授予者(Ticket Granting Server,TGS)。你向TGS展示你的TGT,并告诉它你想要访问洞穴内的特定宝藏。
TGS也不是盲目相信人们的,所以它需要验证你的TGT是否有效。它使用与Kerberos共享的密钥打开了TGT,检查里面的信息。如果一切正常,TGS会为你生成一个服务票据(Service Ticket),这就像是你获得进入具体宝藏房间的门票。
你拿着服务票据兴高采烈地走进了宝藏房间,这是你梦寐以求的地方。在那里,有一位负责保护宝藏的服务器等待着你。你向服务器出示你的服务票据,并说明你是通过Kerberos认证的合法用户。
服务器看到你的服务票据后,也需要确认它的真实性。它使用与TGS共享的密钥解密了服务票据,并核对票据上的信息是否匹配。如果一切都符合,服务器会欢迎你进入并授权你访问宝藏。
最终,你成功地进行了Kerberos认证,获得了进入宝藏洞穴并探索宝藏的权利!你可以尽情享受冒险的乐趣啦!
希望这个生动的描述能够更好地帮助你理解Kerberos认证过程
NetNTLM 身份验证
NetNTLM 使用质询-响应机制工作。整个过程如下:
- 客户端向要访问的服务器发送身份验证请求。
- 服务器生成一个随机数,并将其作为质询发送给客户端。
- 客户端将其 NTLM 密码哈希与质询 (和其他已知数据) 相结合,以生成对质询的响应,并将其发送回服务器进行验证。
- 服务器将质询和响应转发到域控制器进行验证。
- 域控制器使用质询重新计算响应,并将其与客户端发送的原始响应进行比较。如果它们都匹配,则客户端已通过身份验证;否则,访问将被拒绝。身份验证结果将发送回服务器。
- 服务器将认证结果转发给客户端。
请注意,为了安全起见,用户的密码(或哈希值)绝不会通过网络传输。
到目前为止,我们已经讨论了如何管理单个域、域控制器的角色以及它如何连接计算机、服务器和用户。
随着公司的发展,他们的网络也在增长。为一家公司拥有一个域名就足够了,但随着时间的推移,一些额外的需求可能会促使您拥有多个域名。
树
例如,想象一下,您的公司突然扩展到一个新的国家。新国家/地区有不同的法律和法规,要求您更新 GPO 以符合要求。此外,您现在在这两个国家/地区都有 IT 人员,每个 IT 团队都需要在不干扰其他团队的情况下管理与每个国家/地区相对应的资源。虽然您可以创建一个复杂的 OU 结构并使用委派来实现这一点,但拥有庞大的 AD 结构可能难以管理并且容易出现人为错误。
幸运的是,Active Directory 支持集成多个域,以便您可以将网络划分为可以独立管理的单元。如果有两个域共享相同的命名空间(在我们的示例中),则可以将这些域加入到树中。thm.local
如果我们的域被拆分为英国和美国分支的两个子域,你可以构建一个树,其中根域为 和两个子域,分别称为 和 ,每个子域都有其 AD、计算机和用户:thm.local
thm.local
uk.thm.local
us.thm.local
这种分区结构使我们能够更好地控制谁可以访问域中的内容。来自英国的 IT 人员将拥有自己的 DC,仅管理英国资源。例如,英国用户将无法管理美国用户。这样,每个分支的域管理员将完全控制各自的 DC,但不能控制其他分支的 DC。
在谈论树木和森林时,需要引入一个新的安全组。Enterprise Admins 组将授予用户对企业所有域的管理权限。每个域仍将拥有对其单个域具有管理员权限的域管理员,以及可以控制企业中所有内容的企业管理员。
森林
您管理的域也可以在不同的命名空间中进行配置。假设您的公司继续发展并最终收购了另一家公司,当两家公司合并时,您可能会为每家公司提供不同的域树,每家公司都由自己的 IT 部门管理。将具有不同命名空间的多个树并入同一网络称为林。MHT Inc.
信任关系
在树和森林中组织多个域可以让您在管理和资源方面拥有一个很好的分区网络。但在某个时候,THM UK的用户可能需要访问MHT ASIA服务器之一中的共享文件。为此,在树和林中排列的域通过信任关系连接在一起。
简单来说,在域之间建立信任关系允许您授权域中的用户访问域中的资源。THM UK
MHT EU
可以建立的最简单的信任关系是单向信任关系。在单向信任中,如果 trusts ,这意味着 BBB 上的用户可以被授权访问 AAA 上的资源:Domain AAA
Domain BBB
单向信任关系的方向与访问方向相反。
还可以建立双向信任关系,以允许两个域相互授权来自另一个域的用户。默认情况下,将树或林下的多个域加入将形成双向信任关系。
请务必注意,在域之间建立信任关系不会自动授予对其他域上所有资源的访问权限。建立信任关系后,您就有机会跨不同域授权用户,但实际授权与否取决于您
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现