251 的魔法实验室

您要的页面找不到了,但我们不能停止斗争。

在本地使用 osc 命令拉取的时候,大概率会遇到以下错误:

Error: Package ('obs-service-tar_scm_kernel_repo',) is required for this operation

我们需要手动安装这个 Pacakge,以下教程在 Ubuntu 22.04 LTS 上测试通过:

$ git clone https://github.com/openSUSE/obs-service-tar_scm.git
$ cd obs-service-tar_scm
$ sudo make install
$ # 此时有可能遇到 ModuleNotFoundError: No module named 'dateutil' 这个错误
$ sudo apt install python3-dateutil

此时应该就无问题了。如果要使用 osc up -s 在本地下载源的话,还需要做以下的操作

$ git clone https://github.com/openSUSE/obs-service-download_url.git
$ sudo cp obs-service-download_url/download_url /usr/lib/obs/service/
$ sudo cp obs-service-download_url/download_url.service /usr/lib/obs/service/

大功告成。osc up -sosc up -S 有什么区别呢?可以从 manpage 发现,前者是在本机上运行 _service 文件,后者是从 obs 实例上下载文件。


如果喜欢本文,欢迎点击下方的「鼓掌」按钮!

如果上面没有加载出任何东西,可以点击这里

R.I.P 奶奶

差不多一年前写下了 2022 的总结,是时候写 2023 年的总结了!

阅读更多

0x00 需求

  • 我有一个 Windows Server 2022 物理机器作为第一个 Domain Controller。
  • 我有一个在 Proxmox 内的 Windows Server 2022 Core 的虚拟机作为第二个 Domain Controller。
  • 我有一个在 Proxmox 内的 Windows 11 机器作为测试 Client。
  • 我有一台 Synology,我想将 Profile 和 Home Folder 放在 Synology 内。
  • 我的 Domain 是 home.251.sh。

0x01 开始搭建第一个 Domain Controller

在 Server Manager 内,选择 Manage –> Add Roles and Features。

在 Installation Type 内,选择 Role-based or feature-based installation。然后在 Server Roles 内选择 Active Directory Domain Services。

等待安装功能完成之后,回到 Server Manager,选择刚刚安装的 Active Directory Domain Services,这时应该会跳出来 Configuration Wizard(或者在 Add Roles and Features Wizard 的 Results 页面点击 Promote this server to a domain controller)。

因为我们是要创建新的,所以点击 Add a new forest,然后在 Root domain name 出填写你要的 domain。

在 Domain Controller Options 内,将 Forest & Domain functional level 都保持 Windows Server 2016 即可(可以适当根据你的需求调整)。下方勾选上 DNS server(这样我们可以局域网内通过 Domain 访问机器,而不需要 IP),然后填写你的密码。千万不要忘记这个密码。

DNS Options 页面保持默认,随后的 NetBIOS domain name 系统可能已经给你生成了一个,如果你不喜欢的话可以换掉,我这里使用了 251SH

随后指定 Database、Log files 和 SYSVOL 的 folder,这个可以保持默认,也可以根据自己的需要选择。

然后就没有什么要设置的了!如果后续需要批量这么做或者重装的话,可以在 Review Options 这个页面点击 View script,保存一下它吧。以下是我的实例:

#
# Windows PowerShell script for AD DS Deployment
#

Import-Module ADDSDeployment
Install-ADDSForest `
-CreateDnsDelegation:$false `
-DatabasePath "D:\NTDS" `
-DomainMode "WinThreshold" `
-DomainName "home.251.sh" `
-DomainNetbiosName "251SH" `
-ForestMode "WinThreshold" `
-InstallDns:$true `
-LogPath "D:\NTDS" `
-NoRebootOnCompletion:$false `
-SysvolPath "D:\SYSVOL" `
-Force:$true

之后会进行一轮重启。这时我首先推荐检查一下 Upstream DNS 的配置,因为后续接入设备的 DNS 地址都会指向 Domain Controller,设置不正确会导致没有其它的 DNS 解析。

在 Server Manager 内,选择 Tools –> DNS。右键你的 DNS Server,然后选择 Forwarders,看看这里的设置正不正确,如果不正确请自行调整。

接下来,给自己创建一个用户。同样在 Server Manager 内,选择 Tools –> Active Directory Users and Computers。在这里我们找到 Users,然后点击工具栏内的 Create a new user in the current container 来新建一个我们自己的用户。

新建完之后,你可能想将这个用户提拔成管理员。右键这个用户,选择 Properties,找到 Member of,随后点击 Add 并添加以下第一个 Group,后面几个可选:

Domain Admins
Enterprise Admins
Group Policy Creator Owners
Schema Admins

这样,我们初始化就完成了。

0x02 开始搭建第二个 Domain Controller

因为 Windows Server 2022 Core 是没有 GUI 界面的,所以需要在命令行下做。在进入 SConfig 之后,首先可以检查一下网络设置,检查 DNS 是否预先设置成了有效ed Upstream DNS。之后输入 15 来退出到 PowerShell。

接下来,我们开始安装 Role。

Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
# 在安装完之后可以通过 Get-Command -Module xxx 来查看有什么指令可以用
# Get-Command -Module ADDSDeployment

之后,我们将会 promote 这个 DC 进入我们之前设置好的 domain:

Install-ADDSDomainController -InstallDns -Credential (Get-Credential <251SH\misaka00251>) -DomainName home.251.sh -SafeModeAdministratorPassword (ConvertTo-SecureString -AsPlainText "mypassword" -Force)

这时会有一个框弹出,让你确认 Domain 管理员的密码。随后的提示内,输入 y 确认。如果设置成功,系统会自动提示重启,设置完成了。

为了确认是否设置成功,可以在 Active Directory Users and Computers 的 Domain Controllers 内查看是否有新增一台 Computer。

0x03 设置 Synology

在这里,我想让 Synology 也可以使用 AD 来进行用户认证。这里以 DSM 7.x 为例:

首先找到 Control Panel,选择 Network –> Network Interface,选择你的目标 LAN(你可能有多个 LAN,选择 DC 所在的内网的那个),然后将 DNS Server 设置成 DC。

之后选择 Doamin/LDAP,选择 Join。Server type 选择 Domain,Server address 输入你的 Domain(DC 的 IP 也可以,会自动变成 Domain),然后在这里 double check 你的 DNS Server。

在下一页,输入你之前创建的管理员账号(如果你只有一个 forest 可以选择 Single domain with OU,但是如果随便玩玩无所谓)和密码进行认证,在 DC IP/FQDN 处,因为我有两个 DC,所以我在这里可以输入它们的 IP,或者它们两个的 Domain:

# 假设是两个 IP
10.0.0.2 10.0.0.3
# 假设是两个 Domain
firstdc.home.251.sh seconddc.home.251.sh

在 Register DNS interface 选择你 DC 所在内网的那个 LAN,可以不用勾选 Register machine accounts on a specific OU,然后点击下一步。如果没有任何问题的话,应该就大功告成了。

注意,最好 Synology local account 和 AD 内的用户名没有相同的,不知道为什么我有相同的账号,local account 登录不进去。

之后,我们可以在 Domain User 一栏,选择 User Home 来给所有用户分配家目录。这个目录会成为我们之后 AD 用户在 Windows 下的 Home Folders。

如果想让 AD 上的管理员也在 Synology 上拥有管理员权限,可以在 Domain/LDAP 内选择 Settings,然后点击 Advanced,选择 Domain Administrators。

加入相关管理员的组后,回到 Domain/LDAP 内,选择 Domain group,然后选择之前加入的组,修改 Permissions 和 Applications 即可。

最后,我们在 Control Panel 的 Shared Folder 内,添加一个新的 Share,我在这里其名字叫做 ADUserFolders,然后在 Permissions 内,找到 Domain groups,给对应的组 Read/Write 权限,Synology 的地方就大功告成了。

0x04 将 Windows Client 加入 Domain

在此之前,我们要设置好用户。回到 Windows Server 上的 Server Manager,选择 Tools –> Active Directory Users and Computers,在 Users 内找到你的账号,右键选择 Properties,在里面找到 Profile。

在这里,你可以设置 Home folder,因为是放在 Synology 上的,所以不能选择 Local path。选择一个你喜欢的盘符,然后填写对应的目录。我这里的示例是 \\SYNOLOGYWITH251\homes\@DH-251SH\0\misaka00251-1104

之后,我们也想将用户的 Profile 放在 Synology 上,这样用户可以在内网上更换机器登录,Windows 能及时的能同步用户家目录下所有的文件。例如用户的文档目录,下载目录,图片目录等等。甚至可以同步 Appdata 下的 Romaing 文件夹。如果机器重装了系统的话,各个用户的资料也安全的保存在 Synology 上,有效的避免了数据丢失。当然,我们想批量的设置这个,而不想一个一个的手动去设置……

在 Server Manager 内选择 Tools –> Group Policy Management,选择你的 Forest 然后展开 Domains,选择你需要配置的 Domain(我这里只有 home.251.sh),然后右键选择 Create a GPO in this domain, and link it here...,名字输入 Folder Redirection。

右键刚创建的 GPU,选择 Edit。此时会弹出来一个 Group Policy Management Editor,选择 User Configuration –> Policies –> Windows Settings –> Folder Redirection。

我们可以先设置 Documents,右键它然后选择 Properties,在 Setting 一栏中选择 Basic - Redirect everyone's folder to the same location,在下方选择 Create a folder for each user under the root path,然后 Root Path 就填写我们刚刚在 Synology 上创建的 Share,我这里的例子是 \\SYNOLOGYWITH251\ADUserFolders

如果你不想将这个应用给某个用户应该怎么办?

我推荐的方法是,在 Group Policy Management 找到你的 Policy,在右边选择 Delegation,选择 Advanced...,然后添加你想生效的组/用户(没错,你要自己 track 这个用户组),下方选择 Apply group policy 这项 Allow。

然后注意有一个叫做 Authenticated Users 的用户组,这个用户组是代表登录进的所有用户,我们要取消掉这个用户组的 Apply group policy 这一项。否则上方设置好之后,你登录不想应用的用户依然是生效的。


随后我们可以对 Pictures、Music 等等文件夹也这样右键设置,一些选项内有一个选项叫做 Follow the Documents folder,选择它可以不必重复填写。

设置好之后,就大功告成了。最后我们去我们的 Windows 11 机器,在设置内选择 System –> About,有一个 Domain or workgroup (Windows 10 叫 Rename this PC) 的选项,点击它,然后点击下方的 Change... 按钮,我们可以在 Member of 出选择 Domain,然后输入我们的 Domain 即可。输入我们的管理员账号,如果成功的话会建议你重启,重启之后使用 AD 的管理员账号登录,就可以在 This PC 内看到用户自己的文档等等有绿色的同步图标,并且挂载了一个网络分区。

大功告成了!

0x05 参考资料


如果喜欢本文,欢迎点击下方的「鼓掌」按钮!

如果上面没有加载出任何东西,可以点击这里

Update(2023-12-11): 更新第 5 代,补了第 3 代的图。

记录一下我的 homelab 2023 改变了什么,顺便这里面整合了一篇去年写的草稿(因为太短就没有发布)。

阅读更多

其实是因为自己重装系统次数过多所以想自己记录一下。以及好久没有写博客了。

阅读更多

结果别的坑没有填先来填这个了。警告一下,这里面的图超级多。

阅读更多

简短的个人经验记录 (Update: 2023-07-05)

阅读更多

也就是 3D Pinball Space Cadet

阅读更多

多图预警。

国产信创(信息技术应用创新产业)产品究竟怎么样?

阅读更多

R.I.P. MU5735, 徐州铁链女

差不多一年前写下了 2021 的总结,是时候写 2022 年的总结了!

阅读更多